西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴(lài)的軟件下載站!
軟件
軟件
文章
搜索
缂侇垵宕电划鍝勵啅閵夈儱寰�
U濠㈠爢鍐憥v4.7.37.56 闁哄牃鍋撻柡鍌涘婢э拷U濠㈠爢鍐憥v4.7.37.56 闁哄牃鍋撻柡鍌涘婢э拷
HD Tune  Prov5.75 婵懓顦€佃尙绱掗懗顖氼棌闁绘鎳撻崺鍡涙偋閿燂拷HD Tune Prov5.75 婵懓顦€佃尙绱掗懗顖氼棌闁绘鎳撻崺鍡涙偋閿燂拷
DiskGenius 濞戞挻鎸风粭鐔兼偋閸︼拷5.2.1.941 閻庤蓱閺岀喖鎮ч敓锟�DiskGenius 濞戞挻鎸风粭鐔兼偋閸︼拷5.2.1.941 閻庤蓱閺岀喖鎮ч敓锟�
360閺夌儐鍨▎銏㈢不閳ユ剚鍟€v7.5.0.1460 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�360閺夌儐鍨▎銏㈢不閳ユ剚鍟€v7.5.0.1460 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
Cpu-Z濞戞搩鍘介弸鍐偋閸э拷1.98.0 缂備浇鍎绘竟濠冪▔椤撶喐鐎柣妤嬫嫹Cpu-Z濞戞搩鍘介弸鍐偋閸э拷1.98.0 缂備浇鍎绘竟濠冪▔椤撶喐鐎柣妤嬫嫹
缂傚啯鍨圭划璺侯啅閵夈儱寰�
闁煎灚宕橀鍡涙偨娴e啫澹嬬紒鐘偓鎰佸晙V15.2 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�闁煎灚宕橀鍡涙偨娴e啫澹嬬紒鐘偓鎰佸晙V15.2 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�
office2016婵犵鍋撴繛鑼额嚙娴兼劙宕楃粚鏀巗v19.5.2 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�office2016婵犵鍋撴繛鑼额嚙娴兼劙宕楃粚鏀巗v19.5.2 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
閺夆晛鎳樺ù锟�11闁哄牃鍋撻柡鍌涘婢ф11.3.6.1870 閻庤蓱閺岀喖鎮ч敓锟�閺夆晛鎳樺ù锟�11闁哄牃鍋撻柡鍌涘婢ф11.3.6.1870 閻庤蓱閺岀喖鎮ч敓锟�
360闁稿繐绉烽崹鍊僫fi5.3.0.5000 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�360闁稿繐绉烽崹鍊僫fi5.3.0.5000 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
360閻庣懓顦崣蹇撁硅箛姘兼綌闁革綇鎷�2022v13.1.5188.0 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�360閻庣懓顦崣蹇撁硅箛姘兼綌闁革綇鎷�2022v13.1.5188.0 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�
濠㈣埖鑹鹃悰鐔告媴閹炬儼顫�
闂佷即鏀遍崹婊堟閸忓懐顔囬柣鈺嬫嫹2022v9.1.6.2 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�闂佷即鏀遍崹婊堟閸忓懐顔囬柣鈺嬫嫹2022v9.1.6.2 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�
闁哄棙鎸抽ˉ鎾广亹闁秶鍙�2021V5.81.0202.1111閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�闁哄棙鎸抽ˉ鎾广亹闁秶鍙�2021V5.81.0202.1111閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�
闊浂鍋呴幐锟�5.0婵﹢鏅茬粭澶愬础閸モ晠鐛撻柣妤嬫嫹5.0.80 濡ょ姰鍔岄妵鏃堟偋閿燂拷闊浂鍋呴幐锟�5.0婵﹢鏅茬粭澶愬础閸モ晠鐛撻柣妤嬫嫹5.0.80 濡ょ姰鍔岄妵鏃堟偋閿燂拷
濞村吋锕㈤崣锟�2022閻庡箍鍨洪崺娑氱博閻わ拷8.0.9.11050 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�濞村吋锕㈤崣锟�2022閻庡箍鍨洪崺娑氱博閻わ拷8.0.9.11050 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
闁绘牕宕〃宀勬嚌妤︽娼掑Λ鐗堝弳13.1.5閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷闁绘牕宕〃宀勬嚌妤︽娼掑Λ鐗堝弳13.1.5閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷
闁搞儲鍎抽懜浼村炊閹冨壖
photoshop cs6 濞戞搩鍘介弸鍐偋閿燂拷13.1.2.3 闁稿繐绉烽崹鍌涚▔椤撶喐鐎柣妤嬫嫹photoshop cs6 濞戞搩鍘介弸鍐偋閿燂拷13.1.2.3 闁稿繐绉烽崹鍌涚▔椤撶喐鐎柣妤嬫嫹
Autodesk 3ds Max 2012閻庤蓱閺岀喓绮婚埀顒佹媴閹捐尪鍘柡鍌氭川婢ф32&64]Autodesk 3ds Max 2012閻庤蓱閺岀喓绮婚埀顒佹媴閹捐尪鍘柡鍌氭川婢ф32&64]
CAD2007闁稿繐绉烽崹鍌涚▔椤撶喐鐎柣妤嬫嫹CAD2007闁稿繐绉烽崹鍌涚▔椤撶喐鐎柣妤嬫嫹
vc閺夆晜鍔橀、鎴炴償閿燂拷2019闁哄牃鍋撻柡鍌涘婢ф2019.3.2(32&64濞达綇鎷�)vc閺夆晜鍔橀、鎴炴償閿燂拷2019闁哄牃鍋撻柡鍌涘婢ф2019.3.2(32&64濞达綇鎷�)
.NET Framework 4.8閻庤蓱閺岀喖鎮ч敓锟�4.8.3646.NET Framework 4.8閻庤蓱閺岀喖鎮ч敓锟�4.8.3646
闁煎崬锕ら妵澶愭嚂閺冨倻鎹�
QQ2022v9.5.6.28129 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�QQ2022v9.5.6.28129 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
鐎甸偊鍠曟穱濠囨偨娴e啫澹嬮柣妤嬫嫹2022v3.5.0.44 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�鐎甸偊鍠曟穱濠囨偨娴e啫澹嬮柣妤嬫嫹2022v3.5.0.44 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�
闁告鍟版晶浼村础閺嵮屽晙鐎规悶鍎扮紞鏃堢嵁閸愭彃閰眝9.02.02N 閻庤蓱閺岀喖鎮ч敓锟�闁告鍟版晶浼村础閺嵮屽晙鐎规悶鍎扮紞鏃堢嵁閸愭彃閰眝9.02.02N 閻庤蓱閺岀喖鎮ч敓锟�
QT閻犲浂鍙冮悡绂�4.6.80.18262閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�QT閻犲浂鍙冮悡绂�4.6.80.18262閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
濡炲鍋樻穱锟�2018V6.2.0700 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�濡炲鍋樻穱锟�2018V6.2.0700 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�
闁告柣鍔嬬紞鏂裤€掗崨濠傜亞
濞撴氨濮峰ú宥嗩槹閻愯埖绨犵紓鍐句簼娴兼捇鏌堥挊澶岊伋
濡ょ姵鍨块埞鍫熺▔鎼达絿鍩嗛柡澶嗗亾缂備胶绻濋崥顐㈩嚗娴h绠�
闁惧繑鍔栧ḿ鍐储閻旂柉鍩�2
濞寸姰鍎查幏濠氭儍閸曨厾娉㈤柛姘炬嫹
闁哄鍋撻柟纰夋嫹5閻犙嶇畱閸橈拷
FPS閻忓繐瀚崵锟�
H1Z1濞戞搩鍘介弸鍐偋閿燂拷
閻庢稏鍊曢惌婵嬪箚婵犲洨鎼�3
濞戞挸顦抽~妤€煤閼碱剙顥楃紒澶婄Ч閸庢挳姊奸敓锟�6闁瑰瓨锕㈠Σ锔界▕鐎n亜鐎�
濞达絽鐏濋幊锟犲矗椤掆偓閺侊拷8:闁绘粓顣﹂崬顒勫箣濡湱鎸�3
闁告艾鐗撻崳鍓ф啑閸涱収妲�5:妤犵偠宕靛Λ锟�
缂佹梻鍋ら埀顒傚枑閻栧爼骞嬮敓锟�
婵炲柌鍕哎闁告銈嗙盃婵☆垪鍓濈€氾拷2
闁哄啫顑堝ù鍡樻姜椤斿灝鍓�
闁哄绀侀幖褎顦伴悙鑸电盃18
缂佷胶鍋涙慨蹇曠矓閹达絽绗�
F1 2015
闁告劖甯″▍鎾斥柦濞嗘垶纾�
闁瑰瓨鍨瑰▓鎴炵▔閺嶎偅娅�1.8.2
婵炲澧楁刊娲偡閻愭壆鑲�
濡ゆぜ鍎村畷锟�:婵炲鍏樺В锟�
闁哄嫮鍠撻弲顐f綇閻熼偊鏆�
闁哄牃鍋撻柛姘捣閺佹挻娼诲Ο搴撳亾閸栫徎闁绘鎷�
缂佹稒鐗滈弳鎰€掗崨濠傜亞
闁哄倸娲﹀Σ锟�5:缂傚洤绨奸梽鍕棘妫颁胶鐟柣锝忔嫹
濞戞挸顦ù妤勭疀閿燂拷12濠电偘绀佹慨蹇涘礉閻樻彃绻侀柣妤嬫嫹
濞e浄绻濋弳杈ㄧ▕鐎n喖娅i柡鍫嫹14濠电偘绀佹慨蹇涘礉閻樻彃绻侀柣妤嬫嫹
闂傚啯瀵цぐ渚€骞忛敓锟�:闁稿繈鍔戝ḿ浼村箣濡湱鎸�
閻㈩垱绻傚ù妤呭籍閺堥潧鏁�2鐎甸鐒﹀﹢鍥嚀閿燂拷
闁汇垻鍠愬鍧楀嫉瀹ュ懎顫�
闁衡偓椤栨瑧甯涢悗瑙勭箞閹稿爼宕犻敓锟�(Alipay)V10.2.53.7000 閻庣懓顦畷婊堟偋閿燂拷闁衡偓椤栨瑧甯涢悗瑙勭箞閹稿爼宕犻敓锟�(Alipay)V10.2.53.7000 閻庣懓顦畷婊堟偋閿燂拷
闁谎勫劤鐎规娊宕烽弶鎸庣閻庝絻澹堥崺锟�2022V15.12.10 閻庣懓顦畷婊堝箥鐎n偅绨氶柣妤嬫嫹闁谎勫劤鐎规娊宕烽弶鎸庣閻庝絻澹堥崺锟�2022V15.12.10 閻庣懓顦畷婊堝箥鐎n偅绨氶柣妤嬫嫹
闁归潧顑嗗┃鈧繛锝喢悿鍌溾偓骞垮灪閸╂稓绮╅惀锟�10.8.40閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�闁归潧顑嗗┃鈧繛锝喢悿鍌溾偓骞垮灪閸╂稓绮╅惀锟�10.8.40閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
闁伙絽鎳橀埀顒佹⒒缂嶅骞嶇€n偅绨氶悗骞垮灪閸╂稓绮╅惀锟�5.6.9 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�闁伙絽鎳橀埀顒佹⒒缂嶅骞嶇€n偅绨氶悗骞垮灪閸╂稓绮╅惀锟�5.6.9 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
闁告鍟虫禍浼存儗閵夈劎妲曢柡鍫濈Т婵剬ppv4.5.1閻庤蓱閺岀喖鎮ч敓锟�闁告鍟虫禍浼存儗閵夈劎妲曢柡鍫濈Т婵剬ppv4.5.1閻庤蓱閺岀喖鎮ч敓锟�
鐟滀即浜堕悡鍫曞箻椤撶喐鏉�
p2psearcher閻庣懓顦畷婊堟偋閿燂拷7.3  闁归潧顑嗗┃鈧柣妤嬫嫹p2psearcher閻庣懓顦畷婊堟偋閿燂拷7.3 闁归潧顑嗗┃鈧柣妤嬫嫹
闂佷即顥撶€氬秹妫呴崗鍛唶2022閻庤蓱閺岀喖鎮ч崷锟�11.0.8 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷闂佷即顥撶€氬秹妫呴崗鍛唶2022閻庤蓱閺岀喖鎮ч崷锟�11.0.8 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷
闁绘牕宕〃宀勬嚌閻戞ê顤侀柡鍫f婢ф13.1.0闁绘牕宕〃宀勬嚌閻戞ê顤侀柡鍫f婢ф13.1.0
闁谎勫劤鐎瑰疇銇愰柆宥囧従7.13.0 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�闁谎勫劤鐎瑰疇銇愰柆宥囧従7.13.0 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
鐟滀即浜堕悡鍫曞礂閸儲鏁眝6.9.0 閻庣懓顦畷婊堝箥鐎n偅绨氶柣妤嬫嫹鐟滀即浜堕悡鍫曞礂閸儲鏁眝6.9.0 閻庣懓顦畷婊堝箥鐎n偅绨氶柣妤嬫嫹
闂傚啫鎳撻鏉款啅閵夈儱寰�
闁煎灚宕橀鍡涘礉閵婏附鐎琕9.11.5 閻庣懓顦畷婊堟偋閿燂拷闁煎灚宕橀鍡涘礉閵婏附鐎琕9.11.5 閻庣懓顦畷婊堟偋閿燂拷
濞戞棑闄勫Λ妤冧焊韫囨凹鍤涢柛蹇撶Х閸ㄥ倿鎮ч崼鐔告嫳v11.5.5.153 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�濞戞棑闄勫Λ妤冧焊韫囨凹鍤涢柛蹇撶Х閸ㄥ倿鎮ч崼鐔告嫳v11.5.5.153 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
QQ闂傚啫鎳撻浼村闯閳烘及pV7.7.1.910 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�QQ闂傚啫鎳撻浼村闯閳烘及pV7.7.1.910 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
闁硅櫕甯婂Ч澶愭偩閸涱厽鍎旈柛姘煎厸閸旂剬ppv7.1.5 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷闁硅櫕甯婂Ч澶愭偩閸涱厽鍎旈柛姘煎厸閸旂剬ppv7.1.5 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷
閻犙囶棑閸嬶絿鎷犵拋鍐插app闁哄倹澹嗘晶妤呭嫉閿燂拷20227.9.186 閻庣懓顦畷婊堟偋閿燂拷閻犙囶棑閸嬶絿鎷犵拋鍐插app闁哄倹澹嗘晶妤呭嫉閿燂拷20227.9.186 閻庣懓顦畷婊堟偋閿燂拷
闂佸弶鍨奸悗娲偠閸℃艾鍋�
妤犵偛鍟块悾銊ф嫚娴gǹ鐓栭悗鐟扳€﹂柣鐐叉閸屸晵9.1.0.1 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷妤犵偛鍟块悾銊ф嫚娴gǹ鐓栭悗鐟扳€﹂柣鐐叉閸屸晵9.1.0.1 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷
婵炲鍏橀埀顒佷亢閻﹀宕氶崨濠傤杹闁哄牐娅f晶锟�(e婵炲鍏橀埀顒佷亢閸岋拷)8.71 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷婵炲鍏橀埀顒佷亢閻﹀宕氶崨濠傤杹闁哄牐娅f晶锟�(e婵炲鍏橀埀顒佷亢閸岋拷)8.71 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷
濞戞挻绮嶉幑锝囨嫚娴gǹ鐓栧☉鎾寸矋閹癸綁鎮堕崱姘亶4.0.5 閻庣懓顦畷婊堟偋閿燂拷濞戞挻绮嶉幑锝囨嫚娴gǹ鐓栧☉鎾寸矋閹癸綁鎮堕崱姘亶4.0.5 閻庣懓顦畷婊堟偋閿燂拷
濞戞搩鍙冮幗杈╂嫚娴gǹ鐓栫紒澶庮嚙婵晠鎮堕崱姘亶閺夌儐鍨▎锟�6.02.010 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷濞戞搩鍙冮幗杈╂嫚娴gǹ鐓栫紒澶庮嚙婵晠鎮堕崱姘亶閺夌儐鍨▎锟�6.02.010 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷
闁告閰g欢宕囨嫚娴gǹ鐓栭悘蹇撶箻閸i箖骞嶇€n偅绨氶柣鐐叉閸屻劍娼娆愵偨3.2.4 閻庣懓顦畷婊堟偋閿燂拷闁告閰g欢宕囨嫚娴gǹ鐓栭悘蹇撶箻閸i箖骞嶇€n偅绨氶柣鐐叉閸屻劍娼娆愵偨3.2.4 閻庣懓顦畷婊堟偋閿燂拷
闁归潧顑嗗┃鈧梺鐐劶椤拷
缂佸倸绻愮紓鎾诲礃濠婂嫭缍戝ǎ鍥风磿閺併倗绮堥悙顒€顤侀柡鍫熸そ閹借京鎮扮仦绛嬪悅闁规挳顥撻锟�2.3.4 閻庣懓顦畷婊堟偋閿燂拷缂佸倸绻愮紓鎾诲礃濠婂嫭缍戝ǎ鍥风磿閺併倗绮堥悙顒€顤侀柡鍫熸そ閹借京鎮扮仦绛嬪悅闁规挳顥撻锟�2.3.4 閻庣懓顦畷婊堟偋閿燂拷
闁哄嫭鎸搁崺妤佹媴濠婂棭娼掑Λ鐗堝灥婢光偓閺夊牊鍙p4.1.16閻庣懓顦畷婊堟偋閿燂拷闁哄嫭鎸搁崺妤佹媴濠婂棭娼掑Λ鐗堝灥婢光偓閺夊牊鍙p4.1.16閻庣懓顦畷婊堟偋閿燂拷
闁衡偓椤栨瑧甯涢悗瑙勭箞閹稿爼宕犻敓锟�(Alipay)V10.2.53.7000 閻庣懓顦畷婊堟偋閿燂拷闁衡偓椤栨瑧甯涢悗瑙勭箞閹稿爼宕犻敓锟�(Alipay)V10.2.53.7000 閻庣懓顦畷婊堟偋閿燂拷
濞戞搩鍘煎ù妤€顔忛妷銉︽珜闂佺偓鍎奸、鎴﹀箥鐎n偅绨氶梺鐐劶椤㈡叧ppV7.0.1.2.5 閻庣懓顦畷婊堟偋閿燂拷濞戞搩鍘煎ù妤€顔忛妷銉︽珜闂佺偓鍎奸、鎴﹀箥鐎n偅绨氶梺鐐劶椤㈡叧ppV7.0.1.2.5 閻庣懓顦畷婊堟偋閿燂拷
濞戞搩鍘煎ù妤呮煣閹偊鏀介柟闈涱儐濠р偓闂佺偓鍎奸、鎴犫偓骞垮灪閸╂稓绮╅敓锟�7.2.5 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷濞戞搩鍘煎ù妤呮煣閹偊鏀介柟闈涱儐濠р偓闂佺偓鍎奸、鎴犫偓骞垮灪閸╂稓绮╅敓锟�7.2.5 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷
濞村吋鍨垮Λ浠嬫儎婵犲啯顏�
闁煎灚宕橀鍡涙偖鎼淬劌顨欓弶鍫濆綖濮瑰骞嶇€n偅绨氶柣妤€婀�2.3.0.0 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷闁煎灚宕橀鍡涙偖鎼淬劌顨欓弶鍫濆綖濮瑰骞嶇€n偅绨氶柣妤€婀�2.3.0.0 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷
闁告棁灏崹鍫曞炊閵忕姷鏆柡鍌濐潐椤掓粓鎮ч崼鐔奉杹婵炴挾顏�1.2.1閻庤蓱閺岀喖鎮ч敓锟�闁告棁灏崹鍫曞炊閵忕姷鏆柡鍌濐潐椤掓粓鎮ч崼鐔奉杹婵炴挾顏�1.2.1閻庤蓱閺岀喖鎮ч敓锟�
濡ゆぜ鍎甸妶鎸庛仈閵娾晛顨欓弶鈺傜☉鐎垫煡寮悩缁橆€欓梺鍊熷吹閻撳爼鎮ч崸锟�7.8.0.0閻庣懓顦畷婊堟偋閿燂拷濡ゆぜ鍎甸妶鎸庛仈閵娾晛顨欓弶鈺傜☉鐎垫煡寮悩缁橆€欓梺鍊熷吹閻撳爼鎮ч崸锟�7.8.0.0閻庣懓顦畷婊堟偋閿燂拷
婵$偛绉舵晶鎸庡緞瑜庨崹顒勫磽闂堟稒顢嶉柛蹇嬪妽濡叉垿寮伴敓锟�1.0.91 閻庣懓顦畷婊堟偋閿燂拷婵$偛绉舵晶鎸庡緞瑜庨崹顒勫磽闂堟稒顢嶉柛蹇嬪妽濡叉垿寮伴敓锟�1.0.91 閻庣懓顦畷婊堟偋閿燂拷
闁告柣鍔嬬紞鏃備焊閸曨偄姣�
闁革箓顣︾粭鍛村春鎼达絿宕愰柛鎴炴閳ь剙宕憈闁绘鎷�1.6.3 閻庤蓱閺岀喖鎮ч敓锟�闁革箓顣︾粭鍛村春鎼达絿宕愰柛鎴炴閳ь剙宕憈闁绘鎷�1.6.3 閻庤蓱閺岀喖鎮ч敓锟�
閻熶礁鎳愰弫鎶芥嚂閺冨倹绀�1.325.157 閻庣懓顦畷婊堟偋閿燂拷閻熶礁鎳愰弫鎶芥嚂閺冨倹绀�1.325.157 閻庣懓顦畷婊堟偋閿燂拷
闁革讣绲鹃弸鐔哥珶椤愶絾袝闁活厹鍨藉▔锔剧磼閹硷拷4.2.1 閻庣懓顦畷婊堟偋閿燂拷闁革讣绲鹃弸鐔哥珶椤愶絾袝闁活厹鍨藉▔锔剧磼閹硷拷4.2.1 閻庣懓顦畷婊堟偋閿燂拷
闂侇剦鍠栭妵锟�3D闁归潧顑嗛悥锟�1.0.9閻庣懓顦畷婊堟偋閿燂拷闂侇剦鍠栭妵锟�3D闁归潧顑嗛悥锟�1.0.9閻庣懓顦畷婊堟偋閿燂拷
濠靛妫冨Σ璇层€掗崨濠傜亞
閻庣懓顦畷婊冾渻瀹ュ洤鈷栧鍫嗗嫬鐏涢柛宥夋涧濡楋拷2濮掓稒鍨跺▓顐﹀籍閺堥潧鏁╁ǎ鍥跺枟閺佸ジ鎮ч崷锟�1.9.5 闁哄牃鍋撻柡鍌涘婢э拷閻庣懓顦畷婊冾渻瀹ュ洤鈷栧鍫嗗嫬鐏涢柛宥夋涧濡楋拷2濮掓稒鍨跺▓顐﹀籍閺堥潧鏁╁ǎ鍥跺枟閺佸ジ鎮ч崷锟�1.9.5 闁哄牃鍋撻柡鍌涘婢э拷
濞戞棁椴搁弸鐔烘啿閹稿海鍩�2v1.0.150閻庣懓顦畷婊堟偋閿燂拷濞戞棁椴搁弸鐔烘啿閹稿海鍩�2v1.0.150閻庣懓顦畷婊堟偋閿燂拷
濞e洦绻傚畷濂告媰濠靛棗妞�3闁哄啰濞€濡炬椽鏌﹂懡銈囧従闁哄牃鍋撻柡鍌涘婢ф2.0.0.1 閻庣懓顦畷婊堟偋閿燂拷濞e洦绻傚畷濂告媰濠靛棗妞�3闁哄啰濞€濡炬椽鏌﹂懡銈囧従闁哄牃鍋撻柡鍌涘婢ф2.0.0.1 閻庣懓顦畷婊堟偋閿燂拷
闁告瑱缍€椤d即鎳熼柆宥嗙闁告娲樺┃鈧柣妤嬫嫹1.2.0 閻庣懓顦畷婊堟偋閿燂拷闁告瑱缍€椤d即鎳熼柆宥嗙闁告娲樺┃鈧柣妤嬫嫹1.2.0 閻庣懓顦畷婊堟偋閿燂拷
閻忓繐绻愰惃顒勫礃濞戞ɑ绀嬮悗鐟邦槸瀹曟粓鎮ч敓锟�2.7.4 闁哄啰濞€濡炬椽鏌岄幋婵堫伈濞e浂鍠楅弫濂告偋閿燂拷閻忓繐绻愰惃顒勫礃濞戞ɑ绀嬮悗鐟邦槸瀹曟粓鎮ч敓锟�2.7.4 闁哄啰濞€濡炬椽鏌岄幋婵堫伈濞e浂鍠楅弫濂告偋閿燂拷
閻犙勭濠у懐绮╅悙鏉懳�
闁谎嗩嚙閸栨鎸у☉婊勭盃2闁归潧顑嗛悥锟�1.47.1  閻庣懓顦畷婊堟偋閿燂拷闁谎嗩嚙閸栨鎸у☉婊勭盃2闁归潧顑嗛悥锟�1.47.1 閻庣懓顦畷婊堟偋閿燂拷
濞戞挴鍋撻悹褔鏀卞ḿ鍨槹閻愯埖绨犻悗鐟邦槸瀹曟粓鎮ч崸锟�2.9.14 闁哄牃鍋撻柡鍌涘婢э拷濞戞挴鍋撻悹褔鏀卞ḿ鍨槹閻愯埖绨犻悗鐟邦槸瀹曟粓鎮ч崸锟�2.9.14 闁哄牃鍋撻柡鍌涘婢э拷
閻犵儤鍨肩粣鍥础閳ヨ尙顏查弶鐑囬檮婢ф粓寮甸搹鐟邦暭閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣紇1.16.2 閻庣懓顦畷婊堟偋閿燂拷閻犵儤鍨肩粣鍥础閳ヨ尙顏查弶鐑囬檮婢ф粓寮甸搹鐟邦暭閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣紇1.16.2 閻庣懓顦畷婊堟偋閿燂拷
闁绘瑥鍊块崳瑙勵槹濞嗘帗绨�8闁哄绶氶埀顒傚枎閸i攱绂嶉幋婊勫弿闁衡偓閸︻厼顣�(闁稿繐绉甸弳鐔煎箲椤旂厧鐦�)v4.6.0j 闂佸弶鍨电粩鐢稿籍閻樼粯顎欓柣妤嬫嫹闁绘瑥鍊块崳瑙勵槹濞嗘帗绨�8闁哄绶氶埀顒傚枎閸i攱绂嶉幋婊勫弿闁衡偓閸︻厼顣�(闁稿繐绉甸弳鐔煎箲椤旂厧鐦�)v4.6.0j 闂佸弶鍨电粩鐢稿籍閻樼粯顎欓柣妤嬫嫹
闁谎冨綖缁犱即宕¢崘顏勪粡闁硅娲熸總锟�2021闁哄牃鍋撻柡鍌涘婢э拷5.78 閻庣懓顦畷婊堟偋閿燂拷闁谎冨綖缁犱即宕¢崘顏勪粡闁硅娲熸總锟�2021闁哄牃鍋撻柡鍌涘婢э拷5.78 閻庣懓顦畷婊堟偋閿燂拷
閻熸瑦甯熸竟濠囧箥椤旂晫宸�
婵⿵绠戞径鐔煎礈閹达絽鐏﹂柤鏉挎噹瑜板骞€娴e搫顣�1.0.1.2閻庣懓顦畷婊堟偋閿燂拷婵⿵绠戞径鐔煎礈閹达絽鐏﹂柤鏉挎噹瑜板骞€娴e搫顣�1.0.1.2閻庣懓顦畷婊堟偋閿燂拷
濞寸姵鐟ラ。銊﹀閻樹警鍤況o濠㈣泛绉撮崣瀵糕偓鐟邦槸瀹曟粓鎮ч敓锟�1.20.3闁哄牃鍋撻柡鍌涘婢э拷濞寸姵鐟ラ。銊﹀閻樹警鍤況o濠㈣泛绉撮崣瀵糕偓鐟邦槸瀹曟粓鎮ч敓锟�1.20.3闁哄牃鍋撻柡鍌涘婢э拷
婵⿵绠戞径鐔烘嫚濞戞鑸堕柟闈涱儐閻栧爼鎮ч敓锟�1.3.6 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷婵⿵绠戞径鐔烘嫚濞戞鑸堕柟闈涱儐閻栧爼鎮ч敓锟�1.3.6 閻庤蓱閺岀喓鈧懓顦畷婊堟偋閿燂拷
闁绘粌顑堥埀顒€鎳撳畷鎶芥嚀閳х悤3.72.1.1 閻庣懓顦畷婊堝嫉閳ь剟寮弶璺ㄦ毉闁哄倸婀辨晶锟�闁绘粌顑堥埀顒€鎳撳畷鎶芥嚀閳х悤3.72.1.1 閻庣懓顦畷婊堝嫉閳ь剟寮弶璺ㄦ毉闁哄倸婀辨晶锟�
閻犲绀侀宥囦焊韫囨碍绨犵€殿喚鍎ゆ晶婊堝嫉閾忕懓顣紇1.0.49 閻庣懓顦畷婊堟偋閿燂拷閻犲绀侀宥囦焊韫囨碍绨犵€殿喚鍎ゆ晶婊堝嫉閾忕懓顣紇1.0.49 閻庣懓顦畷婊堟偋閿燂拷
缂侇垵宕电划鐑樻姜椤栨瑦顐�
mac缁惧彞鑳跺ú蹇涘礆閸℃闅樼€规悶鍎遍崣锟�(Paragon Camptune X)V10.8.12閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�mac缁惧彞鑳跺ú蹇涘礆閸℃闅樼€规悶鍎遍崣锟�(Paragon Camptune X)V10.8.12閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
闁兼槒顫夐悘澶愬箼瀹ュ嫮绋婄紒顖濆吹缁瘲ACOSX 10.9.4 Mavericks閻庣懓鑻崣蹇涘礂瀹ュ牆鐎柣妤嬫嫹闁兼槒顫夐悘澶愬箼瀹ュ嫮绋婄紒顖濆吹缁瘲ACOSX 10.9.4 Mavericks閻庣懓鑻崣蹇涘礂瀹ュ牆鐎柣妤嬫嫹
Rar閻熸瑱绲界敮鍥礆閳轰焦鐝ac闁绘婢�1.4 閻庤蓱閺岀喖宕楀鍫濈€柣妤嬫嫹Rar閻熸瑱绲界敮鍥礆閳轰焦鐝ac闁绘婢�1.4 閻庤蓱閺岀喖宕楀鍫濈€柣妤嬫嫹
Mac閻庣懓顦畷婊兾熼埄鍐ㄧ彲闁革綇鎷�(ARC Welder)v1.0 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�Mac閻庣懓顦畷婊兾熼埄鍐ㄧ彲闁革綇鎷�(ARC Welder)v1.0 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
Charles for MacV3.9.3閻庤蓱閺岀喖鎮ч敓锟�Charles for MacV3.9.3閻庤蓱閺岀喖鎮ч敓锟�
缂傚啯鍨圭划璺侯啅閵夈儱寰�
闁瑰吋绮庣€氬秴霉韫囨凹娼旈柛锝傛殨ac闁绘婢�5.2 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�闁瑰吋绮庣€氬秴霉韫囨凹娼旈柛锝傛殨ac闁绘婢�5.2 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�
闂佹寧鍔栧畵搴b偓骞垮灪閸╂稓绮╅惀鐞闁绘婀�1.33閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�闂佹寧鍔栧畵搴b偓骞垮灪閸╂稓绮╅惀鐞闁绘婀�1.33閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
闊浂鍋嗘晶鐢縜c闁绘婢�1.3.2 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�闊浂鍋嗘晶鐢縜c闁绘婢�1.3.2 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�
闁哄鑳堕崑锝嗙閺冨倻鎳塎ac闁绘鎷�7.13婵繐绲界槐锟犳偋閿燂拷闁哄鑳堕崑锝嗙閺冨倻鎳塎ac闁绘鎷�7.13婵繐绲界槐锟犳偋閿燂拷
濠殿垱甯婄紞瀣啅閵夈儱寰�
Apple Logic Pro xV10.3.2Apple Logic Pro xV10.3.2
Adobe Premiere Pro CC 2017 mac闁绘婢�11.0.0 濞戞搩鍘介弸鍐偋閿燂拷Adobe Premiere Pro CC 2017 mac闁绘婢�11.0.0 濞戞搩鍘介弸鍐偋閿燂拷
闁告鍟畷鍫ユ濞嗗繑鍎擬ac闁绘婀�9.1.1 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�闁告鍟畷鍫ユ濞嗗繑鍎擬ac闁绘婀�9.1.1 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
Mac缂傚啯鍨圭划鍫曟儎鐎涙ɑ灏¢弶鐑嗗灟濞嗭拷(MacTV)v0.121 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�Mac缂傚啯鍨圭划鍫曟儎鐎涙ɑ灏¢弶鐑嗗灟濞嗭拷(MacTV)v0.121 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
Adobe Fireworks CS6 Mac闁绘婀慡6閻庤蓱閺岀喓绮婚埀顒佹媴閹捐尪鍘柡鍌氭川婢э拷Adobe Fireworks CS6 Mac闁绘婀慡6閻庤蓱閺岀喓绮婚埀顒佹媴閹捐尪鍘柡鍌氭川婢э拷
闁搞儲鍎抽懜浼村炊閹冨壖
AutoCAD2015 mac濞戞搩鍘介弸鍐偋閸喐鎷眝1.0 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�AutoCAD2015 mac濞戞搩鍘介弸鍐偋閸喐鎷眝1.0 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�
Adobe Photoshop cs6 mac闁绘婢�13.0.3 閻庤蓱閺岀喐绋夐鐔哥€柣妤嬫嫹Adobe Photoshop cs6 mac闁绘婢�13.0.3 閻庤蓱閺岀喐绋夐鐔哥€柣妤嬫嫹
Mac闁活厹鍨介崳铏圭磼濡儤绂堥弶鐑嗗灟濞嗭拷(Sketch mac)v3.3.2 濞戞搩鍘介弸鍐偋閿燂拷Mac闁活厹鍨介崳铏圭磼濡儤绂堥弶鐑嗗灟濞嗭拷(Sketch mac)v3.3.2 濞戞搩鍘介弸鍐偋閿燂拷
Adobe After Effects cs6 mac闁绘婢�1.0濞戞搩鍘介弸鍐偋閿燂拷Adobe After Effects cs6 mac闁绘婢�1.0濞戞搩鍘介弸鍐偋閿燂拷
Adobe InDesign cs6 mac1.0 閻庤蓱閺岀喐绋夐鐔哥€柣妤嬫嫹Adobe InDesign cs6 mac1.0 閻庤蓱閺岀喐绋夐鐔哥€柣妤嬫嫹
閹煎瓨姊婚弫銈嗘姜椤栨瑦顐�
Mac闁绘鐗嗛幓鈺呭箻閿燂拷1.1.26 閻庤蓱閺岀喎顫㈤敐鍛闁绘婧俤mg]Mac闁绘鐗嗛幓鈺呭箻閿燂拷1.1.26 閻庤蓱閺岀喎顫㈤敐鍛闁绘婧俤mg]
Mac閻犲洩顕ч崯鎻楾FS(Paragon NTFS for Mac)12.1.62 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�Mac閻犲洩顕ч崯鎻楾FS(Paragon NTFS for Mac)12.1.62 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�
閺夆晛鎳樺ù锟�10 for macv3.4.1.4368 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�閺夆晛鎳樺ù锟�10 for macv3.4.1.4368 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
Mac濞戞挸顑嗗〒璺侯嚕閸濆嫨浜i柣銊ュ闁绱掗悢鍝ヮ伕闁荤偛妫楁导鎰板礂閿燂拷(CleanMyMac for mac)v3.1.1 婵繐绲界槐锟犳偋閿燂拷Mac濞戞挸顑嗗〒璺侯嚕閸濆嫨浜i柣銊ュ闁绱掗悢鍝ヮ伕闁荤偛妫楁导鎰板礂閿燂拷(CleanMyMac for mac)v3.1.1 婵繐绲界槐锟犳偋閿燂拷
闁兼槒顫夐悘濉€ootCamp5.1.5640 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�闁兼槒顫夐悘濉€ootCamp5.1.5640 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
ios缂佲偓閸欍儲鍞夐柤鍗烇工閵囷拷
鐎甸偊鍠曟穱濂縫ad闁绘鎷�2020v7.0.12 閻庤蓱閺岀喖鎮ч敓锟�鐎甸偊鍠曟穱濂縫ad闁绘鎷�2020v7.0.12 閻庤蓱閺岀喖鎮ч敓锟�
iphone闁归潧顑嗗┃鈧琿q2021v8.5.0 閻庤蓱閺岀喖鎮ч敓锟�iphone闁归潧顑嗗┃鈧琿q2021v8.5.0 閻庤蓱閺岀喖鎮ч敓锟�
闁哄嫭鎸锋穱濂縊S闁绘婢�7.3.13 iPhone闁绘鎷�闁哄嫭鎸锋穱濂縊S闁绘婢�7.3.13 iPhone闁绘鎷�
闂傚嫬鐭傚锟� iphoneV8.32.4 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�闂傚嫬鐭傚锟� iphoneV8.32.4 閻庤蓱閺岀喎顫㈤敐鍛闁绘鎷�
闁告鍟版晶锟� iphone闁绘鎷�9.2.5 閻庤蓱閺岀喖鎮ч敓锟�闁告鍟版晶锟� iphone闁绘鎷�9.2.5 閻庤蓱閺岀喖鎮ч敓锟�
ios闁汇垻鍠愬鍧楀嫉瀹ュ懎顫�
99濞戞挶鍎甸埀顒€顦板〒鍫曞棘閹殿喖顣糣1.3.699濞戞挶鍎甸埀顒€顦板〒鍫曞棘閹殿喖顣糣1.3.6
闊浂鍋嗘晶鐢禤hone闁绘鎷�5.7.3 閻庤蓱閺岀喖鎮ч敓锟�闊浂鍋嗘晶鐢禤hone闁绘鎷�5.7.3 閻庤蓱閺岀喖鎮ч敓锟�
婵烇絾锚閻わ拷 for iPhonev9.5.15 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�婵烇絾锚閻わ拷 for iPhonev9.5.15 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
濠⒀佸姀閹舵寰勯埡鍌滄瘻 for iphoneV7.5.3閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣糏PA濠⒀佸姀閹舵寰勯埡鍌滄瘻 for iphoneV7.5.3閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣糏PA
閻犲鏀遍悺鏇㈠捶閺夋寧绂坕phone(Google Maps)4.54  濞戞搩鍘介弸鍐偋閿燂拷閻犲鏀遍悺鏇㈠捶閺夋寧绂坕phone(Google Maps)4.54 濞戞搩鍘介弸鍐偋閿燂拷
ios鐟滀即浜堕悡鑸电箾閸欐ḿ顔�
闊浂鍋呴幐閬嶆嚐鐟欏嫮浜柣妤€婀�3.3.35 閻庤蓱閺岀喖鎮ч崷绯筽a]闊浂鍋呴幐閬嶆嚐鐟欏嫮浜柣妤€婀�3.3.35 閻庤蓱閺岀喖鎮ч崷绯筽a]
闁告艾顦幃蹇氥亹闁秶鍙鹃柟缁㈠幗閺備線宕抽埡顧祍闁绘鎷�1.0.1017 闁兼槒顫夐悘濉眕ad闁绘鎷�闁告艾顦幃蹇氥亹闁秶鍙鹃柟缁㈠幗閺備線宕抽埡顧祍闁绘鎷�1.0.1017 闁兼槒顫夐悘濉眕ad闁绘鎷�
鐟滀即浜堕悡鍫曞礂閸儲鏁遍柟缁㈠幗閺備線宕抽埡顧祍闁绘鎷�2.8.0 閻庤蓱閺岀喖鎮ч敓锟�鐟滀即浜堕悡鍫曞礂閸儲鏁遍柟缁㈠幗閺備線宕抽埡顧祍闁绘鎷�2.8.0 閻庤蓱閺岀喖鎮ч敓锟�
闁哄倹顨婃總鏃堟儎鐎涙ɑ灏¢悗骞垮灪閸╂稓绮╅惀鐖媠闁绘鎷�7.0.1 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�闁哄倹顨婃總鏃堟儎鐎涙ɑ灏¢悗骞垮灪閸╂稓绮╅惀鐖媠闁绘鎷�7.0.1 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
闂佷即顥撶€氬秹妫呴崗鍛唶 for iPhonev10.9.0 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�闂佷即顥撶€氬秹妫呴崗鍛唶 for iPhonev10.9.0 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
ios闁搞儲鍎抽懜浼村炊閹冨壖
How old do I look ios闁绘鎷�1.02 閻庤蓱閺岀喖鎮ч敓锟�How old do I look ios闁绘鎷�1.02 閻庤蓱閺岀喖鎮ч敓锟�
缂傚洤楠稿ù妯肩矓閳ь剛绮旈埀鐞睵hone闁绘婀�8.6.62 闁哄牃鍋撻柡鍌滃椤掓粌顕h箛鏇烆暭缂傚洤楠稿ù妯肩矓閳ь剛绮旈埀鐞睵hone闁绘婀�8.6.62 闁哄牃鍋撻柡鍌滃椤掓粌顕h箛鏇烆暭
婵ɑ娼欏畵鍐⒓閻斿吋姣愰柤鏄忣潐閻忓鎮ч崸锟�1.0.0婵ɑ娼欏畵鍐⒓閻斿吋姣愰柤鏄忣潐閻忓鎮ч崸锟�1.0.0
濠㈠灈鏅涢妵濉搁柛銉х┉pad闁绘鎷�5.7.4 閻庤蓱閺岀喖鎮ч敓锟�濠㈠灈鏅涢妵濉搁柛銉х┉pad闁绘鎷�5.7.4 閻庤蓱閺岀喖鎮ч敓锟�
闊浂鍋呮晶娓媜s闁绘婀�9.6.30 閻庤蓱閺岀喖鎮ч敓锟�闊浂鍋呮晶娓媜s闁绘婀�9.6.30 閻庤蓱閺岀喖鎮ч敓锟�
ios婵炴潙绻楅~宥咁啅閵夈儱寰�
闁煎啿鑻€垫﹢宕烽弶鎸庣ios闁绘鎷�1.0 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�闁煎啿鑻€垫﹢宕烽弶鎸庣ios闁绘鎷�1.0 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
闁归潧顑嗗┃鈧悗鐟邦槸閸欏繘宕濋埡鍌氼杹闁兼槒顫夐悘澶愭偋閸э拷1.0 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�闁归潧顑嗗┃鈧悗鐟邦槸閸欏繘宕濋埡鍌氼杹闁兼槒顫夐悘澶愭偋閸э拷1.0 閻庤蓱閺岀喖寮甸埀顒勫棘閹殿喖顣�
UC婵炴潙绻楅~宥夊闯閳猴拷113.5.5.1555濞戞搩鍘介弸鍐偋閿燂拷UC婵炴潙绻楅~宥夊闯閳猴拷113.5.5.1555濞戞搩鍘介弸鍐偋閿燂拷
360婵炴潙绻楅~宥夊闯閳╁ for iPadV4.1.3  婵繐绲界槐锟犳偋閿燂拷360婵炴潙绻楅~宥夊闯閳╁ for iPadV4.1.3 婵繐绲界槐锟犳偋閿燂拷
iPhone闁归潧顑嗗┃鈧琎Q婵炴潙绻楅~宥夊闯閳猴拷8.9.1 閻庤蓱閺岀喖鎮ч敓锟�iPhone闁归潧顑嗗┃鈧琎Q婵炴潙绻楅~宥夊闯閳猴拷8.9.1 閻庤蓱閺岀喖鎮ч敓锟�

首頁(yè)編程開(kāi)發(fā)其它知識(shí) → 3ds max sdk導(dǎo)出插件編寫(xiě)心得

3ds max sdk導(dǎo)出插件編寫(xiě)心得

相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2014/2/10 22:00:20字體大�。�A-A+

作者:西西點(diǎn)擊:709次評(píng)論:0次標(biāo)簽: 3DMAX

  • 類(lèi)型:濾鏡插件大�。�17.5M語(yǔ)言:中文 評(píng)分:3.3
  • 標(biāo)簽:
立即下載

感覺(jué)3ds Max SDK實(shí)在是博大精深,初學(xué)者入門(mén)還是很不方便,所以覺(jué)得以前發(fā)的心得應(yīng)該得到補(bǔ)充,因而寫(xiě)了這樣一個(gè)導(dǎo)出程序介紹,還是抱著學(xué)習(xí)的態(tài)度,不過(guò)還是希望能夠?qū)Υ蠹矣兴鶐椭?/p>

相關(guān)鏈接 版本說(shuō)明 下載地址
3DMax v7.0 中文 破解版 查看
3DS Max V8.0 SP2 簡(jiǎn)體中文 免安裝版 查看
3dmax9.0簡(jiǎn)體中文 綠色版 查看
3dmax2009中文版 精簡(jiǎn)版 查看
3DS MAX 2010 官方中文版 max2010 查看
3ds MAX 2011簡(jiǎn)體中文版 32位 查看
3ds Max 2012簡(jiǎn)體中文版 官方32&64位 查看
3ds Max 2013中文版 官方版 查看
3dmax2014中文版 帶注冊(cè)機(jī) 查看
3dmax2015官方版 64位版本 查看

想想研究3D MAX 的SDK已經(jīng)有了不短的時(shí)間,真正算起來(lái)也有兩個(gè)月了吧,但是講到收獲,確實(shí)不大。作為一個(gè)3D MAX二次開(kāi)發(fā)的學(xué)習(xí)者,我首先學(xué)習(xí)了導(dǎo)出插件的編寫(xiě),網(wǎng)上有很多參考資料,寫(xiě)的都差不多,可是都是寫(xiě)到關(guān)鍵的地方或者說(shuō)比較模糊的地方就說(shuō)不清楚了,今天我就結(jié)合自己所做的工作來(lái)講講3D MAX導(dǎo)出插件的編寫(xiě)心得。

3Ds MAX2009 (3dmax)
5.6
類(lèi)別: 3D 制作    大�。�56.6M    語(yǔ)言: 中文
查看詳細(xì)信息 >>

環(huán)境配置:

步驟1.首先你得有VS2005,3ds Max 9,如果有就好辦了,否則想辦法搞到手吧,在中國(guó)做到這點(diǎn)應(yīng)該不難。至于其他相近版本的IDE和MAX,情況基本類(lèi)似。

步驟2.在3ds Max9 SDK"maxsdk"howto"3dsmaxPluginWizard中有個(gè)readme.txt,它會(huì)向你介紹如何配置3ds Max9 plugin的向?qū)А?/p>

步驟3.啟動(dòng)vs2005,新建Visual C++項(xiàng)目,如果在右側(cè)的模板組中能夠找到”3dsmaxPluginWizard”,并且選擇后能夠彈出歡迎界面,說(shuō)面配置已經(jīng)成功了。

首先,需要做好如下的準(zhǔn)備工作:
1. 安裝一個(gè)完整版本的3D MAX與Visual Stdio。
我安裝的是3D MAX 2009,最好是找一個(gè)完整的版本,因?yàn)橥暾陌姹局杏泻芏嗟膶W(xué)習(xí)資料與sdk供學(xué)習(xí),很省事。3D MAX的二次開(kāi)發(fā)對(duì)VS的要求是有一個(gè)對(duì)應(yīng)關(guān)系的,在SDK文檔中可以找到,3D MAX 2009對(duì)應(yīng)的VS開(kāi)發(fā)版本應(yīng)該是VS 2005,確保電腦上已經(jīng)安裝了VS 2005。
2.定制3D MAX plug-in向?qū)А?br/>a.找到安裝目錄的3dsmaxPluginWizard文件夾(我的安裝目錄是C:\Program Files\Autodesk\3ds Max 9 SDK\maxsdk\howto\3dsmaxPluginWizard
),
b.打開(kāi)此目錄下的MaxPluginWizard.vsz 文件,編輯ABSOLUTE  PATH參數(shù)為:

Param="ABSOLUTE_PATH=C:\Program Files\Autodesk\3ds Max 9\SDK\maxsdk\howto\3dsmaxPluginWizard"

c.將3dsmaxPluginWizard文件夾下的三個(gè)文件3dsmaxPluginWizard.ico、3dsmaxPluginWizard.vsdir、3dsmaxPluginWizard.vsz拷貝到VS 2005安裝目錄的 VC  Projects 目錄下,我電腦上的目錄是C:\Program Files\Microsoft Visual Studio 8\VC\vcprojects。
d.啟動(dòng)VS 2005,File-New Project,選擇Visual C++就可以看到3ds max Plugin Wizard選項(xiàng),說(shuō)明定制成功。
以上只是開(kāi)發(fā)前的一些準(zhǔn)備工作,都可以直接在3D MAX SDK的文檔中直接找到,不過(guò)文檔可都是英文的哦,要耐心的讀下去。
在以上準(zhǔn)備工作做好以后,就可以開(kāi)始開(kāi)發(fā)一個(gè)插件了,由簡(jiǎn)單到復(fù)雜,先做一個(gè)簡(jiǎn)單的插件程序。插件程序的編寫(xiě)有兩種方法,一是用插件向?qū)�,就是剛才上面所說(shuō)的;另一種是通過(guò)手工創(chuàng)建一個(gè)插件項(xiàng)目,在這里暫時(shí)只討論用插件向?qū)?lái)開(kāi)發(fā),比較便捷,手工開(kāi)發(fā)以后在補(bǔ)上。
1.第一步,生成一個(gè)插件程序的工程,具體如下:
a. 打開(kāi)File —>New Project —>選擇3ds max Plugin Wizard,輸入project名字,如 “MyExport”。
b. 進(jìn)入Welcome to the 3ds max Plugin Wizard 畫(huà)面,選擇plugin type如圖所示:

c.這里顯示各種插件類(lèi)型,目前要做的是一個(gè)文件的導(dǎo)出插件,所以選擇FileExport類(lèi)型。
d.下一步,再出現(xiàn)一個(gè)對(duì)話框



不用去管這些Plugin Detail,會(huì)有默認(rèn)路徑的,。     
e.再下一步,設(shè)置一些路徑,具體見(jiàn)圖及注明。

注明:

Enter your MAXSDK path指的是3D MAX SDK的安裝目錄

Enter your Plugin output path 指的是生成插件文件.dll存放的目錄,可以自己設(shè)置

Enter your 3dsmax.exe path指的是3D MAX的安裝目錄

2.項(xiàng)目生成以后,在MyExport.cpp文件中找到Ext(int n)函數(shù),改為return _T("MY3D"), "MY3D"是根據(jù)自己的要求來(lái)添加的;
找到ShortDesc()函數(shù),改為return _T ("MyExportPlugin");
找到DoExport(const TCHAR *name,ExpInterface *ei,Interface *i, BOOL suppressPrompts, DWORD options)內(nèi)添加:

AllocConsole();

_cprintf( "Export Begin\n" );//記得#include <conio.h>

3. 生成并調(diào)試你的插件,系統(tǒng)會(huì)執(zhí)行3dsmax.exe以啟動(dòng)3ds Max,然后選擇“文件”->”導(dǎo)出”,如果能看到"MyExportPlugin(*.My3D)"
說(shuō)明導(dǎo)出成功,然后定義一個(gè)導(dǎo)出文件的名稱(chēng)即可.這樣一個(gè)空的導(dǎo)出插件就編寫(xiě)成功了!接下來(lái)請(qǐng)看: 3D MAX導(dǎo)出插件編寫(xiě)II    



Export利器:IGame 
古人云:君子生非異也,善假于物也
數(shù)據(jù)導(dǎo)出是一個(gè)繁瑣的工作,于是,有了IGame這個(gè)解脫程序員的東西:


關(guān)于IGame

IGame是Max提供給游戲開(kāi)發(fā)的一個(gè)用于導(dǎo)入導(dǎo)出的接口。在Max的help里面這個(gè)東西叫做3ds Max Data Exchange Interface。有了這個(gè)接口,可以大大的簡(jiǎn)化導(dǎo)入導(dǎo)出工作的工作量。

如果有經(jīng)歷過(guò)用MAX SDK導(dǎo)出關(guān)鍵幀動(dòng)畫(huà)以及骨骼動(dòng)畫(huà),Skin,Modifier等等的經(jīng)歷的話,我想肯定會(huì)記憶深刻。IGame的作用就是把復(fù)雜的Max的概念簡(jiǎn)化,封裝。

建立IGame:
IGameScene * m_pIgame= GetIGameInterface()

坐標(biāo)系:
前面我提到的導(dǎo)出的文章都沒(méi)有提這個(gè)問(wèn)題,所有的坐標(biāo)都是用的MAX本身的坐標(biāo)系,及Z軸向上。在游戲中坐標(biāo)系可能千奇百怪,IGame考慮到這點(diǎn)提供了指定坐標(biāo)系的功能:

IGameConversionManager * cm = GetConversionManager();

cm->SetCoordSystem(IGameConversionManager::IGAME_D3D);

m_pIgame->InitialiseIGame(true); 

其中IGAME_D3D就是指定的坐標(biāo)系,同樣也可以自定義坐標(biāo)系:

UserCoord WhackySystem = { 

1,   //Right Handed 

1,   //X axis goes right 

4,   //Y Axis goes in 

3,   //Z Axis goes down. 

0,   //U Tex axis is left 

1, //V Tex axis is Down 

};   


IGameConversionManager * cm = GetConversionManager(); 

cm->SetUserCoordSystem(WhackySystem);                  

IGame要點(diǎn):
GetTopLevelNodeCount:獲得頂級(jí)的Node數(shù)目,不包括Root。

GetRootMaterialCount:獲得所有的材質(zhì)數(shù)目

GetTopLevelNode(i):獲得指定Node

GetIGameObject():獲得Node中包含的Object

GetLocalTM():獲得Node的矩陣



IGameMesh ::GetVertex(i):獲得頂點(diǎn)

IGameMesh ::GetFace(i);獲得面

IGameMesh ::GetNormal(i):獲得法線

至于其他就依次類(lèi)推了,從函數(shù)的命名,到概念的簡(jiǎn)化,無(wú)疑都比原始的MAXSDK進(jìn)步了很多。有了IGame接口,大大減輕了程序員的負(fù)擔(dān),我相信沒(méi)有哪個(gè)愿意把大把的時(shí)間花在數(shù)據(jù)的導(dǎo)入導(dǎo)出上。



花了幾十分鐘簡(jiǎn)單的試用了一下IGame寫(xiě)了個(gè)小小的導(dǎo)出插件,只導(dǎo)出了頂點(diǎn),面,材質(zhì),法線以及矩陣,感覺(jué)基本上沒(méi)什么阻礙。不過(guò)IGame最大的功能還是用在骨骼動(dòng)畫(huà),關(guān)鍵幀動(dòng)畫(huà)上面,僅僅只是簡(jiǎn)單的幾何體導(dǎo)出并不能體現(xiàn)出IGame的功效。



最后還是附上代碼和工程吧。不得不提示一下,由于種種曲折的原因,我這個(gè)工程是在MAX8 SDK和 MAX8下 完成的,其間省略上千字曲折的經(jīng)歷,不過(guò)在MAX9下應(yīng)該可以通過(guò)編譯。編譯完成后,記得在Max 中選擇Export Selected而不是試用Export。

3DS MAX PlugIn 材質(zhì)和紋理 材質(zhì)和紋理的信息都位于node 中
材質(zhì)的信息通過(guò)類(lèi)Mtl獲得
紋理的信息位于node中的mesh 中的UVVert

以下是獲得材質(zhì)的代碼:
//////////////////////////////////////////////////////////////////////////
//material
Mtl* nodematerial=node->GetMtl();
if(nodematerial)
{
fprintf(m_fileStream, "%s mtl -- name:<%s>\n", GetIndent(indent),nodematerial->GetName());
}
else
{
DWORD vcolor=node->GetWireColor();
fprintf(m_fileStream,"%s color -- rgb:<%d,%d,%d>\n", GetIndent(indent),GetRValue(vcolor), GetGValue(vcolor), GetBValue(vcolor));
}
//////////////////////////////////////////////////////////////////////////

以下是獲取UV的代碼,需要注意的是,需要對(duì)是否有多重貼圖處理:


void OnlyGeometry::ExportUVInfo(Mesh* mesh,int indent)
{
int numTVerts = mesh->getNumTVerts();
if(numTVerts>0)
{
fprintf(m_fileStream, "%s texture channel 1 -- numverts:<%d>\n", GetIndent(indent),numTVerts);
for (int i = 0; i < numTVerts; i++) 
{
UVVert tvert = mesh->tVerts[i];
fprintf(m_fileStream, "%s UVW tvert %d:<%f,%f,%f>\n", GetIndent(indent),i, tvert.x, tvert.y, tvert.z);
}
// print tvert indices used by tvfaces
for (int i = 0; i < mesh->getNumFaces(); i++) 
{
TVFace tface = mesh->tvFace[i];
fprintf(m_fileStream, "%s TVFace %d -- tvertind:<%d,%d,%d>\n", 
GetIndent(indent),i, tface.t[0], tface.t[1], tface.t[2]);
}                    
}
//多重貼圖 
for (int chanloop = 2; chanloop < MAX_MESHMAPS - 1; chanloop++)
{
if (mesh->mapSupport(chanloop)) 
{
numTVerts = mesh->getNumMapVerts(chanloop);
fprintf(m_fileStream, "%s texture channel %d -- numverts:<%d>\n", GetIndent(indent),chanloop, numTVerts);
for (int i = 0; i < numTVerts; i++) 
{
UVVert tvert = mesh->mapVerts(chanloop)[i];
fprintf(m_fileStream, "%s UVW tvert %d:<%f,%f,%f>\n", GetIndent(indent),i, tvert.x, tvert.y, tvert.z);
}
// now, print tvert indices used by tvfaces
for (int i = 0; i < mesh->getNumFaces(); i++) 
{
TVFace tface = mesh->mapFaces(chanloop)[i];
fprintf(m_fileStream, "%s TVFace %d -- tvertind:<%d,%d,%d>\n", GetIndent(indent),
i, tface.t[0], tface.t[1], tface.t[2]);
}                      
}
}
}


從簡(jiǎn)單開(kāi)始 邂逅Geometry

Download[onlygeometry.rar]

幾何體的導(dǎo)出是相當(dāng)容易的,有了上次獲得Node的基礎(chǔ),獲得幾何體的信息就顯得順其自然了。

幾何體關(guān)心的主要信息就是頂點(diǎn)和三角面,自然還有紋理坐標(biāo),法線,頂點(diǎn)顏色,切線,BinNormal等等,不過(guò)這些都是后話,首先我們只關(guān)心頂點(diǎn)和面。

同時(shí)另外一個(gè)重要的信息就是矩陣信息,需要注意的是,在不同的Frame中矩陣信息很可能會(huì)發(fā)生變化,這點(diǎn)需要注意下。

在第一個(gè)例子的基礎(chǔ)上 只需要添加為數(shù)不多的代碼即可實(shí)現(xiàn)。

首先我們需要判斷結(jié)點(diǎn)是不是包含幾何體信息:

BOOL OnlyGeometry::nodeEnum(INode* node,int indent) 

{

……

ObjectState os = node->EvalWorldState(m_ip->GetTime()); 

if (os.obj) 

{

if(os.obj->SuperClassID()==GEOMOBJECT_CLASS_ID) 

{

ExportGeomObject(node,indent); 

}

}

for (int c = 0; c < node->NumberOfChildren(); c++) {

if (!nodeEnum(node->GetChildNode(c),indent+1))

return FALSE;

}

return TRUE;

}

然后在具體的導(dǎo)出幾何體的函數(shù)中,我們還需要再判斷一次:

void OnlyGeometry::ExportGeomObject(INode* node,int indent)

{

TimeValue time= m_ip->GetTime();

ObjectState os=node->EvalWorldState(time);

if(!os.obj)

return;

if (os.obj->ClassID() == Class_ID(TARGET_CLASS_ID, 0))

return;

…………………..

這是因?yàn)樵?DS MAX中還有很多其他的物體也包含了幾何體信息,例如相機(jī)和燈光的Target部分,所以需要過(guò)濾一下。

然后就直接獲取我們需要的信息,首先是矩陣:我們使用

INode:: GetObjectTMAfterWSM()來(lái)獲得。這里WSM是World Space Modifier的縮寫(xiě)。意思是在使用了World Space Modifier之后的矩陣。關(guān)于World Space Modifier的詳細(xì)信息可以參看SDK的文檔,因?yàn)楸纠袥](méi)有用到任何的World Space Modifier。所以這里如果使用INode::GetObjectTM()的效果也是一樣的。

Matrix3 tm=node->GetObjTMAfterWSM(time);

Point3 row=tm.GetRow(0);

fprintf(m_fileStream,"%s%s<%f %f %f>\n",GetIndent(indent),_T("Matrix Row 0:"),row.x,row.y,row.z);

row=tm.GetRow(1);

fprintf(m_fileStream,"%s%s<%f %f %f>\n",GetIndent(indent),_T("Matrix Row 1:"),row.x,row.y,row.z);

row=tm.GetRow(2);

fprintf(m_fileStream,"%s%s<%f %f %f>\n",GetIndent(indent),_T("Matrix Row 2:"),row.x,row.y,row.z);

row=tm.GetRow(3);

fprintf(m_fileStream,"%s%s<%f %f %f>\n",GetIndent(indent),_T("Matrix Row 3:"),row.x,row.y,row.z);                                              

接下來(lái)就是頂點(diǎn)和三角面的導(dǎo)出,在Max中的結(jié)點(diǎn)并沒(méi)有直接保存了Mesh的信息,我們?nèi)绻@得Mesh的信息需要首先將Object轉(zhuǎn)化為Mesh,然后再?gòu)腗esh獲得具體的信息:

TriObject* triobj=0;

triobj=(TriObject*)os.obj->ConvertToType(time,Class_ID(TRIOBJ_CLASS_ID,0));

這里Max給我們執(zhí)行的其實(shí)是一個(gè)Deep Copy,所以我們可以等會(huì)轉(zhuǎn)換完成后把內(nèi)存釋放。

if(triobj!=os.obj) //deep copy

{

Mesh * mesh = &(triobj->GetMesh());

if(mesh)

{

mesh->buildNormals();

fprintf(m_fileStream,"%s%s\n",GetIndent(indent),_T("Geometry Data:"));

fprintf(m_fileStream,"%s%s%d%s%d\n",GetIndent(indent+1),_T("Vertex Number:"),mesh->getNumVerts(),_T("Face Number:"),mesh->getNumFaces());

//頂點(diǎn)信息

for(int i=0;i<mesh->getNumVerts();++i)

{

Point3 vert = tm * mesh->verts[i];

fprintf(m_fileStream, "%s vertex %d:<%f,%f,%f>\n", GetIndent(indent),i, vert.x, vert.y, vert.z);

}

//面信息

for (int i = 0; i < mesh->getNumFaces(); i++) 

{

fprintf(m_fileStream, "%s face %d -- verts:<%d,%d,%d> edgevis:<%d,%d,%d> smoothgrp:<0x%x> matid:<%d>\n", 

GetIndent(indent),

i, 

mesh->faces[i].v[0],

mesh->faces[i].v[1],

mesh->faces[i].v[2],

mesh->faces[i].getEdgeVis(0) ? 1 : 0,

mesh->faces[i].getEdgeVis(1) ? 1 : 0,

mesh->faces[i].getEdgeVis(2) ? 1 : 0,

mesh->faces[i].getSmGroup(),

mesh->faces[i].getMatID());

}

}

}

delete triobj;

fprintf(m_fileStream,"%s%s\n",GetIndent(indent),_T("Geometry End"));

fprintf(m_fileStream, "\n");

}



到此為止,我們的初步導(dǎo)出Geometry的工作就順利完成了,可以打開(kāi)Max試一試,輸出的簡(jiǎn)單的文件如下:

Begin Do Header

Begin Do Nodes

Totoal Node Number:3

Root Name:Scene Root

Node Name:Box01

Matrix Row 0:<1.000000 0.000000 0.000000>

Matrix Row 1:<0.000000 1.000000 0.000000>

Matrix Row 2:<0.000000 0.000000 1.000000>

Matrix Row 3:<-19.448299 -3.523636 0.000000>

Geometry Data:

Vertex Number:8Face Number:12

vertex 0:<-40.204018,-28.128052,0.000000>

vertex 1:<1.307419,-28.128052,0.000000>

vertex 2:<-40.204018,21.080780,0.000000>

vertex 3:<1.307419,21.080780,0.000000>

vertex 4:<-40.204018,-28.128052,24.273842>

vertex 5:<1.307419,-28.128052,24.273842>

vertex 6:<-40.204018,21.080780,24.273842>

vertex 7:<1.307419,21.080780,24.273842>

face 0 -- verts:<0,2,3> edgevis:<1,1,0> smoothgrp:<0x2> matid:<1>

face 1 -- verts:<3,1,0> edgevis:<1,1,0> smoothgrp:<0x2> matid:<1>

face 2 -- verts:<4,5,7> edgevis:<1,1,0> smoothgrp:<0x4> matid:<0>

face 3 -- verts:<7,6,4> edgevis:<1,1,0> smoothgrp:<0x4> matid:<0>

face 4 -- verts:<0,1,5> edgevis:<1,1,0> smoothgrp:<0x8> matid:<4>

face 5 -- verts:<5,4,0> edgevis:<1,1,0> smoothgrp:<0x8> matid:<4>

face 6 -- verts:<1,3,7> edgevis:<1,1,0> smoothgrp:<0x10> matid:<3>

face 7 -- verts:<7,5,1> edgevis:<1,1,0> smoothgrp:<0x10> matid:<3>

face 8 -- verts:<3,2,6> edgevis:<1,1,0> smoothgrp:<0x20> matid:<5>

face 9 -- verts:<6,7,3> edgevis:<1,1,0> smoothgrp:<0x20> matid:<5>

face 10 -- verts:<2,0,4> edgevis:<1,1,0> smoothgrp:<0x40> matid:<2>

face 11 -- verts:<4,6,2> edgevis:<1,1,0> smoothgrp:<0x40> matid:<2>

Geometry End



Node Name:Pyramid01

Matrix Row 0:<1.000000 0.000000 0.000000>

Matrix Row 1:<0.000000 1.000000 0.000000>

Matrix Row 2:<0.000000 0.000000 1.000000>

Matrix Row 3:<24.578979 -52.777748 0.005000>

Geometry Data:

Vertex Number:6Face Number:8

vertex 0:<24.578979,-52.777748,43.850536>

vertex 1:<-1.593857,-72.522881,0.005000>

vertex 2:<50.751816,-72.522881,0.005000>

vertex 3:<50.751816,-33.032616,0.005000>

vertex 4:<-1.593857,-33.032616,0.005000>

vertex 5:<24.578979,-52.777748,0.005000>

face 0 -- verts:<0,1,2> edgevis:<1,1,1> smoothgrp:<0x4> matid:<0>

face 1 -- verts:<0,2,3> edgevis:<1,1,1> smoothgrp:<0x2> matid:<0>

face 2 -- verts:<0,3,4> edgevis:<1,1,1> smoothgrp:<0x10> matid:<0>

face 3 -- verts:<0,4,1> edgevis:<1,1,1> smoothgrp:<0x20> matid:<0>

face 4 -- verts:<1,5,2> edgevis:<1,1,1> smoothgrp:<0x8> matid:<0>

face 5 -- verts:<2,5,3> edgevis:<1,1,1> smoothgrp:<0x8> matid:<0>

face 6 -- verts:<3,5,4> edgevis:<1,1,1> smoothgrp:<0x8> matid:<0>

face 7 -- verts:<4,5,1> edgevis:<1,1,1> smoothgrp:<0x8> matid:<0>

Geometry End

Node Name:Box02

Matrix Row 0:<1.000000 0.000000 0.000000>

Matrix Row 1:<0.000000 1.000000 0.000000>

Matrix Row 2:<0.000000 0.000000 1.000000>

Matrix Row 3:<128.516830 57.409515 0.000000>

Geometry Data:

Vertex Number:8Face Number:12

vertex 0:<111.216064,37.396194,0.000000>

vertex 1:<145.817596,37.396194,0.000000>

vertex 2:<111.216064,77.422836,0.000000>

vertex 3:<145.817596,77.422836,0.000000>

vertex 4:<111.216064,37.396194,-40.238293>

vertex 5:<145.817596,37.396194,-40.238293>

vertex 6:<111.216064,77.422836,-40.238293>

vertex 7:<145.817596,77.422836,-40.238293>

face 0 -- verts:<2,0,3> edgevis:<1,0,1> smoothgrp:<0x2> matid:<0>

face 1 -- verts:<1,3,0> edgevis:<1,0,1> smoothgrp:<0x2> matid:<0>

face 2 -- verts:<5,4,7> edgevis:<1,0,1> smoothgrp:<0x4> matid:<1>

face 3 -- verts:<6,7,4> edgevis:<1,0,1> smoothgrp:<0x4> matid:<1>

face 4 -- verts:<1,0,5> edgevis:<1,0,1> smoothgrp:<0x8> matid:<4>

face 5 -- verts:<4,5,0> edgevis:<1,0,1> smoothgrp:<0x8> matid:<4>

face 6 -- verts:<3,1,7> edgevis:<1,0,1> smoothgrp:<0x10> matid:<3>

face 7 -- verts:<5,7,1> edgevis:<1,0,1> smoothgrp:<0x10> matid:<3>

face 8 -- verts:<2,3,6> edgevis:<1,0,1> smoothgrp:<0x20> matid:<5>

face 9 -- verts:<7,6,3> edgevis:<1,0,1> smoothgrp:<0x20> matid:<5>

face 10 -- verts:<0,2,4> edgevis:<1,0,1> smoothgrp:<0x40> matid:<2>

face 11 -- verts:<6,4,2> edgevis:<1,0,1> smoothgrp:<0x40> matid:<2>

Geometry End

END MYEXPORTER

MAX Script Export/Import 
2個(gè)工作日
寫(xiě)了一套簡(jiǎn)單的Export/Import插件
一直對(duì)MAX的 Script感到很好奇
說(shuō)說(shuō)使用的感受吧。

首先,如果要使用這套Script那么 首先會(huì)陷入到龐大的MAX的概念的汪洋大海之中
MAX中很多概念不同于平常熟知的 RealTime里面的思想
例如,MAX中的紋理坐標(biāo),每個(gè)頂點(diǎn)都有一對(duì)UV 這個(gè)很正常
但是同時(shí) MAX對(duì)每個(gè)Face也保存了UV,這是因?yàn)镸AX中的 每個(gè)Face都有可能是不同的貼圖
等等

第二,如果熟悉了MAX中的哪些類(lèi)能夠干什么 那么Script也就是很水道渠成的事情了。為了寫(xiě)這2個(gè)插件,MAX Script 的help翻了無(wú)數(shù)次,幾乎每寫(xiě)一句就要去翻一次。

第三,MAX中的數(shù)組起位置是1,但是MAX中有的概念 使用數(shù)組表示的時(shí)候起始位置為0 ,例如紋理的Channel,起始就是為0,并且Channel0  很危險(xiǎn),寫(xiě)入錯(cuò)誤直接讓MAX掛掉

第四,腳本編寫(xiě)很考驗(yàn)打字的準(zhǔn)確度,由于變量沒(méi)有類(lèi)型,不需要聲明就可以試用,打錯(cuò)一個(gè)字母的話那就查吧,運(yùn)氣不好的話,會(huì)讓你瘋掉的,同時(shí)MAX的腳本編輯器 超級(jí)難用。

第五,編寫(xiě)導(dǎo)入插件的時(shí)候,發(fā)現(xiàn)Script 中讀入數(shù)據(jù)異常痛苦,我在Script的幫助中沒(méi)有發(fā)現(xiàn)任何類(lèi)似c語(yǔ)言中的fprintf(%...)的東西,只有通過(guò)腳本提供的skiptostring來(lái)做。

第六 Max Script的函數(shù) 沒(méi)有明確的返回值的概念,不習(xí)慣

第七 那個(gè)調(diào)試器 太難用了,我打了無(wú)數(shù)個(gè)messagebox

總結(jié):對(duì)于導(dǎo)入導(dǎo)出插件來(lái)說(shuō)其實(shí)用SDK和Script 編寫(xiě)其實(shí)差別不大,因?yàn)槎贾皇巧婕暗綌?shù)據(jù)的讀取和寫(xiě)入,并不涉及到復(fù)雜的邏輯。如果編寫(xiě)渲染類(lèi)型或者是動(dòng)畫(huà)控制類(lèi)型的插件 我覺(jué)得還是用script好一些,因?yàn)榭梢灾苯釉贛AX中看到結(jié)果,同時(shí)還能夠一句一句的執(zhí)行,很方便。

我只是初學(xué),希望有經(jīng)驗(yàn)的人給點(diǎn)經(jīng)驗(yàn),最后附上簡(jiǎn)單的插件代碼,
導(dǎo)出插件只能到處一個(gè)幾何體,點(diǎn)擊ExportGeo按鈕,然后點(diǎn)選幾何體,即可輸出
導(dǎo)入插件沒(méi)什么特別的操作,導(dǎo)入插件結(jié)尾有些倉(cāng)促

以下是導(dǎo)入插件:其實(shí)導(dǎo)入插件沒(méi)什么必要寫(xiě),反正是在MAX中建模,直接保存為MAX文件就可以了,這里
純屬練手

macroScript ImportGeo category: "HowTo2"
(
--從文件中讀入某個(gè)分割符 后面 的數(shù)據(jù)
--FileStream:文件句柄
--needload :儲(chǔ)存讀取后的值的變量 (string or value)
--spliter:分隔符(string)
--bReadLine: 是否讀取分隔符后所有的數(shù)據(jù)  1表示讀取后面所有
fn LoadData FileStream spliter bReadLine=
(
temp=skiptostring FileStream spliter
if bReadLine==1 then
needload=readline FileStream
else
needload=readvalue FileStream

)
--***************************************************
--******************************************************
--****************************************************
vert_array = #()
face_array = #()
sgroup_array = #()
matid_array = #()
edge_array = #()

tm_row1=#()
tm_row2=#()
tm_row3=#()
tm_row4=#()
nodename=""
--以下均為material變量
_Material_Name
_Material_Type
_Material_Ambient
_Material_Diffuse
_Material_Specular
_Material_Specular_Lv
_Material_Glossiness
_Material_SelfillumColor
_Material_SelfillumAmount
_Material_DiffTexPath
BitmapPath

channel_num
UVW_Ver_Num
UVW_Face_Num
Vert_UV=#()          --所有的頂點(diǎn)的uv都放在這里
Face_UV=#()          --所有的面的uv都放在這里
Vert_UV_Size=#()  --用于記錄每個(gè)channel的頂點(diǎn)的uv總數(shù)
Face_UV_Size=#()  --用語(yǔ)及了每個(gè)channel的面uv總數(shù)

in_name=getopenfilename()
if in_name!=undefined then
(
in_file=openfile in_name
if in_file!=undefined then
(
--node name
temp= readline in_file 
token=filterString temp    " "    
nodename=(token[token.count] as string)
--**************************************************
--material info

_Material_Name=LoadData in_file  "->" 1
_Material_Type=LoadData in_file  "->" 1
_Material_Ambient=LoadData in_file  "->" 0
_Material_Diffuse=LoadData in_file  "->" 0
_Material_Specular=LoadData in_file  "->" 0
_Material_Specular_Lv=LoadData in_file  "->" 0
_Material_Glossiness=LoadData in_file  "->" 0
_Material_SelfillumColor=LoadData in_file  "->" 0
_Material_SelfillumAmount=LoadData in_file  "->" 0
_Material_DiffTexPath=LoadData in_file  "->" 1
--**************************************************

--node matrix
--temp= readline in_file

tt=readDelimitedString in_file ":"
temp=readvalue in_file
append tm_row1(temp)

tt=readDelimitedString in_file ":"
temp=readvalue in_file
append tm_row2(temp)

tt=readDelimitedString in_file ":"
temp=readvalue in_file
append tm_row3(temp)

tt=readDelimitedString in_file ":"
temp=readvalue in_file
append tm_row4(temp)

--************************************************
--vertex info
temp= readline in_file 
token=filterString temp    " "    
num_vert=token[token.count] as integer
for i=1 to num_vert do
(
tt=readDelimitedString in_file ":"
temp=readvalue in_file
append vert_array (temp)
)
--************************************************************
--face info
temp=readline in_file
token=filterstring temp " "
num_face=(token[token.count] as integer)
for j=1 to num_face do
(
append face_array (readValue in_file)
append sgroup_array (readValue in_file)
append matid_array (readValue in_file)
edge1 = readValue in_file
edge2 = readValue in_file
edge3 = readValue in_file
append edge_array (#(edge1, edge2, edge3))

)
--************************************************************
--uv info
-- in max channel begin with 0
--the channel 0 stores the vertex color info,no uv info

channel_num=LoadData in_file  ":" 0
for b=1 to (channel_num-1) do
(
--讀出Channel id
channel_id=LoadData in_file  ":" 0

--texture map path
BitmapPath=LoadData in_file  "->" 1

--讀出uv Vertex 的數(shù)量
temp_size=LoadData in_file ":" 0
append Vert_UV_Size temp_size

--uv的數(shù)據(jù)
for i=1 to temp_size do
(
append Vert_UV (readValue in_file)
)

--uv face的 數(shù)量
temp_size==LoadData in_file  ":" 0
append Face_UV_Size temp_size

for i=1 to temp_size do
(
append Face_uv (readValue in_file)
)

)
)
close in_file

)
meditmaterials[1].ambient=_Material_Ambient
meditmaterials[1].diffuse=_Material_Diffuse
meditmaterials[1].shaderbyname=_Material_type
meditmaterials[1].specular=_material_specular
meditmaterials[1].specularlevel=_material_specular_lv
meditmaterials[1].glossiness=_material_glossiness
meditmaterials[1].selfillumcolor=_Material_SelfillumColor
meditmaterials[1].selfillumamount=_Material_SelfillumAmount
meditmaterials[1].diffuseMapEnable=true
bmp =bitmaptexture filename: _Material_DiffTexPath
meditmaterials[1].diffusemap=bmp

new_mesh = mesh vertices:vert_array faces:face_array --materialIDs:#(0,1) tverts:vert_uv
for f = 1 to num_face do
(
setFaceSmoothGroup new_mesh f sgroup_array[f]
setFaceMatID new_mesh f matid_array[f]
setEdgeVis new_mesh f 1 edge_array[f][1] 
setEdgeVis new_mesh f 2 edge_array[f][2] 
setEdgeVis new_mesh f 3 edge_array[f][3] 
)
myTransform = new_mesh.transform
new_mesh.transform.row1 = tm_row1[1]
new_mesh.transform.row2 = tm_row2[1]
new_mesh.transform.row3 = tm_row3[1]
new_mesh.transform.row4 = tm_row4[1]

new_mesh.name=(nodename as string)

new_mesh.material=meditmaterials[1]

meshop.setMapSupport new_mesh 0 true
meshop.setMapSupport new_mesh 1 true

--set vertex uv for every vertex
meshop.setNumMapVerts new_mesh 1 Vert_UV_Size[1] keep:false
for i=1 to Vert_UV_Size[1] do
(
meshop.setMapVert new_mesh 1 i Vert_UV[i]
)

--set face uv for every face
meshop.setnummapfaces new_mesh 1 Face_UV_Size[1] keep:false
for i=1 to Face_UV_Size[1] do
(
meshop.setMapFace new_mesh 1 i Face_UV[i]
)

update new_mesh

)


以下是導(dǎo)出插件:
到處插件很容易寫(xiě),導(dǎo)入插件花了2倍于導(dǎo)出的時(shí)間


-- export by sssa2000
macroScript ExportGeo category:"HowTo2"
(
fn GetGeometry o = 
(

Superclassof o == Geometryclass and classof o != TargetObject 
)

fn DumpMaterial m file=
(
--只對(duì)Standard類(lèi)型的材質(zhì)處理
--獲得diffuse and diffuse map
ismat=iskindof m material 
if ismat then
(

name=m.name
format "Material Name-> %\n" name to: file

class_of_mat=classof m
--messagebox class_of_mat
if (class_of_mat )==Standardmaterial then
(

type=m.shaderByName 
format "Material Type->%\n" type to: file

_ambient=m.ambient
format "Ambient Value->%\n" _ambient to:file

diffuse_value=m.diffuse
format "Diffuse Value->%\n" diffuse_value to:file

_specular=m.specular 
format "Specular Value->%\n" _specular to:file

_specularLevel =m.specularLevel 
format "SpecularLevel Value->%\n" _specularLevel to:file


_Glossiness=m.Glossiness 
format "Glossiness Value->%\n" _Glossiness to:file

_selfIllumColor =m.selfIllumColor 
format "SelfIllumColor Value->%\n" _selfIllumColor to:file

_selfIllumAmount =m.selfIllumAmount 
format "SelfIllumAmount Value->%\n" _selfIllumAmount to:file


diffuse_map_path=m.diffusemap.filename
format "Diffuse Map Path->%\n" diffuse_map_path to:file
)
)
format "\n" to: file
)
--/////////////////////////////////////////////////////////////////////////////////////////
obj = pickobject filter:GetGeometry

if isValidNode obj then
(
nodename=obj.name
--First export the matrix
row1=obj.transform.row1
row2=obj.transform.row2
row3=obj.transform.row3
row4=obj.transform.row4

tmesh = snapshotAsMesh obj 
out_name = GetSaveFileName()
if out_name != undefined then
(
out_file = createfile out_name

format "Node Name: %\n" nodename to: out_file
format "\n" to: out_file
--******************************************************
-- material info
node_material=obj.material
num_sub_material=getNumSubMtls obj.material
DumpMaterial obj.material out_file
for y=1 to num_sub_material do
(
sub_mat=getSubMtl obj.material y
DumpMaterial sub_mat= out_file
)
--******************************************************

format "Node TM Row1: %\n" row1 to: out_file
format "Node TM Row2: %\n" row2 to: out_file
format "Node TM Row3: %\n" row3 to: out_file
format "Node TM Row4: %\n" row4 to: out_file
--******************************************************
-- vertex info
num_verts = tmesh.numverts 
num_faces = tmesh.numfaces
format "Number of Ver: %\n" num_verts to:out_file
for v = 1 to num_verts do
format "Ver%: %\n" v (getVert tmesh v) to:out_file
format "\n" to:out_file
--***********************************************
--face info
format "Number of Face: %\n" num_faces to:out_file
for f = 1 to num_faces do
(
face = getFace tmesh f
sgroup = getFaceSmoothGroup tmesh f
matid = getFaceMatId tmesh f
edge1 = getEdgeVis tmesh f 1
edge2 = getEdgeVis tmesh f 2
edge3 = getEdgeVis tmesh f 3
format "%,%,%,%,%,%\n" face sgroup matid edge1 edge2 edge3 to:out_file
)
--******************************************************
--uv info
channel=meshop.getnummaps tmesh --number of texture
format "\n" to: out_file
format "Channel Number:%\n" channel to:out_file
for i=1 to (channel-1) do
(

-- channel的計(jì)數(shù)從0開(kāi)始
--channel 0 is vertex color so do not export it
IsSupport=meshop.getMapSupport tmesh i
if IsSupport==true then
(
format "Channel ID:%\n" i to:out_file
if classof obj.material.maps[i+1]==Bitmaptexture then
format "Map File Path->%\n" obj.material.maps[i+1].filename to: out_file
else
format "Map File Path->Null\n" to: out_file
num_uv_ver=meshop.getNumMapVerts tmesh i
num_uv_face=meshop.getNumMapFaces tmesh i
format "UVW Vertex Number:%\n" num_uv_ver to:out_file
for j=1 to num_uv_ver do
(
vert_uvw=meshop.getMapVert tmesh i j 
--messagebox (vert_uvw as string)
format "% \n" vert_uvw to: out_file
)
format "UVW Face Number:%\n" num_uv_face to:out_file
for o=1 to num_uv_face do
(
uvw_face=meshop.getMapFace tmesh i o
format "% \n" uvw_face to: out_file
)
)
else
(
--format "Do Not Support Channel %\n" i to:out_file
)
)
close out_file
edit out_name
)

)

)

    3dmax插件大全
    (19)3dmax插件大全
    除了能夠制作出精細(xì)的模型外,其中最大的一個(gè)亮點(diǎn)就是它的插件功能強(qiáng)大,只要你能夠想到的效果,都有相應(yīng)的插件可以替你實(shí)現(xiàn)。這里西西給大家收集了很多非常實(shí)用的插件。插件后綴名介紹.位于建立命令面板中,可創(chuàng)建包括建模增加輔助物等的新對(duì)象。.位于變動(dòng)命令面板中,增加新的修改命令,可在中找到。.屬于大氣效果燈或渲染類(lèi)插件,位于的環(huán)境編輯器中,也可在菜單的面板中找到。.屬于特殊用途的插件,位于程序命令面板。.屬于后期...更多>>
    • 3dmax2010中文路徑貼圖補(bǔ)丁

      10-20 / 85.5M

      推薦理由:3dmax2010是我目前用的3dmax軟件中比較好的版本了,剛開(kāi)始用這個(gè)軟件的童鞋,就會(huì)發(fā)現(xiàn)不能貼圖,你們想想國(guó)
    • 3dsmax森林插件 Forest Pack Pro3.

      04-02 / 30M

      推薦理由:Forest Pack Pro(森林插件)為3ds max提供了創(chuàng)建大面積森林及植被的完整解決方案,使用此插件你能夠創(chuàng)建數(shù)百
    • 幻景大師DreamScape for 3dsmax 20

      05-15 / 47.0M

      推薦理由: 由Ma5漢化。智能安裝,不需原版,內(nèi)附示例、教程、授權(quán)程序及安裝說(shuō)明。 DreamScape又稱(chēng)幻景大師,是
    • V-Ray for 3ds max 20112.00.02 中

      03-01 / 26.8M

      推薦理由: V-Ray 頂渲中英文雙語(yǔ)切換版,是學(xué)習(xí)及掌握V-Ray的最佳選擇,在使用時(shí),可進(jìn)行中英文自由切換,從而對(duì)
    • 3dmax模型三角面轉(zhuǎn)四邊面插件

      08-03 / 14KB

      推薦理由: 1 解壓 2打開(kāi)(4polybomb mutimse)文件會(huì)看見(jiàn) 文件夾(scripts)和文件夾(ui)3 將scripts完全打開(kāi)(
    • 3dmax森林制作插件(Forest Pack Pr

      10-19 / 25.9M

      推薦理由:Forest Pack Pro (專(zhuān)業(yè)森林制作)是 Itoo 出品的一款可以讓你在短時(shí)間內(nèi)做出專(zhuān)業(yè)的大面積樹(shù)林,草叢,人群等

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱(chēng):
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)