锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美激情第4页,国产欧美日韩亚洲,久久久精品日韩欧美http://www.shnenglu.com/sunicdavy/category/13082.html娓告垙錛屾灦鏋勶紝瀹㈡埛绔紝娓叉煋錛屾湇鍔″櫒錛岀晫闈紝寮鍙戞妧宸у強緇忛獙 email: sunicdavy@sina.comzh-cnThu, 27 May 2010 04:41:06 GMTThu, 27 May 2010 04:41:06 GMT60鐢盌irect3D ZBuffer寮曡搗鐨勮妗?/title><link>http://www.shnenglu.com/sunicdavy/archive/2010/05/26/116404.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Wed, 26 May 2010 09:01:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2010/05/26/116404.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/116404.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2010/05/26/116404.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/116404.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/116404.html</trackback:ping><description><![CDATA[ <p>浠婂ぉ欏哄埄鏄劇ず闈欐佹ā鍨? 鍔犱笂綰圭悊鍚?鍙戠幇ZBuffer濂藉儚鏈夌偣涓嶅鍔?/p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/WindowsLiveWriter/Direct3DZBuffer_EF41/image_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/WindowsLiveWriter/Direct3DZBuffer_EF41/image_thumb.png" width="601" height="484"></a> </p> <p>浜庢槸媯鏌3DRS_ZENABLE,D3DRS_ZWRITEENABLE, 緇撴灉閮芥槸TRUE</p> <p>鏃犲,鍙湁涓庢垜浠ュ墠姝g‘鐨凞emo瀵規瘮210涓覆鏌撶姸鎬? 鏈夐儴鍒嗘覆鏌撲笉鍚岀殑,浣跨敤紜唬鐮佸己琛岀籂姝?緇撴灉: 鏃犳晥</p> <p>鎬鐤戦《鐐規牸寮忕牬鎹? 閲嶆柊浣跨敤浠ュ墠鐨勬ā鍨嬫牸寮?鎺掗櫎榪欎釜鍙兘鎬? 緇撴灉:澶辮觸</p> <p>鏃犲涓?媯鏌ヨ澶囬夐」, 紿佺劧娉ㄦ剰鍒癉3DPRESENT_PARAMETERS 緇撴瀯浣撲腑鐨凟nableAutoDepthStencil 璁劇疆鏄疐ALSE</p> <p>鍥犱負榪欐璁懼綾繪槸閲嶅啓鐨?瀵規瘮浠ュ墠姝g‘浠g爜, 鏈夊樊寮?灝嗗叾鏀逛負</p> <p>PresentParameters.EnableAutoDepthStencil    = TRUE;<br>    PresentParameters.AutoDepthStencilFormat    = D3DFMT_D16; </p><p>浠ュ墠緲婚槄SDK鏃?娉ㄦ剰榪囪繖涓夐」, 榪欐槸鐢盌3D甯綘綆$悊ZBuffer. </p> <p>嫻嬭瘯, 闂瑙e喅.</p> <p> </p> <p>鍒嗘瀽: 濡傛灉EnableAutoDepthStencil  = FALSE, 鎰忓懗鐫榪瀂Buffer閮芥病鏈?閭f洿涓嶈璇存覆鏌撶姸鎬? </p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/WindowsLiveWriter/Direct3DZBuffer_EF41/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/WindowsLiveWriter/Direct3DZBuffer_EF41/image_thumb_1.png" width="290" height="339"></a> 姝g‘緇撴灉</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/116404.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2010-05-26 17:01 <a href="http://www.shnenglu.com/sunicdavy/archive/2010/05/26/116404.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>DirectX 9.0 Direct3D 鍥懼艦綆$嚎澶у浘http://www.shnenglu.com/sunicdavy/archive/2010/05/26/116371.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Wed, 26 May 2010 03:35:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2010/05/26/116371.htmlhttp://www.shnenglu.com/sunicdavy/comments/116371.htmlhttp://www.shnenglu.com/sunicdavy/archive/2010/05/26/116371.html#Feedback1http://www.shnenglu.com/sunicdavy/comments/commentRss/116371.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/116371.htmlDXpipeline-9.0



鎴橀瓊灝忕瓚 2010-05-26 11:35 鍙戣〃璇勮
]]>
浼樺寲Direct3D涓嫻?Multistreaming)鐨勮祫婧愬垎閰?/title><link>http://www.shnenglu.com/sunicdavy/archive/2010/05/26/116368.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Wed, 26 May 2010 03:19:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2010/05/26/116368.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/116368.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2010/05/26/116368.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/116368.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/116368.html</trackback:ping><description><![CDATA[<p>杞澆璇鋒敞鏄? <a href="http://www.shnenglu.com/sunicdavy">鎴橀瓊灝忕瓚</a></p> <p>鏈枃緲昏瘧鏁寸悊鎬葷粨鑷?a >http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter05.html</a></p> <p>濡傛灉鍠滄,璇瘋喘涔版鐗?/p> <p>澶氭祦鎶鏈湪娓叉煋鏃惰兘瀵規ц兘鍜岀粨鏋勬湁涓瀹氬ソ澶?浣嗘槸鎬庢牱灝嗘ā鍨嬫暟鎹垎閰嶅埌鍚勯《鐐規暟鎹祦榪涜娓叉煋灝辨槸涓涓闂? </p> <p> </p> <p></p> <p></p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/WindowsLiveWriter/Direct3DMultistreaming_9F24/05_multistreaming_1_2.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="05_multistreaming_1" border="0" alt="05_multistreaming_1" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/WindowsLiveWriter/Direct3DMultistreaming_9F24/05_multistreaming_1_thumb.jpg" width="454" height="678"></a> <p>瀵逛簬欏剁偣鏁版嵁鍙互鍒嗕負榪欎箞鍑犱釜澶х被:</p> <p>G: 澶氳竟褰㈡暟鎹? 鍖呭惈vertex position, normal, and vertex color(s).</p> <p>T: 綰圭悊鏄犲皠, 鍖呭惈澶氬眰綰圭悊鍧愭爣鍙妕angent vectors絳?/p> <p>A: 鍔ㄧ敾鏁版嵁, 楠ㄩ鍔ㄧ敾涓殑楠ㄩ鏉冮噸鍙婇楠肩儲寮?/p> <p>I: 鐢ㄤ簬Instance緇樺埗鐨勭敤鎴鋒暟鎹?/p> <p> </p> <p>浠ヤ笅鏄涓浜涘父鐢ㄦ覆鏌撶殑嫻佹惌閰?</p> <p>闈欐佹ā鍨?/p> <p>   鍙互鏄? <strong>G</strong> <em>or</em> <strong>G</strong> + <strong>T</strong></p> <p>楠ㄩ鍔ㄧ敾妯″瀷</p> <p>   鍙互鏄?<strong>G</strong> + <strong>A</strong> <em>or</em> <strong>G</strong> + <strong>T</strong> + <strong>A</strong></p> <p>Instance緇樺埗鐨勯楠煎姩鐢繪ā鍨?/p> <p>   鍙互鏄?<strong>G</strong> + <strong>I</strong> <em>or</em> <strong>G</strong> + <strong>T</strong> + <strong>I</strong> 鎴栬呭姩鐢葷被鍨嬬殑<strong>G</strong> + <strong>A</strong> + <strong>I</strong> <em>or</em> <strong>G</strong> + <strong>T</strong> + <strong>A</strong> + <strong>I</strong></p> <p>娓叉煋Z-Pass鐗╀歡</p> <p>  鍙互鏄?strong>G</strong>, 鎴栬呭姩鐢葷被鍨嬬殑<strong>G</strong> + <strong>A</strong> <em>or</em> <strong>G</strong> + <strong>I</strong> <em>or</em> <strong>G</strong> + <strong>A</strong> + <strong>I</strong></p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/116368.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2010-05-26 11:19 <a href="http://www.shnenglu.com/sunicdavy/archive/2010/05/26/116368.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍦╒C璋冭瘯鍣ㄤ腑鏄劇ずCEGUI 瀛楃涓?/title><link>http://www.shnenglu.com/sunicdavy/archive/2010/05/14/115356.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Fri, 14 May 2010 04:01:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2010/05/14/115356.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/115356.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2010/05/14/115356.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/115356.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/115356.html</trackback:ping><description><![CDATA[<p>CEGUI鐨勫瓧絎︿覆綾昏璁$殑鍒濊》鏄互32涓瓧絎︿負鍒嗙晫鐐? 浣庝簬32涓瓧絎︿嬌鐢ㄥ浐瀹歜uffer, 楂樹簬鎵嶄嬌鐢ㄦ爤鍒嗛厤鍐呭瓨瀛樺偍瀛楃涓? 涓嶈繃鍥犱負CEGUI浣跨敤utf32,鍏煎鎬ц櫧鐒跺緢濂?浣嗘槸鍦╒C璋冭瘯鍣ㄩ噷鏃犳硶鏄劇ず鏄釜寰堝ぇ鐨勯棶棰?</p> <p>榪欓噷鍙傝冧簡mybios鍗氬涓殑<a href="http://www.shnenglu.com/mybios/archive/2009/11/10/28914.html">鏂囩珷</a>,緇機EGUI瀛楃涓插仛涓涓猵atch</p> <p>鐒跺悗闇瑕佹壘鍒皏s2008鐨刟utoexp.dat鏂囦歡</p> <p>XP涓嬩綅浜?C:\Program Files\Microsoft Visual Studio 9.0\Common7\Packages\Debugger\autoexp.dat</p> <p>鐢ㄨ浜嬫湰絳夊伐鍏鋒墦寮, 鍦ˋutoExpand孌典腑鍍忚繖鏍鋒坊鍔?</p> <p>[AutoExpand]<br>; CEGUI String<br>CEGUI::String = str =<d_quickbuff,su> length =<d_cplength> <p>鍗沖彲鍦╒C璋冭瘯鍣ㄤ腑鐪嬪埌CEGUI瀛楃涓插唴瀹? 涓嶈繃涓枃榪樻槸鏆傛椂鏃犳硶鏀寔</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/115356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2010-05-14 12:01 <a href="http://www.shnenglu.com/sunicdavy/archive/2010/05/14/115356.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>澧炲己楠ㄩ鍔ㄧ敾緋葷粺鐨勫嚑涓鐐?/title><link>http://www.shnenglu.com/sunicdavy/archive/2010/05/11/115080.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Tue, 11 May 2010 02:21:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2010/05/11/115080.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/115080.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2010/05/11/115080.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/115080.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/115080.html</trackback:ping><description><![CDATA[<p>瑕佸湪娓告垙涓敤鍒板己澶ц屾湁鎵╁睍鎬х殑楠ㄩ鍔ㄧ敾,鏈夊緢澶氭敞鎰忕偣.</p> <p>棣栧厛,鎴戜滑寰楀純鐢–PU钂欑毊, 铏界劧鍏煎鎬уソ,浣嗘槸闈㈠鐜頒粖澶氭牳浣嗗茍涓嶆彁楂樺崟鏍擱熺巼鐨勬儏鍐典笅,GPU榪樻槸鐜嬮亾.鑰屼笖GPU钂欑毊浠g爜鍙兘鏇寸畝鍗?涓嶈繃涔熸湁涓鐐瑰皬緙虹偣, 瀵逛簬灝忓紩鎿庢潵璇?Shader蹇呴』緇欓潤鎬佹ā鍨嬪拰楠ㄩ鍔ㄧ敾妯″瀷鍐欎袱濂?</p> <p>鍏舵鎴戜滑闇瑕佸姞寮轟竴涓猄ubSkin鐨勯楠兼敮鎸佹暟閲? 楠ㄩ鍔ㄧ敾涓婄殑姣忎釜SubSkin閮芥槸涓嬈raw, 浣嗘槸鎸夌収浼犵粺楠ㄩ鍔ㄧ敾緋葷粺,姣忎釜楠ㄥご瀵瑰簲涓涓煩闃典紶鍏?閭d箞SM2.0淇濆畧璁$畻鍙兘鏀寔50鏍歸澶? 涓嶈繃鍦ㄦ垜鍓嶆鏃墮棿鐨?a href="http://www.shnenglu.com/sunicdavy/archive/2010/04/26/113578.html">鏂囩珷</a>涓湁鎻愬埌榪欎釜鎶鏈?騫朵笖宸茬粡鍦ㄦ垜鐨勯楠煎姩鐢葷郴緇熷強OGRE涓疄鐜?鏁堟灉寰堝ソ.</p> <p>緹庢湳涔熻寰堝弽鎰熶竴涓漢鐗╁仛1涓猄ubSkin, 浠栦滑鏇存柊濂藉涓猄ubSkin,涔熷氨鏄韜綋姣忎釜閮ㄥ垎閮芥槸涓涓猄ubSkin, 榪欐牱鏂逛究淇敼, 鍚屾椂緋葷粺鏀寔鐨勯楠兼暟閲忚繕鍙互鏈変竴瀹氶噺鐨勪笂鍗?涓嶈繃鎴戜滑榪橀渶瑕佸仛涓涓儲寮曞伐浣? 浼犵粺鐨凣PU楠ㄩ鍔ㄧ敾涓繪槸鍦ㄦ覆鏌揝ubSkin鍓嶄紶鍏ユ墍鏈夎繖浜汼ubSkin闇瑕佺敤鍒扮殑楠ㄩ鐭╅樀. 浣嗘槸姣忎釜SubSkin騫朵笉涓瀹氳兘鐢ㄥ埌鎵鏈夌殑榪欎簺鐭╅樀,榪欐槑鏄炬槸涓縐嶆氮璐? 鍥犳鍦∣GRE涓仛榪囦竴嬈$儲寮曢澶勭悊,涔熷氨鏄皢姣忎釜SubSkin鐢ㄥ埌鐨勯楠肩粺璁″嚭鏉? 鍦ㄦ覆鏌撹繖嬈ubSkin鏃舵墠閲嶆柊浼犲埌GPU. 寰堟槑鏄?榪欐槸鐢ㄩ熷害榪樼┖闂村拰鍏煎鎬? 濡傛灉鍦―X10浠ヤ笂,鏈塁onstantBuffer榪樺ソ. DX9瀹炲湪澶參浜?/p> <p>浣跨敤Marker鐐圭殑鎹㈣緋葷粺寰堥毦澶勭悊渚嬪璐磋韓琛g墿榪欑被鐗╀歡鎹㈣. OGRE涓湁涓縐嶅叡浜楠肩殑鎶鏈? 鍙互鏀寔, 涓嶈繃浠庝唬鐮佸垎鏋愮湅鏉?榪欑鎶鏈CPU绔楠艱綆楅噺瀹炲湪鏄ぇ鐨勬儕浜? 鍥犳鎴戜滑鍐沖畾灝嗘暣涓猄ubSkin(涔熷氨鏄疭ubEntity)鎹㈡帀,榪欐牱鐢辯編鏈牴鎹笉鍚屾崲瑁呯被鍨嬫潵灝嗚。鏈嶅湪MAX涓洿鎺ョ粦瀹氬ソ鍚庣洿鎺ユ浛鎹㈠師濮嬫ā鍨嬩腑鐨凷ubSkin鍗沖彲杈懼埌鎹㈣鏁堟灉.鍙互璇磋繖鏄粠鍔ㄦ佽綆楀埌闈欐侀澶勭悊鐨勮漿鍙?鏁堢巼鎻愬崌寰堝.</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/115080.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2010-05-11 10:21 <a href="http://www.shnenglu.com/sunicdavy/archive/2010/05/11/115080.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>IDirect3DDevice9::DrawIndexedPrimitiveUP 鐨勭儲寮曚釜鏁版帹綆?/title><link>http://www.shnenglu.com/sunicdavy/archive/2010/05/05/114502.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Wed, 05 May 2010 09:07:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2010/05/05/114502.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/114502.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2010/05/05/114502.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/114502.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/114502.html</trackback:ping><description><![CDATA[<p>棣栧厛鍙傝僑DK閲岃繖涓嚱鏁扮殑瀹氫箟:</p> <p><b>HRESULT </b><b>DrawIndexedPrimitiveUP(</b> </p> <p><b>D3DPRIMITIVETYPE</b> <i>PrimitiveType</i><b>,</b> </p> <p><b>UINT</b> <i>MinVertexIndex</i><b>,</b> </p> <p><b>UINT</b> <i>NumVertices</i><b>,</b> </p> <p><b>UINT</b> <i>PrimitiveCount</i><b>,</b> </p> <p><b>CONST void *</b> <i>pIndexData</i><b>,</b> </p> <p><b>D3DFORMAT</b> <i>IndexDataFormat</i><b>,</b> </p> <p><b>CONST void*</b> <i>pVertexStreamZeroData</i><b>,</b> </p> <p><b>UINT</b> <i>VertexStreamZeroStride</i> </p> <p><b>)</b>;</p> <p> </p> <p>榪欓噷鍋囪鎴戜滑瑕佺粯鍒朵竴涓敱2涓笁瑙掑艦緇勬垚鐨勯潰,閭d箞鍙傛暟榪欐牱璁劇疆</p> <p><i>MinVertexIndex</i> = 0;</p> <p><i>NumVertices</i> = 4;</p> <p><i>PrimitiveCount</i> = 2;</p> <p><i>pIndexData</i> = { 0,1, 2, 0, 2, 3}</p> <p><i>IndexDataFormat</i> = D3DFMT_INDEX16</p> <p><i>pVertexStreamZeroData</i><strong> =</strong> { 4涓鐨勪綅緗?}</p> <p><i>VertexStreamZeroStride</i>  = { 緇撴瀯浣撶殑璺ㄥ害 }</p> <p> </p> <p>鎴戜滑娉ㄦ剰鍒? 娌℃湁浠諱綍涓涓弬鏁扮敤浜庢弿榪?b>CONST void *</b> <em>pIndexData</em>鐨剆ize 澶у皬.</p> <p>浣嗗叾瀹炰綘鐨勫浘鍏冩槸鍙互姝g‘緇樺埗鐨? 浣嗘槸浣犲茍娌℃湁鍦╥ndexdata鍚庨潰鍔犱笂渚嬪瀛楃涓?鐨勭粨灝懼壇,閭d箞D3D鏄庝箞鐭ラ亾IndexCount鍛?</p> <p>鎴戜滑鍏堢湅涓嬫庝箞鏍規嵁VertexCount鍙?PrimitveType紜畾 PrimitiveCount </p> <table border="1" cellspacing="0" cellpadding="2" width="448"> <tbody> <tr> <td valign="top" width="200">PrimitveType</td> <td valign="top" width="246">鍏紡</td></tr> <tr> <td valign="top" width="200">D3DPT_POINTLIST</td> <td valign="top" width="246">PrimitiveCount = VertexCount</td></tr> <tr> <td valign="top" width="200">D3DPT_LINELIST</td> <td valign="top" width="246">PrimitiveCount = VertexCount/2</td></tr> <tr> <td valign="top" width="200">D3DPT_LINESTRIP</td> <td valign="top" width="246">PrimitiveCount = VertexCount-1</td></tr> <tr> <td valign="top" width="200">D3DPT_TRIANGLELIST</td> <td valign="top" width="246">PrimitiveCount = VertexCount/3</td></tr> <tr> <td valign="top" width="200">D3DPT_TRIANGLESTRIP</td> <td valign="top" width="246">PrimitiveCount = VertexCount-2</td></tr></tbody></table> <p>娉? D3DPT_TRIANGLEFAN鍦ㄤ互鍚庣殑椹卞姩涓凡緇忎笉鍐嶄嬌鐢?鍥犳涓嶅啀閲囩敤</p> <p>褰撲嬌鐢ㄧ儲寮曠紦鍐叉椂, VertexCount = IndexCount</p> <p>鍥犳鍦ㄤ笂渚嬩腑 PrimitiveCount = IndexCount/3</p> <p>涔熷氨鏄 IndexCount = PrimitiveCount * 3</p> <p>浠e叆PrimitiveCount = 2,鍥犳 IndexCount = 6 </p> <p> </p> <p>鍥犳紼沖畾鐨凙PI鐨勫嚱鏁板弬鏁拌璁℃槸緇濅笉浼氭氮璐逛換浣曚竴涓弬鏁扮殑</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/114502.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2010-05-05 17:07 <a href="http://www.shnenglu.com/sunicdavy/archive/2010/05/05/114502.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[鍘熷垱]鎻愰珮Shader Model 2.0 钂欑毊楠ㄩ鍔ㄧ敾鐨勯楠奸檺鍒?/title><link>http://www.shnenglu.com/sunicdavy/archive/2010/04/26/113578.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Mon, 26 Apr 2010 05:31:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2010/04/26/113578.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/113578.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2010/04/26/113578.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/113578.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/113578.html</trackback:ping><description><![CDATA[<p>浼犵粺鐨勮挋鐨楠煎姩鐢繪販鍚堟柟娉曟槗浜庣悊瑙?浣嗘槸鍦⊿M 2.0鐨?56甯擱噺闄愬埗涓?楠ㄩ鏁頒繚瀹堣綆楁渶澶?0鏍歸澶?鍥犳瀵圭編鏈殑宸ヤ綔嫻佺▼浠ュ強妯″瀷娓叉煋鏂規硶閫犳垚浜嗗緢澶х殑闅滅</p> <div id="hvzpftn" class="csharpcode"><pre class="alt">float4x4 matBoneArray[40]; <span id="hvzpftn" class="rem">// 榪欐槸浼犺緭鐨勭摱棰?/span></pre><pre> </pre><pre class="alt">VS_OUTPUT vs_main( SkinnedVS_INPUT In )</pre><pre>{</pre><pre class="alt"> </pre><pre> VS_OUTPUT Out = (VS_OUTPUT)0;</pre><pre class="alt"> </pre><pre> float4x4 skinTransform = 0;</pre><pre class="alt"> </pre><pre> skinTransform += matBoneArray[In.BoneIndices.x] * In.BoneWeights.x;</pre><pre class="alt"> skinTransform += matBoneArray[In.BoneIndices.y] * In.BoneWeights.y;</pre><pre> skinTransform += matBoneArray[In.BoneIndices.z] * In.BoneWeights.z;</pre><pre class="alt"> skinTransform += matBoneArray[In.BoneIndices.w] * In.BoneWeights.w;</pre><pre> float4 localpos = mul(In.Position, skinTransform);</pre><pre class="alt"> </pre><pre> Out.Position = mul( localpos, matViewProj ); </pre><pre class="alt"> Out.TexCoord = In.TexCoord;</pre><pre> </pre><pre class="alt"> <span id="hvzpftn" class="kwrd">return</span> Out;</pre><pre>}</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>matBoneArray榪欎釜鏁扮粍鏄楠肩殑LocalRot鍜孡ocalTranslation 閫氳繃浠ヤ笅鍑芥暟build鍑烘潵</p> <div id="hvzpftn" class="csharpcode"><pre class="alt"> Matrix4& Matrix4::FromTranslationRotation( <span id="hvzpftn" class="kwrd">const</span> Vector3& translation, <span id="hvzpftn" class="kwrd">const</span> Quaternion& rotation )</pre><pre> {</pre><pre class="alt"> <span id="hvzpftn" class="kwrd">float</span> xx = rotation.x * rotation.x * 2.0f, yy = rotation.y * rotation.y * 2.0f, zz = rotation.z * rotation.z * 2.0f;</pre><pre> <span id="hvzpftn" class="kwrd">float</span> xy = rotation.x * rotation.y * 2.0f, zw = rotation.z * rotation.w * 2.0f, xz = rotation.x * rotation.z * 2.0f;</pre><pre class="alt"> <span id="hvzpftn" class="kwrd">float</span> yw = rotation.y * rotation.w * 2.0f, yz = rotation.y * rotation.z * 2.0f, xw = rotation.x * rotation.w * 2.0f;</pre><pre> </pre><pre class="alt"> m[0][0] = 1.0f - yy - zz; m[0][1] = xy + zw; m[0][2] = xz - yw; m[0][3] = 0.0f;</pre><pre> m[1][0] = xy - zw; m[1][1] = 1.0f - xx - zz; m[1][2] = yz + xw; m[1][3] = 0.0f;</pre><pre class="alt"> m[2][0] = xz + yw; m[2][1] = yz - xw; m[2][2] = 1.0f - xx - yy; m[2][3] = 0.0f;</pre><pre> m[3][0] = translation.x; m[3][1] = translation.y; m[3][2] = translation.z; m[3][3] = 1.0f;</pre><pre class="alt"> </pre><pre> <span id="hvzpftn" class="kwrd">return</span> *<span id="hvzpftn" class="kwrd">this</span>;</pre><pre class="alt"> }</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p></p> <p>浠庤繖閲屼綘鍙互鍙戠幇, 鏈潵姣忔牴楠ㄥご鍙渶瑕?涓猣loat4 浼犻掑彉鎹俊鎭殑,鐜板湪鍗撮渶瑕?涓猣loat4,涔熷氨鏄竴涓煩闃墊潵浼犻?鐭╅樀涓繕鏈夊緢澶氫笉浣跨敤鐨勫彉閲忎篃琚紶杈撳埌GPU涓?榪欓噷灝辨槸浼樺寲鐨勭偣.</p> <p>閲嶆柊璋冩暣鍚庣殑Shader浠g爜:</p> <div id="hvzpftn" class="csharpcode"><pre class="alt">float4x4 BuildFromTransRot( float4 translation, float4 rot )</pre><pre>{</pre><pre class="alt"> float4 rotation = rot;</pre><pre> </pre><pre class="alt"> <span id="hvzpftn" class="kwrd">float</span> xx = rotation.x * rotation.x * 2.0f, yy = rotation.y * rotation.y * 2.0f, zz = rotation.z * rotation.z * 2.0f;</pre><pre> <span id="hvzpftn" class="kwrd">float</span> xy = rotation.x * rotation.y * 2.0f, zw = rotation.z * rotation.w * 2.0f, xz = rotation.x * rotation.z * 2.0f;</pre><pre class="alt"> <span id="hvzpftn" class="kwrd">float</span> yw = rotation.y * rotation.w * 2.0f, yz = rotation.y * rotation.z * 2.0f, xw = rotation.x * rotation.w * 2.0f;</pre><pre> float4x4 m = { </pre><pre class="alt"> {1.0f - yy - zz, xy + zw, xz - yw, 0},</pre><pre> {xy - zw, 1.0f - xx - zz, yz + xw, 0},</pre><pre class="alt"> {xz + yw, yz - xw, 1.0f - xx - yy, 0},</pre><pre> {translation.x, translation.y, translation.z, 1}</pre><pre class="alt"> </pre><pre> };</pre><pre class="alt"> </pre><pre> <span id="hvzpftn" class="kwrd">return</span> m;</pre><pre class="alt">}</pre><pre> </pre><pre class="alt">float4x4 GetBoneElement( <span id="hvzpftn" class="kwrd">float</span> index )</pre><pre>{</pre><pre class="alt"> <span id="hvzpftn" class="kwrd">return</span> BuildFromTransRot( vecBoneLocalTrans[index], vecBoneLocalRot[index] );</pre><pre>}</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p></p> <div id="hvzpftn" class="csharpcode"><pre class="alt">VS_OUTPUT vs_main( SkinnedVS_INPUT In )</pre><pre>{</pre><pre class="alt"> </pre><pre> VS_OUTPUT Out = (VS_OUTPUT)0;</pre><pre class="alt"> </pre><pre> float4x4 skinTransform = 0;</pre><pre class="alt"> </pre><pre> skinTransform += GetBoneElement(In.BoneIndices.x) * In.BoneWeights.x;</pre><pre class="alt"> skinTransform += GetBoneElement(In.BoneIndices.y) * In.BoneWeights.y;</pre><pre> skinTransform += GetBoneElement(In.BoneIndices.z) * In.BoneWeights.z;</pre><pre class="alt"> skinTransform += GetBoneElement(In.BoneIndices.w) * In.BoneWeights.w;</pre><pre> float4 localpos = mul(In.Position, skinTransform);</pre><pre class="alt"> </pre><pre> Out.Position = mul( localpos, matViewProj ); </pre><pre class="alt"> Out.TexCoord = In.TexCoord;</pre><pre> </pre><pre class="alt"> <span id="hvzpftn" class="kwrd">return</span> Out;</pre><pre>}</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>鎴戜滑灝嗛澶寸殑local鏃嬭漿鍙婂亸縐諱紶閫掕嚦GPU,鐒跺悗鍦℅PU鍐呴噸緇?铏界劧瀵笹PU鎬ц兘璁$畻鏈夐儴鍒嗘崯鑰?浣嗘槸楠ㄩ鏁伴噺灝辮兘淇濆畧鎻愰珮鍒?00涓?</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/113578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2010-04-26 13:31 <a href="http://www.shnenglu.com/sunicdavy/archive/2010/04/26/113578.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>澶氱嚎紼嬫覆鏌撶殑涓浜涜祫鏂?/title><link>http://www.shnenglu.com/sunicdavy/archive/2010/04/15/112676.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Thu, 15 Apr 2010 08:06:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2010/04/15/112676.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/112676.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2010/04/15/112676.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/112676.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/112676.html</trackback:ping><description><![CDATA[<p>OGRE 涓殑3縐嶅眰嬈″疄鐜板綰跨▼娓叉煋鐨勬枃妗?</p> <p><a >http://isdlibrary.intel-dispatch.com/vc/1632/Threading_OGRE3D.pdf</a></p> <p> </p> <p>ATI鏈夊叧澶氱嚎紼嬫晥鐜囨彁鍗囩殑娓告垙姣旇緝鍙婁竴浜泃ips</p> <p><a >http://developer.amd.com/assets/ATIMThread.pdf</a></p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/112676.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2010-04-15 16:06 <a href="http://www.shnenglu.com/sunicdavy/archive/2010/04/15/112676.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>娓告垙宸ョ▼閲岀殑浣跨敤C++闈欐佸簱涓庡姩鎬佸簱http://www.shnenglu.com/sunicdavy/archive/2010/04/07/111859.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Wed, 07 Apr 2010 08:08:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2010/04/07/111859.htmlhttp://www.shnenglu.com/sunicdavy/comments/111859.htmlhttp://www.shnenglu.com/sunicdavy/archive/2010/04/07/111859.html#Feedback2http://www.shnenglu.com/sunicdavy/comments/commentRss/111859.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/111859.html鍋囪鎴戜滑鏈?涓伐紼嬪強鍏跺伐紼嬬被鍨嬶細

CORE              DLL

ENGINE           DLL

GAME             EXE

D3DRENDER      DLL

鍏朵腑D3DRENDER鏄疓AME鍔ㄦ佽澆鍏ョ殑錛屽叾闇瑕侀摼鎺ORE,ENGINE

榪欐槸涓涓緢甯歌鐨勬ā寮忥紝浣嗘槸涓嶅ソ鐨勬槸錛屽洜涓篊ORE鍜孍NGINE鍧囨槸DLL錛屼唬鐮佷腑鐨凷ymbol閮借瀵煎嚭鎵嶅彲浣跨敤銆備換浣曚漢浣跨敤DEPENDENCE宸ュ叿灝卞彲浠ュ皢DLL涓紩鐢ㄧ殑涓滆タ鏌ョ湅鐨勬竻妤氾紝铏界劧榪欎笉鑷充簬閫犳垚鎶鏈硠婕忥紝浣嗕粠閫熷害鍜孌LL澶у皬鏉ヨ閮芥槸涓嶅垝綆楃殑銆?/p>

鐜板湪寰堝娓告垙涓籩xe涓鑸兘鏄?0M+鐢氳嚦20M+鐨勫ぇexe錛岃繖閮芥槸浣跨敤闈欐侀摼鎺ヨ屾垚銆備絾鏄浠g爜緇撴瀯涔熷繀欏誨仛鍑轟竴瀹氱殑璋冩暣銆傛墍鏈夊伐紼嬪繀欏婚兘鏄潤鎬佸簱錛岃繖鏍鋒墠鑳戒繚璇佸儚CORE榪欐牱鐨勯潤鎬佸簱涓殑鍏ㄥ眬/闈欐佸彉閲忎笉鑷充簬琚摼鎺?浠借岄犳垚鍐呭瓨孌甸昏緫閿欒銆?/p>

褰撶劧錛屼嬌鐢ㄥ叏闈欐佸簱榪橀渶瑕佹敞鎰忎竴鐐癸細鎵鏈夌殑lib閮芥槸鍦ㄦ渶鍚庣殑game宸ョ▼閲屾潵鍋氶摼鎺ャ?/p>

鎴橀瓊灝忕瓚 2010-04-07 16:08 鍙戣〃璇勮
]]>
[杞琞铏氬夠寮曟搸UDK寮鍙戝畼鏂硅棰戞暀紼?/title><link>http://www.shnenglu.com/sunicdavy/archive/2010/04/07/111833.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Wed, 07 Apr 2010 02:36:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2010/04/07/111833.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/111833.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2010/04/07/111833.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/111833.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/111833.html</trackback:ping><description><![CDATA[<p>杞澆鑷?<a >鐙珛娓告垙涓枃璁哄潧</a> <p>UDK鏄痷nrealengine develpoment kit 鐨勭緝鍐欙紝綆鍗曟潵璇村氨鏄ぇ鍚嶉紟榧庣殑铏氬夠錛撳紩鎿庣殑鍏嶈垂鍟嗕笟鐗堟湰錛庝笉榪囪櫄騫伙紦姣曠珶榪樻槸錛斿勾鍓嶇殑dx9鐨勫叆闂ㄧ駭寮曟搸錛屽湪鍟嗕笟涓婂彇寰?br>宸ㄥぇ鎴愬姛錛屾妧鏈笂涔熸樉寰楄惤鍚庯紟鐩墠Epic鎯蟲Θ騫茶櫄騫伙紦鐨勬渶鍚庝竴鐐規綔鍔涳紝浜庢槸騫茶剢鍙戝竷浜嗚繖涓厤璐圭増鏈紟浠諱綍浜洪兘鍙互鐢嫉錛わ極寮鍙戞父鎴忥紝浣嗘槸濡傛灉娓告垙鐗熷埄鐨勮瘽姣忓勾榪樻槸瑕佸悜<br>Epic浜ょ撼涓瀹氭暟閲忕殑鎶鏈巿鏉冭垂鐢ㄧ殑錛庡厛涓嶇榪欎釜錛岃繕鏄潵鐪嬬湅瀹冪殑瀹樻柟瑙嗛鏁欑▼鍚э紟<br>銆銆[attach]44[/attach]<br>閾炬帴濡備笅錛氥銆<br><a >http://udn.epicgames.com/Three/VideoTutorials.html</a><br>涓鍏憋紩涓暀紼嬨浠庡紩鎿庨厤緗粙緇嶅紑濮嬶紝鍒板叧鍗″拰浜虹墿緙栬緫鍣紝浠ュ強鏈鍚庝竴涓畬鏁寸殑灝忔父鎴忕殑鍒朵綔錛屽浜庡叆闂ㄦ潵璇村畬鍏ㄨ凍澶熶簡錛?br>瑙嗛璇寸殑榪樻瘮杈冭緇嗭紝鍚姏涓嶅ソ鐨勫悓瀛﹀彲浠ュ鐓т笅寮鍙戞枃妗c<a >http://www.udk.com/documentation</a>銆閲岄潰鍩烘湰璇寸殑寰堣緇嗭紟<br>鏈鍚庨檮涓婏嫉錛わ極鐨勪笅杞藉湴鍧錛氥<a >March 2010 UDK Beta</a> (548 MB .exe)銆<br>濂戒簡錛岋嫉錛わ極瀵逛簬鍒濆鑰呮潵璇磋繕鏄瘮杈冮傚悎鐨勶紟瀵逛簬娓告垙鐨勫紑鍙戜漢鍛樻潵璇村紩鎿庣殑鏁翠綋鏋舵瀯榪樻槸寰堝煎緱瀛︿範鐨勶紟甯屾湜浣犲鐨勬剦蹇紟</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/111833.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2010-04-07 10:36 <a href="http://www.shnenglu.com/sunicdavy/archive/2010/04/07/111833.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>妯℃嫙OGRE鐨凜ompositorhttp://www.shnenglu.com/sunicdavy/archive/2010/04/01/111312.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Thu, 01 Apr 2010 10:56:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2010/04/01/111312.htmlhttp://www.shnenglu.com/sunicdavy/comments/111312.htmlhttp://www.shnenglu.com/sunicdavy/archive/2010/04/01/111312.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/111312.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/111312.htmlRenderTarget瀹屾垚鍚庯紝寮濮嬫ā鎷烵GRE鐨凜ompositor銆?/p>

OGRE鐨凜ompositor鍏跺疄灝辨槸鐢ㄤ簬瑙e喅緇樺埗PostEffect鐨勶紝綆鍗曠殑璇達紝灝辨槸涓縐峈enderTarget鐨勬祦紼嬫帶鍒惰剼鏈?/p>

榪欐槸OGRE compositor鏂囦歡鐨勭墖孌?/p>

compositor Bloom
{
    technique
    {
        // Temporary textures
        texture rt_output target_width target_height PF_R8G8B8
        texture rt0 target_width_scaled 0.25 target_height_scaled 0.25 PF_R8G8B8
        texture rt1 target_width_scaled 0.25 target_height_scaled 0.25 PF_R8G8B8
 
        target rt_output
        {
            // Render output from previous compositor (or original scene)
            input previous
        }
 
        target rt0
        {
            // Start with clear texture
            input none
            // Horizontal blur pass
            pass render_quad
            {
                // Renders a fullscreen quad with a material
                material Ogre/Compositor/BrightPass2
                input 0 rt_output
            }
        }
 
        target rt1
        {
            // Start with clear texture
            input none
            // Horizontal blur pass
            pass render_quad
            {
                // Renders a fullscreen quad with a material
                material Ogre/Compositor/BlurV
                input 0 rt0
            }
        }
 
        target rt0
        {
            // Start with clear texture
            input none
            // Horizontal blur pass
            pass render_quad
            {
                // Renders a fullscreen quad with a material
                material Ogre/Compositor/BlurH
                input 0 rt1
            }
        }
 
        target_output
        {
            // Start with clear output
            input none
            // Draw a fullscreen quad
            pass render_quad
            {
                // Renders a fullscreen quad with a material
                material Ogre/Compositor/BloomBlend2
                input 0 rt_output
                input 1 rt0
            }
        }
    }
}

 

澶ф鎴戜滑鐭ラ亾錛屼竴涓狢ompositor鍒嗕負璧勬簮瀹氫箟涓庣粯鍒舵楠わ紙target xxx錛?/p>

鑰屼竴涓粯鍒舵楠ゅ張鍒嗗埆瀹氫箟錛?/p>

1. 錛堣緭鍏ワ級緇樺埗鐨勬槸浠涔堜笢瑗匡紵

2. 錛堟晥鏋滐級緇樺埗鎴愪粈涔堟牱瀛愶紵

3. 錛堣緭鍑猴級寰鍝噷緇樺埗錛?/p>

杈撳嚭鏂瑰紡鍦ㄨ繖涓緥瀛愭湁2縐嶏細綰圭悊錛圧T錛夊拰灞忓箷

杈撳叆鏂瑰紡鏈?涓細綰圭悊鍙婂満鏅?/p>

鎴戜滑鍙互浣跨敤涓涓洖璋冩潵瀵逛竴涓粯鍒舵楠ゆ彁渚涚粯鍒惰緭鍏?/p>

緇樺埗鏁堟灉灝辨槸涓澶у爢鐨凷hader錛岃繖浜泂hader閮芥槸鍩轟簬涓涓猶uad鏉ュ仛鐨勶紝涔熷氨鏄竴涓煩褰紝浣跨敤鍙樻崲鍚庣殑欏剁偣鍜屼竴涓汗鐞嗗潗鏍囦綔涓洪《鐐瑰畾涔?/p>

涓嶈繃榪欓噷鏄笉闇瑕佸仛vertexshader鐨勶紝浠呬粎ps瓚崇煟銆?/p>

緇樺埗鐨勬渶鍚庯紝鏄皢鍓嶉潰緇樺埗鐨凴T錛堢汗鐞嗭級娣峰悎璧鋒潵

褰撶劧錛屽鏋滄楠ゆ瘮杈冨鍜屽鏉傛椂錛孯T涔嬮棿璺熷瘎瀛樺櫒涓鏍鳳紝鍙互鍙嶅浣跨敤

YR7HEX8VAB[67GPOWLNPIBA

鏄劇ず鑼跺6娉曠嚎鐨勫満鏅姞涓?Blur 鐨凱ostEffect

<?xml version="1.0" encoding="gb2312" ?>
<Compositor name = "bloom" >
  <Resource>
    <RenderTarget name ="rt_source" size="screenquad" />
    <RenderTarget name ="rt0" size="screenquad" />
    <RenderTarget name ="rt1" size="screenquad" />
  </Resource>
  <Step target="rt_source">
    <Geometry type ="callback" callback = "rt_input"/>
  </Step>
  <Step target="rt0">
    <Geometry type = "screenquad"/>
    <Effect name ="material\blurH.xml">
      <Texture name ="mTexture" value ="rt_source" />
    </Effect>
  </Step>
  <Step target="rt1">
    <Geometry type = "screenquad"/>
    <Effect name ="material\blurV.xml">
      <Texture name ="mTexture" value ="rt_source" />
    </Effect>
  </Step>
  <Step>
    <Geometry type = "screenquad"/>
    <Effect name ="material\combine.xml">
      <Texture name ="mTexture1" value ="rt0" />
      <Texture name ="mTexture2" value ="rt1" />
    </Effect>
  </Step>
</Compositor>
榪欐槸鎴戠殑寮曟搸閲岀殑Compositor鑴氭湰錛岃繕鍦ㄦ參鎱㈠姞寮哄姛鑳斤紝甯屾湜鑳芥湁涓澶╄揪鍒癘GRE鐨凜ompositor鍔熻兘

鎴橀瓊灝忕瓚 2010-04-01 18:56 鍙戣〃璇勮
]]>
3D寮曟搸璁捐錛氭敮鎸佸RenderTarget鍙婂Viewporthttp://www.shnenglu.com/sunicdavy/archive/2010/03/29/110895.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Mon, 29 Mar 2010 10:16:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2010/03/29/110895.htmlhttp://www.shnenglu.com/sunicdavy/comments/110895.htmlhttp://www.shnenglu.com/sunicdavy/archive/2010/03/29/110895.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/110895.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/110895.html濡傛灉璁╀綘鐨勫紩鎿庣粨鏋勬敮鎸佸涓猂enderTarget緇樺埗鍙婂涓猇iewport錛熻繖閲屾槸鎴戠殑綆鍗曡璁★細

鍚屾牱閫傜敤鎴戠殑鏂囨湰璁捐鍥炬爣鍑?+涓哄寘鍚?  <涓烘淳鐢?

 

RenderTexture

      RenderTarget

          <ScreenTarget(寮曟搸鍚姩鏃訛紝鍒濆鍖栧睆騫曞ぇ灝忕殑Viewport)

          +RenderView (瀵逛簬涓涓猂T錛屽彲浠ユ槸灞忓箷錛屽彲浠ユ槸綰圭悊RT錛屾墍浠ュ彲浠ユ嫢鏈?1~n涓垏鍒嗚鍥?)

               +Camera

               +Viewport

 

浠ヤ笅鏄View緇樺埗鐨勭被XNA浼唬鐮?/p>

 

Engine.Run()
{
    Device.Clear()
 
    // 淇濆瓨褰撳墠鍏ㄥ睆Viewport
    ScreenViewport = Device.CurrentViewport
 
    Device.BeginScene()    
 
    // 閬嶅巻褰撳墠灞忓箷RT涓嬬殑鎵鏈塚iew
    foreach RenderView in ScreenRT
    {
        // 鏈縺媧葷殑View涓嶇敤緇樺埗
        if RenderView not active then continue
 
        // 灝哣iew瀵瑰簲鐨刅iewport鎻愪氦鍒拌澶?       
        RenderView.CommitViewport()
 
        // 娓叉煋鍥炶皟
        foreach RenderEventListener in RenderEventListenerList
        {
            RenderEventListener.OnRenderFrame()
        }
    }
 
    Device.EndScene()
 
     Device.Present()
 
    Device.CurrentViewport = ScreenViewport // 鎭㈠鍏ㄥ睆viewport
}

 

 

浠ヤ笅鏄疪T闂村祵濂楃粯鍒剁殑浼唬鐮侊細

RenderView.SwitchRenderTarget(stage, RenderTarget)
{
    // 淇濆瓨緇樺埗鍓嶇殑RT
    PreTarget = Device.GetRenderTarget()
    // 璁劇疆涓哄綋鍓嶇殑RT
    Device.SetRenderTarget( RenderTarget )
 
    // 鏇存柊RT鎽勫儚鏈?/span>
    RenderTarget.UpdateCamera()    
    
    // 娓呯┖RT
    Device.Clear()
 
    // 緇樺埗鍥炶皟
    RenderTarget.OnRender( )
 
    // 鎭㈠涔嬪墠鐨凴T
    Device.SetRenderTarget( PreTarget  );
}


鎴橀瓊灝忕瓚 2010-03-29 18:16 鍙戣〃璇勮
]]>
璁ㄨ錛歴hader涓庣煩闃佃漿緗?/title><link>http://www.shnenglu.com/sunicdavy/archive/2010/03/17/109879.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Wed, 17 Mar 2010 03:08:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2010/03/17/109879.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/109879.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2010/03/17/109879.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/109879.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/109879.html</trackback:ping><description><![CDATA[<p>瀹屾垚鑷繁鐨剆hader緋葷粺鍚庯紝緲誨嚭涔嬪墠鍐欒繃鐨勪唬鐮佷腑鍙戠幇鏈変竴涓湴鏂瑰緢濂囨?/p> <p>鎴戠殑鐭╅樀瀹氫箟璺烵GRE鐨勬病浠涔堝尯鍒?/p> <div id="hvzpftn" class="csharpcode"><pre class="alt"> union </pre><pre> {</pre><pre class="alt"> <span id="hvzpftn" class="kwrd">struct</span></pre><pre> {</pre><pre class="alt"> <span id="hvzpftn" class="kwrd">float</span> m11, m12, m13, m14;</pre><pre> <span id="hvzpftn" class="kwrd">float</span> m21, m22, m23, m24;</pre><pre class="alt"> <span id="hvzpftn" class="kwrd">float</span> m31, m32, m33, m34;</pre><pre> <span id="hvzpftn" class="kwrd">float</span> m41, m42, m43, m44;</pre><pre class="alt"> };</pre><pre> <span id="hvzpftn" class="kwrd">float</span> m[4][4];</pre><pre class="alt"> };</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>   涔樻硶涔熻窡OGRE鐨勪竴妯′竴鏍鳳紝浣嗗湪灝唙iew鍙妏roject涔樺ソ鐨勭煩闃甸佺粰HLSL鏃訛紝鍗村繀欏昏漿緗笅錛屾墠鑳藉緱鍒版紜殑緇撴灉</p> <div id="hvzpftn" class="csharpcode"><pre class="alt">mSkinnedEffect.mMatrix.mValue = (camera.mViewMatrix * camera.mProjectMatrix).Transpose();</pre></div> <p>shader:</p> <div id="hvzpftn" class="csharpcode"><pre class="alt">float4 localpos = mul(In.Position, skinTransform);</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p> </p> <p>    OGRE涓湁榪欎箞涓孌典唬鐮佸強娉ㄩ噴:</p> <div id="hvzpftn" class="csharpcode"><pre class="alt"> <span id="hvzpftn" class="kwrd">const</span> Matrix4& AutoParamDataSource::getProjectionMatrix(<span id="hvzpftn" class="kwrd">void</span>) <span id="hvzpftn" class="kwrd">const</span></pre><pre> {</pre><pre class="alt"> <span id="hvzpftn" class="kwrd">if</span> (mProjMatrixDirty)</pre><pre> {</pre><pre class="alt"> <span id="hvzpftn" class="rem">// NB use API-independent projection matrix since GPU programs</span></pre><pre> <span id="hvzpftn" class="rem">// bypass the API-specific handedness and use right-handed coords</span></pre><pre class="alt"> <span id="hvzpftn" class="kwrd">if</span> (mCurrentRenderable && mCurrentRenderable->getUseIdentityProjection())</pre><pre> {</pre><pre class="alt"> <span id="hvzpftn" class="rem">// Use identity projection matrix, still need to take RS depth into account.</span></pre><pre> RenderSystem* rs = Root::getSingleton().getRenderSystem();</pre><pre class="alt"> rs->_convertProjectionMatrix(Matrix4::IDENTITY, mProjectionMatrix, <span id="hvzpftn" class="kwrd">true</span>);</pre><pre> }</pre><pre class="alt"> <span id="hvzpftn" class="kwrd">else</span></pre><pre> {</pre><pre class="alt"> mProjectionMatrix = mCurrentCamera->getProjectionMatrixWithRSDepth();</pre><pre> }</pre><pre class="alt"> <span id="hvzpftn" class="kwrd">if</span> (mCurrentRenderTarget && mCurrentRenderTarget->requiresTextureFlipping())</pre><pre> {</pre><pre class="alt"> <span id="hvzpftn" class="rem">// Because we're not using setProjectionMatrix, this needs to be done here</span></pre><pre> <span id="hvzpftn" class="rem">// Invert transformed y</span></pre><pre class="alt"> mProjectionMatrix[1][0] = -mProjectionMatrix[1][0];</pre><pre> mProjectionMatrix[1][1] = -mProjectionMatrix[1][1];</pre><pre class="alt"> mProjectionMatrix[1][2] = -mProjectionMatrix[1][2];</pre><pre> mProjectionMatrix[1][3] = -mProjectionMatrix[1][3];</pre><pre class="alt"> }</pre><pre> mProjMatrixDirty = <span id="hvzpftn" class="kwrd">false</span>;</pre><pre class="alt"> }</pre><pre> <span id="hvzpftn" class="kwrd">return</span> mProjectionMatrix;</pre><pre class="alt"> }</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>璨屼技鏄窡宸﹀彸鎵嬭繖涓伓蹇冪殑涓滆タ鏈夊叧緋?/p> <p>鍥炵湅DirectXSDK涓彁渚涚殑BasicHLSL渚嬪瓙</p> <div id="hvzpftn" class="csharpcode"><pre class="alt"> mWorld = g_mCenterWorld * *g_Camera.GetWorldMatrix();</pre><pre> mProj = *g_Camera.GetProjMatrix();</pre><pre class="alt"> mView = *g_Camera.GetViewMatrix();</pre><pre> </pre><pre class="alt"> mWorldViewProjection = mWorld * mView * mProj;</pre><pre> </pre><pre class="alt"> V( g_pEffect->SetMatrix( <span id="hvzpftn" class="str">"g_mWorldViewProjection"</span>, &mWorldViewProjection ) );</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p></p> <p>shader錛?/p><pre class="csharpcode">Output.Position = mul(vAnimatedPos, g_mWorldViewProjection);</pre> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>涓濇鏃犻渶杞疆鐭╅樀,Effect鎺ュ彛涓篃鎻愪緵鏈塖etMatrixTranspose榪欑被鏂規硶銆傛墍浠ユ帓闄ゅ唴閮ㄦ湁鑷姩杞疆鐨勫珜鐤戙?/p> <p>璇㈤棶榪囬噹鐚繖涓棶棰橈紝閲庣尓絳旀洶:"杞疆鍚庝紶杈撹嚦闇瑕佷紶3涓獀ector, 鏈鍚庝竴涓槸[0 0 0 1]鈥?</p> <p>鏈夎揪浜虹煡閬撶殑錛屽彲浠ユ寚鐐逛笅榪鋒觸 :)</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/109879.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2010-03-17 11:08 <a href="http://www.shnenglu.com/sunicdavy/archive/2010/03/17/109879.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓濂楀彲鎵╁厖鐨勬父鎴忔ā鍨嬬郴緇?/title><link>http://www.shnenglu.com/sunicdavy/archive/2010/03/12/109538.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Fri, 12 Mar 2010 08:13:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2010/03/12/109538.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/109538.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2010/03/12/109538.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/109538.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/109538.html</trackback:ping><description><![CDATA[<p>鏈漢鐨勮璁″浘鍙互鏂逛究鍦ㄦ枃鏈紪杈戝櫒閲屾煡鐪?>涓烘淳鐢?+涓哄寘鍚? <p>MAX鎻掍歡瀵煎嚭鐨勬ā鍨嬭祫婧愬垎錛歁esh/Skin, Skeleton, Animation <p>涓嶅悓鍔ㄤ綔鎸夌収涓嶅悓鐨勫姩鐢繪枃浠朵繚瀛?<p>  <p>ResourceHandle 鍖呭惈鍩烘湰id<br>        >NamedResourceHandle 甯︽湁鍚嶇О璧勬簮錛屽寘鍚玥ashA, hashB錛?浣跨敤鏆撮洩hash鍑芥暟鐢熸垚<br>        >ModelHandle        <br>        >MeshHandle            <br>        >SkeletonHandle        <br>        >AnimationHandle <p>鑾峰彇璧勬簮錛屽鏋滆祫婧愪笉瀛樺湪鏃訛紝鑷姩鍔犺澆<br>ModelMaster.ManualCache( &ModelHandle ) <p>鐩存帴璧勬簮璁塊棶錛?br>RawSkeleton = ModelMaster.ManualCache( &SkeletonHandle("a.skl") )<br>RawSkeleton->GetMarker(...) <p>寮傛璧勬簮鍔犺澆錛屽紓姝d淇濆瓨浜嶮odelHandle涓紝鍦╟allback涓牴鎹甶d紜<br>ModelMaster.AsyncCache( &ModelHandle ) <p>鑾峰彇璧勬簮鎸囬拡錛屾湭鍔犺澆鏃訛紝榪斿洖絀?br>ModelResource = ModelMaster.Fetch( &ModelHandle ) <p>妯″瀷璧勬簮鍔犺澆鍣?br>    鍦ㄦā鍨嬪彞鏌勪腑緇戝畾瀵瑰簲鍔犺澆鍣?br>    鍙互鑷緙栧啓甯︽崲瑁呯殑ModelLoader錛岄氳繃璇誨彇鑷繁鐨勯厤緗枃浠訛紝鑷鍔犺澆璧勬簮鍚庣敓鎴怰awModel<br>ModelLoader<br>    ModelHandle         ---mapping--->    ModelLoader         ---generate--> RawModel<br>    MeshHandle          ---mapping--->    MeshLoader             ---generate--> RawMesh<br>    SkeletonHandle     ---mapping--->    SkeletonLoader      ---generate--> RawSkeleton<br>    AnimationHandle    ---mapping--->    AnimationLoader   ---generate--> RawAnimation <p>寮曠敤璁℃暟綾?nbsp;   <br>ModelResource<br>    >RawModel<br>    >RawMesh<br>    >RawSkeleton<br>    >RawAnimation <p>RawModel涓笉淇濈暀Handle錛屽彧淇濈暀鎸囬拡<br>RawModel<br>    +MeshVB    浠庢ā鍨嬫枃浠朵腑鐩存帴璇誨彇欏剁偣鏍煎紡錛屽寘鍚?闈欐?GPU,CPU綾誨瀷欏剁偣<br>        +RawMesh<br>        +MeshIB        涓嬈℃у~鍏匢B<br>        >GPUMeshVB    涓嬈℃у~鍏匳B<br>        >CPUMeshVB    姣忓撫璁$畻<br>    +Animation            榪愯鏈熸暟鎹紙鏃墮棿/甯э級<br>        +RawAnimation    鍘熷鍔ㄧ敾鍐呭<br>    +Skeleton<br>        +RawSkeleton</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/109538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2010-03-12 16:13 <a href="http://www.shnenglu.com/sunicdavy/archive/2010/03/12/109538.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Direct3D9 Fx/HLSL鐨勮嫢騫叉潯鏈夌敤鐨勭瑪璁?/title><link>http://www.shnenglu.com/sunicdavy/archive/2010/03/05/108962.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Fri, 05 Mar 2010 06:26:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2010/03/05/108962.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/108962.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2010/03/05/108962.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/108962.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/108962.html</trackback:ping><description><![CDATA[<p>Direct3D涓殑Shader鏄繖鏍風殑錛?/p> <p>1. ASM Shader鏄渶鍏冭佺殑涔熸槸DX8涓昏浣跨敤Shader</p> <p>2. fxc緙栬瘧鍣ㄥ彲浠ュ悓鏃剁紪璇慉SM,HLSL鍜宖x鑴氭湰,鍏朵腑HLSL鍜宖x鍙互鏌ョ湅緙栬瘧鍚庣殑GPU姹囩紪浠g爜</p> <p>3. D3D9涓紝fx鏄疕LSL鐨勪竴縐嶆覆鏌撹剼鏈紝綆鍖栦簡HLSL璁劇疆鍙婂父閲忕粦瀹氾紝騫朵笖闄勫甫RenderStateBlock鍙婅緗?/p> <p>浣嗗彧鑳界敤浜庡埗浣滅畝鍗曠殑Shader</p> <p>4. DirectXSDK涓湁涓涓蹇墊販娣嗭細C++渚嬪瓙涓殑BasicHLSL浣跨敤鐨勫叾瀹炶繕鏄痜x錛孒LSLwithoutEffects渚嬪瓙鎵嶆槸鐪熸鐨勭函HLSL</p> <p>5.fx涓嶩LSL紼嬪簭閴村埆錛?/p> <p>浣跨敤fx紼嬪簭蹇呭畾鍚湁錛欴3DXCreateEffectXXX 緋誨垪鍑芥暟錛?ID3DXEffect瀵硅薄錛屾覆鏌撲腑鑳界湅鍒癝etTechnique錛孊eginPass錛孍ndPass涔嬬被鐨勫瓧鐪?/p> <p>浣跨敤綰疕LSL紼嬪簭鍚湁錛欴3DXCompileShader錛孖D3DXConstantTable瀵硅薄錛孏etConstantByName錛孏etConstantDesc涔嬬被鐨勫瓧鐪?/p> <p>6. 鍦╢x涓寘鍚湁 VertexShader錛孭ixelShader浠g爜鍙妏rofile錛宔ntry錛孯enderState璁劇疆鍙婄畝鍗曠殑緇樺埗榪囩▼(pass)銆備竴嬈$紪璇戝悗錛孷S,PS,Texture,Sampler鍙婂父閲忛兘鏄湪ID3DXEffect瀵硅薄涓嚜鍔ㄥ畬鎴愶紝鏃犻渶鎵嬪姩璁劇疆銆?/p> <p>7. HLSL鍙互灝哣S鍙奝S浠g爜鍐欏叆1涓?hlsl鏂囦歡銆傛敞鎰忥紝浠ヤ笅榪欑浠g爜鍙互鍦℉LSL涓紪璇戣繃錛屼絾瀹為檯娌℃湁浠諱綍鏁堟灉</p> <div id="hvzpftn" class="csharpcode"><pre class="alt"><span id="hvzpftn" class="lnum"> 1: </span>sampler_state</pre><pre><span id="hvzpftn" class="lnum"> 2: </span>{</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 3: </span> Texture = <tex>;</pre><pre><span id="hvzpftn" class="lnum"> 4: </span> MipFilter = LINEAR;</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 5: </span> MinFilter = LINEAR;</pre><pre><span id="hvzpftn" class="lnum"> 6: </span> MagFilter = LINEAR;</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 7: </span>};</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>榪欑偣鍙互鍙傝傾MD RenderMonkey涓彧鍦╯hader涓嬌鐢╯ampler鑰屽拷鐣exture銆?/p> <p>8. fx涓線shader璁劇疆綰圭悊浣跨敤鐨勬槸ID3DXBaseEffect::SetTexture涓嬬殑榪欎釜鍑芥暟</p> <div id="hvzpftn" class="csharpcode"><pre class="alt"><span id="hvzpftn" class="lnum"> 1: </span>HRESULT SetTexture(</pre><pre><span id="hvzpftn" class="lnum"> 2: </span> D3DXHANDLE hParameter,</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 3: </span> LPDIRECT3DBASETEXTURE9 pTexture</pre><pre><span id="hvzpftn" class="lnum"> 4: </span>);</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p> 浣嗘槸鍦℉LSL涓紝榪欑偣灝卞彉寰楀緢楹葷儲錛岄渶瑕佹墜鍔ㄨ緗紝鍙互鍙傝冭繖綃?a href="http://www.shnenglu.com/liangairan/articles/57971.html">鏂囩珷</a></p> <p>Shader浠g爜鐗囨錛?/p> <div id="hvzpftn" class="csharpcode"><pre class="alt"><span id="hvzpftn" class="lnum"> 1: </span>sampler Samp0 = sampler_state</pre><pre><span id="hvzpftn" class="lnum"> 2: </span>{</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 3: </span> Texture = <Tex0>;</pre><pre><span id="hvzpftn" class="lnum"> 4: </span> MipFilter = LINEAR;</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 5: </span> MinFilter = LINEAR;</pre><pre><span id="hvzpftn" class="lnum"> 6: </span> MagFilter = LINEAR;</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 7: </span>};</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>緙栬瘧HLSL浠g爜鍚庡緱鍒癈onstantTable錛岀劧鍚庡彇鍑哄彞鏌勶細</p> <div id="hvzpftn" class="csharpcode"><pre class="alt"><span id="hvzpftn" class="lnum"> 1: </span>ScalarHandle = pixelConstTable->GetConstantByName(0, <span id="hvzpftn" class="str">"Scalar"</span>);</pre><pre><span id="hvzpftn" class="lnum"> 2: </span> </pre><pre class="alt"><span id="hvzpftn" class="lnum"> 3: </span>Samp0Handle = pixelConstTable->GetConstantByName(0, <span id="hvzpftn" class="str">"Samp0"</span>);</pre><pre><span id="hvzpftn" class="lnum"> 4: </span> </pre><pre class="alt"><span id="hvzpftn" class="lnum"> 5: </span>Samp1Handle = pixelConstTable->GetConstantByName(0, <span id="hvzpftn" class="str">"Samp1"</span>);</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>鍐嶄粠鍙ユ焺鍙栧嚭symbol鐨勬弿榪幫細</p> <div id="hvzpftn" class="csharpcode"><pre class="alt"><span id="hvzpftn" class="lnum"> 1: </span>UINT count;</pre><pre><span id="hvzpftn" class="lnum"> 2: </span> </pre><pre class="alt"><span id="hvzpftn" class="lnum"> 3: </span>pixelConstTable->GetConstantDesc(Samp0Handle, & Samp0Desc, &count);</pre><pre><span id="hvzpftn" class="lnum"> 4: </span> </pre><pre class="alt"><span id="hvzpftn" class="lnum"> 5: </span>pixelConstTable->GetConstantDesc(Samp1Handle, & Samp1Desc, &count);</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>閫氳繃涓婇潰鐨勬弿榪幫紝灝嗙汗鐞嗗彉閲忕殑瀵勫瓨鍣ㄥ亸縐諱綔涓虹汗鐞嗙殑stage</p> <p>8.  浼樺寲甯擱噺璁劇疆閫熷害鐨勬柟娉曚竴鑸氨鏄牴鎹瓧絎︿覆鍙栧嚭鍙ユ焺錛屼互鍚庢瘡嬈℃覆鏌撴椂錛屽彧閫氳繃鍙ユ焺璁劇疆銆備絾ID3DXConstantTable鏈鍚庤繕鏄氳繃</p> <p>IDirect3DDevice9::SetPixelShaderConstantX 緋誨垪鍑芥暟鏉ュ疄鐜扮殑</p> <div id="hvzpftn" class="csharpcode"><pre class="alt"><span id="hvzpftn" class="lnum"> 1: </span>HRESULT SetPixelShaderConstantF(</pre><pre><span id="hvzpftn" class="lnum"> 2: </span> UINT StartRegister,</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 3: </span> CONST <span id="hvzpftn" class="kwrd">float</span> * pConstantData,</pre><pre><span id="hvzpftn" class="lnum"> 4: </span> UINT Vector4fCount</pre><pre class="alt"><span id="hvzpftn" class="lnum"> 5: </span>);</pre></div> <style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style> <p>9. HLSL灝嗕竴孌靛寘鍚玍S鍜孭S浠g爜緙栬瘧瀹屾垚鍚庯紝灝嗗緱鍒癡S鍜孭S涓や釜鍗曠嫭鐨処D3DXConstantTable</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/108962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2010-03-05 14:26 <a href="http://www.shnenglu.com/sunicdavy/archive/2010/03/05/108962.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏋氫婦鍙嶅皠瀵硅薄鍜岀粨鏋勪綋鍙嶅皠濉厖http://www.shnenglu.com/sunicdavy/archive/2010/02/26/108509.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Fri, 26 Feb 2010 09:58:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2010/02/26/108509.htmlhttp://www.shnenglu.com/sunicdavy/comments/108509.htmlhttp://www.shnenglu.com/sunicdavy/archive/2010/02/26/108509.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/108509.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/108509.html 

鏈榪戝湪鍐橠3D9妯℃嫙D3D10鎺ュ彛鐨勬覆鏌撶郴緇熶腑紕板埌澶ч噺鐨勬覆鏌撶姸鎬佸璞★紝涓嶄粎鎴愬憳澶氾紝鏋氫婦涔熷鐨勮鍛姐?/p>

 

    struct CORE_API RasterizerState : ResourceHandle            
    {
        eFillMode            mFillMode;        
        eCullMode            mCullMode;
        bool                mFrontFaceCCW;
        float                mDepthBias;
        float                mSlopeScaledDepthBias;
        bool                mDepthClipEnable;
        bool                mScissorEnable;
        bool                mMultisampleEnable;

        RasterizerState();
    };

鑰岃浠庨厤緗枃浠朵腑璇誨彇鏁版嵁騫跺~鍏呭埌榪欎釜緇撴瀯浣擄紝瀵逛簬C++鏉ヨ瀹屽叏灝辨槸鍚冨姏涓嶈濂界殑錛屽啓鍑烘潵鐨勪唬鐮佷篃鏄瀬涓鴻繃紼嬶紝淇敼鍜屾墿灞曟瀬涓洪夯鐑︾殑銆?/p>

鍥犳鍐沖畾浣跨敤鍙嶅皠鐨勬柟娉曟潵濉厖鏁版嵁錛屽厛鎬葷粨涓涓嬫垜鐨凜++鍙嶅皠緋葷粺

class RTTIObject // 鍔ㄦ佺被鍨嬭瘑鍒璞″熀綾伙紝瀵硅薄閫氳繃涓浜涘畯鍚庡彲浠ュ緢鏂逛究鐨勯氳繃瀛楃涓插垱寤哄嚭綾誨疄渚嬶紝騫朵笖鍙互鏌ヨ娉ㄥ唽鏃剁殑綾誨瀷鍜屽叾浠栫粦瀹氫俊鎭?/span>
class NameRef  // 鍚嶅瓧琛紝綾諱技浜庤櫄騫諱腑鐨凢Name錛屽彲浠ュ畾涔塁onst鍜屾櫘閫歂ame錛屾瘮杈冨拰鎷瘋礉鍙槸涓涓猟word鑰楄垂鐨勬椂闂?/span>
value_parse錛寁alue_tostring錛寁alue_typename // 涓緋誨垪綾誨瀷妯℃澘鍑芥暟錛屾彁渚涘綾誨瀷鐨凾oString錛孭arse鍙婄被鍨嬪悕鏌ヨ

 

棣栧厛闇瑕佸鐞嗙殑鏄灇涓炬煡璇紝榪欓噷灝嗘灇涓鵑氳繃瀹忓仛鎴愪竴涓釜鏋氫婦瀵硅薄錛屽茍鍙互閫氳繃鍚嶅瓧鍒涘緩瀹炰緥

#define DECLARE_ENUMOBJECT( TEnum ) \
    struct EnumObject_##TEnum : EnumObject\
    {\
    DECLARE_RTTIOBJECT( EnumObject_##TEnum );\
    EnumObject_##TEnum( );\
    };


#define IMPLEMENT_ENUMOBJECT_BEGIN( TEnum, TEnum_prefixoffset, TMember_prefixoffset ) \
    IMPLEMENT_RTTIOBJECT_STRING( EnumObject_##TEnum, #TEnum + TEnum_prefixoffset, #TEnum + TEnum_prefixoffset, "EnumObject" )\
    EnumObject_##TEnum::EnumObject_##TEnum(){ const int member_prefixoffset = TMember_prefixoffset;

#define ENUMOBJECT_ADD( enumkey ) AddMember( #enumkey + member_prefixoffset, (dword)enumkey );

#define IMPLEMENT_ENUMOBJECT_END }

#define ENUMOBJECT_STATICINIT( TEnum ) EnumObject_##TEnum::StaticInit();

EnumObject 涓氳繃瀹忓皢鏋氫婦鐨勫悕縐板拰鍊間繚瀛樺湪榪欎釜瀵硅薄涓?/p>

IMPLEMENT_ENUMOBJECT_BEGIN( eFillMode, 1, 3 )  // 榪欓噷鐨?錛?鏄皢eFillMode鍙奆M_Point杞垚瀛楃涓插悗鍘繪帀鍓嶇紑
    ENUMOBJECT_ADD( FM_Point )
    ENUMOBJECT_ADD( FM_Line )
    ENUMOBJECT_ADD( FM_Fill )
IMPLEMENT_ENUMOBJECT_END

// 娉ㄥ唽鍒癛TTIObject緋葷粺

ENUMOBJECT_STATICINIT( eFillMode )

 

// 閫氳繃鏋氫婦瀵硅薄鍙互鏌ユ壘鍒板瓧絎︿覆瀵瑰簲鐨勫?/span>
dword v;
EnumObject::GetEnumValue( "FillMode", "Point", v )



涓嬩竴姝ユ槸灝嗙粨鏋勪綋鎴愬憳淇℃伅璁板綍

    void SettingObject::BindMember( const NameRef& objname, void* instancePtr, void* dataPtr, SettingProxy* proxy )
    {
        proxy->mOffset = dword(dataPtr) - dword(instancePtr);

        MemberList& memberlist = mSettingMap[ objname ];
        memberlist[ proxy->mName ] = proxy;
    }

榪欓噷璁板綍鐨勬槸緇撴瀯浣撴垚鍛樼殑鍐呭瓨鍋忕Щ

浣跨敤澶ч噺鐨勫畯錛屽彲浠ヨ緇撴瀯浣撶粦瀹氬彉寰楁紓浜?/p>

#define BIND_SETTINGOBJECT_BEGIN( TClass ) \
    { const NameRef& soname = TClass::StaticGetClassInfo()->mClassName;TClass soobj;

#define BIND_SO_MEMBER( TMemberType, TMember ) \
    so.BindMember( soname, &soobj, &soobj.TMember, new TSettingElement<TMemberType>(#TMember + 1 ) );

#define BIND_SO_MEMBER_NAME( TMemberType, TMember, TName ) \
    so.BindMember( soname, &soobj, &soobj.TMember, new TSettingElement<TMemberType>(TName) );

#define BIND_SO_ENUM( TEnumType, TMember ) \
    so.BindMember( soname, &soobj, &soobj.TMember, new TSettingEnum(#TMember + 1, #TEnumType + 1) );

#define BIND_SO_ENUM_NAME( TEnumType, TMember, TName ) \
    so.BindMember( soname, &soobj, &soobj.TMember, new TSettingEnum(TName, #TEnumType + 1) );

#define BIND_SETTINGOBJECT_END }

緇戝畾浠g爜濡備笅

        BIND_SETTINGOBJECT_BEGIN( RasterizerState )
            BIND_SO_ENUM    ( eFillMode    , mFillMode )
            BIND_SO_ENUM    ( eCullMode    , mCullMode )
            BIND_SO_MEMBER    ( bool        , mFrontFaceCCW )
            BIND_SO_MEMBER    ( float        , mDepthBias )
            BIND_SO_MEMBER    ( float        , mSlopeScaledDepthBias)
            BIND_SO_MEMBER    ( bool        , mDepthClipEnable)
            BIND_SO_MEMBER    ( bool        , mScissorEnable)
            BIND_SO_MEMBER    ( bool        , mMultisampleEnable)
        BIND_SETTINGOBJECT_END

 

鎵鏈夌粨鏋勪綋鐨勪俊鎭璁板綍鍦⊿ettingObject涓紝璇誨彇閰嶇疆鏂囦歡濉厖緇撴瀯浣撶殑浠誨姟灝卞彉寰楀紓甯哥殑綆鍗曚簡

    SettingObject settings;
// 灝嗘墍鏈夌殑緇撴瀯浣撲俊鎭褰?/span>
    InitRenderStateObjectSetting( settings );

    const NameRef& rzname = DepthStencilState::StaticGetClassInfo()->mClassName;

    DepthStencilState a;
 // 榪欓噷灝辨槸灝嗛厤緗枃浠剁殑淇℃伅濉厖鍒扮粨鏋勪綋
    settings.SetMember( rzname, &a, "BackFace.StencilFunc", "Equal" );
 


鎴橀瓊灝忕瓚 2010-02-26 17:58 鍙戣〃璇勮
]]>
璁捐D3D9 HLSL娓叉煋鑴氭湰http://www.shnenglu.com/sunicdavy/archive/2010/02/15/107911.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Mon, 15 Feb 2010 15:18:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2010/02/15/107911.htmlhttp://www.shnenglu.com/sunicdavy/comments/107911.htmlhttp://www.shnenglu.com/sunicdavy/archive/2010/02/15/107911.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/107911.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/107911.html鏈榪戠炕鍑哄緢鏃╀箣鍓嶈嚜宸卞啓鐨勪竴濂椾嬌鐢―irect3D 9  Effect緋葷粺鐨勭函shader 3d寮曟搸錛屾墦綆椾嬌鐢ㄦ渶鏂版妧鏈噸鍐欍傞噸鍐欑殑涓昏淇敼鍦ㄤ簬錛?/p>

1. 鍘繪帀Effect緋葷粺錛屾敼鐢℉LSL + 娓叉煋鑴氭湰

2. 浼樺寲娓叉煋鎺ュ彛錛屼嬌鐢ㄦ潗璐ㄧ粺涓shader鍜屾覆鏌撶姸鎬?/p>

闅忓嵆鍙傝冧簡DirectX SDK鐨凣raphics閮ㄥ垎鏂囨。錛欴irectX9 鏃朵唬鐨凟ffect緋葷粺綰補鍙槸涓涓狧LSL鐨勭畝鍗曟覆鏌撹剼鏈疄鐜幫紝闄や簡DXUT錛孎XComposer絳夋瀬灝戠▼搴忎嬌鐢ㄨ繖濂椾笢瑗垮錛屽ぇ鍨嬬殑寮曟搸寰堝皯浣跨敤榪欑鍗婃垚鍝佺郴緇熴傚埌浜咲irectX10鐢氳嚦11錛屽洜涓烘灦鏋勬洿鏀癸紝鍘繪帀鍥哄畾綆$嚎錛屽洜姝ffect鎴愪負杈冧負楂樻晥鍜屼究鎹風殑娓叉煋鑴氭湰錛屽鏋滀笉鏄姹傝緝楂樼殑3d寮曟搸錛屼竴鑸殑娓告垙浣跨敤DirectX10鐨凟ffect娓叉煋鑴氭湰榪樻槸寰堜笉閿欑殑銆?/p>

DX10鐨刦x鑴氭湰涓嶥X9鐨勫樊寮傚湪浜?/p>

娓叉煋鐘舵侊紝閲囨牱鍣ㄧ姸鎬佺瓑閮藉彉涓哄璞★紝騫朵笌API楂樺害緇熶竴

鍦ㄨ剼鏈笌API涓潎鍙互璁劇疆

DepthStencilState EnableDepth
{
    DepthEnable = TRUE;
    DepthWriteMask = ALL;
    DepthFunc = LESS_EQUAL;
};

BlendState NoBlending
{
    AlphaToCoverageEnable = FALSE;
    BlendEnable[0] = FALSE;
};

technique10 Render
{
    pass P0
    {

        SetDepthStencilState( EnableDepth, 0 );
        SetBlendState( NoBlending, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );
    }
}

鏈漢瑙夊緱錛岃繖鏍風殑璁捐璁╁浘褰PI鏇翠負鏁忔嵎涓庡綊綾誨寲錛屽彟澶栵紝涔熶究浜嶴tateManager鎴栬呰嚜宸卞仛娓叉煋鐘舵佽漿縐誨強宸紓姣旇緝鏃舵洿涓洪珮鏁?

 

Vista鎿嶄綔緋葷粺鎺ㄥ嚭寰堜箙鍚庯紝DX10鐨勬樉鍗′篃鍗犳湁浜嗗ぇ閲忕殑甯傚満浠介銆備絾鏄敱浜嶥X10浠嶇劧鏄竴涓繃娓PI錛堢被浼間簬DX8)錛屽洜姝わ紝寰堝3D娓告垙瑕佷箞浠嶇劧鏀寔DX9錛岃涓嶇劧鍗蟲敮鎸丏X9涔熸敮鎸丏X10錛岀敋鑷矰X11.

   鐪嬪崥瀹笂鏈夎揪浜虹粍鍥㈢紪鍐欑被浼糄X10鎺ュ彛鍜岀郴緇熺殑杞覆鏌擄紝DX10鐨勮璁℃槸浼樼鐨勩傚洜姝わ紝鍦―X9 HLSL鍩虹涓婏紝緇撳悎鑷繁緙栧啓鐨勬覆鏌撹剼鏈細鏄潪甯稿ソ鐨勯夋嫨銆?

    娓叉煋鑴氭湰鎴戠殑璁捐鎬濊礬鏄繖鏍風殑錛?

1. 鍙槸涓縐嶉澶勭悊鑴氭湰錛屽茍闈炲疄鏃惰繍琛岃剼鏈?

緙栬瘧鍣ㄥ皢鏂囨湰瑙f瀽鍚庯紝杞寲涓轟竴浜涜繍琛屾寚浠わ紝姣斿錛氭湰pass浣跨敤涓鍧楀皬綰圭悊錛屼笅涓pass鐨則arget鏄繖涓汗鐞嗭紝騫朵笖寮鍚摢浜涙覆鏌撶姸鎬併?

2. 鑷畾涔夋牸寮忕殑瑙f瀽鑴氭湰銆?

浣跨敤lua錛宲ython絳夎剼鏈叾瀹炰篃鏄彲浠ョ殑銆備絾鏄湪鍑虹幇閿欒鏃訛紝鎶ュ嚭鐨勯敊鍙兘浼氳涓嶇啛鎮夎繖涓剼鏈璦鐨勪漢鑾悕鍏跺銆?

浣跨敤鏉鵑紶sq鑴氭湰璇█錛熷彲鎯滃叾鍦╨ua鍩虹涓婏紝瀵箃able鐨剆lot鍒濇璧嬪兼椂蹇呴』浣跨敤<-鑰屼笉鏄粺涓浣跨敤=錛屽洜姝や細璁╀綘鐨勮剼鏈█濂囧彜鎬?

XML鑴氭湰錛?XML鍙互閬垮厤澶嶆潅鐨勮娉曟鏌ワ紝鍐欏畬灝辨槸褰掓暣鐨勶紝浣嗕篃鏄綏鍡︾殑錛屾湰鏉exture[2]鍙互琛ㄨ揪瀹屾瘯鐨勶紝闈炶<Texture index = 2/>鏉ョ綏鍡︿笅銆?

OGRE鐨刢ompositor鑴氭湰鍜屾潗璐ㄨ剼鏈氨鏄嚜宸辮В鏋愮殑錛屼笉榪囧嚭涔庨鏂欑殑浣跨敤浜咮NF鑼冨紡榪欑被杈冧負姝h鐨勬柟娉曘傝繖灝辨槸璇達紝闇瑕佸厛瑙f瀽BNF琛ㄨ揪寮忥紝鐒跺悗鍐嶈緭鍏ヨ剼鏈В鏋愶紝緙栧啓榪囩▼鍜岀郴緇熷鏉傚害浼氬彉寰楀紓甯稿鏉傘?

鏈緇堥夋嫨榪樻槸浣跨敤鑷繁瑙f瀽鐨勮剼鏈紝浣跨敤涓浜涘叿浣撲唬鐮佺粨鏋勬潵鏇夸唬BNF榪欑被楂樻繁鐨勪笢瑗?

鍐沖畾浠ュ悗錛屼笅涓姝ラ渶瑕佸埗瀹氭覆鏌撹剼鏈叿浣撳悇閮ㄥ垎鍙婂埗浣滆繃紼?

1. 鍩烘湰lexer

   浠庢枃鏈緱鍒板悇縐峵oken

1. 娓叉煋鐘舵佸璞?

   鐓х潃DX10鎶勫氨濂?

2. Shader瀵煎叆鍙?

     shader鏂囦歡鏉ヨ嚜浜庝綍澶勶紝鍏ュ彛鎬庢牱瀹氫箟

3. 娓叉煋鑴氭湰VM鍙婃寚浠?

  鍐沖畾涓涓汗鐞嗘庢牱璁劇疆錛孯enderTarget鎬庢牱浣跨敤絳夌殑鎸囦護

鎴橀瓊灝忕瓚 2010-02-15 23:18 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美劲爆第一页| 亚洲精品久久久久| 亚洲男人av电影| 国产精品视频精品视频| 久久久久久一区二区| 久久久水蜜桃| 一区二区激情| 午夜精品视频一区| 最近看过的日韩成人| 一区二区欧美日韩| 韩日视频一区| 亚洲理论在线观看| 国产自产v一区二区三区c| 欧美大尺度在线观看| 欧美视频一区二区三区在线观看| 亚洲午夜视频| 正在播放亚洲一区| 一区久久精品| 亚洲午夜激情网页| 亚洲国产精品第一区二区| 亚洲国产欧美不卡在线观看| 欧美日在线观看| 久久青草欧美一区二区三区| 欧美日韩成人在线播放| 久久亚洲国产成人| 欧美日韩黄色大片| 麻豆精品精华液| 国产精品麻豆成人av电影艾秋 | 欧美性感一类影片在线播放 | 久久精品人人爽| 欧美日韩日本视频| 美国十次了思思久久精品导航| 欧美日韩综合视频| 欧美国产综合一区二区| 在线精品福利| 亚洲免费黄色| 欧美制服丝袜| 午夜天堂精品久久久久| 亚洲精品乱码久久久久久久久 | 久久这里有精品视频| 亚洲综合清纯丝袜自拍| 欧美激情视频一区二区三区不卡| 久久九九国产精品怡红院| 欧美日韩国产综合视频在线| 欧美粗暴jizz性欧美20| 国内精品国产成人| 亚洲欧美日韩综合| 亚洲综合色噜噜狠狠| 欧美日本在线| 亚洲啪啪91| 亚洲黄色毛片| 欧美gay视频| 欧美激情2020午夜免费观看| 激情视频一区| 久久人人九九| 免费在线成人av| 在线观看中文字幕不卡| 久久蜜桃资源一区二区老牛| 久久久另类综合| 黄网站色欧美视频| 久久综合影视| 欧美国产成人精品| 亚洲日本黄色| 欧美日韩国产va另类| 亚洲人体一区| 亚洲在线网站| 国产欧美一区二区三区久久人妖| 亚洲欧美国产高清| 久久国产加勒比精品无码| 国产色综合久久| 久久精品国语| 欧美国产第二页| 夜夜爽99久久国产综合精品女不卡| 欧美福利电影网| 日韩一级在线| 性久久久久久久久久久久| 国产欧美一区二区精品秋霞影院| 香蕉久久a毛片| 老司机午夜精品视频| 亚洲黄色一区| 欧美先锋影音| 欧美在线视频二区| 亚洲高清视频一区| 亚洲自拍偷拍网址| 国内成人在线| 欧美区二区三区| 亚洲女爱视频在线| 欧美v日韩v国产v| 亚洲视频国产视频| 国产主播精品| 欧美精品自拍| 欧美在线视频观看免费网站| 欧美激情中文字幕一区二区 | 一区福利视频| 欧美涩涩视频| 久久久免费av| 亚洲视频精选| 亚洲国产成人久久| 欧美中文字幕久久| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲国产91| 欧美网站在线观看| 久久久久久色| 亚洲欧美成人| 日韩视频在线一区| 欧美91福利在线观看| 亚洲免费在线播放| 亚洲精品国产精品国产自| 国产日韩精品一区二区浪潮av| 蜜臀91精品一区二区三区| 亚洲欧美日韩一区| 日韩午夜在线播放| 欧美国产日韩一区二区在线观看| 欧美在线免费播放| 亚洲特色特黄| 一二三四社区欧美黄| 亚洲国产va精品久久久不卡综合| 国产精品视频免费| 欧美日韩在线直播| 欧美风情在线| 麻豆精品视频在线观看| 久久精品国产久精国产思思| 中文亚洲字幕| 一本色道久久综合亚洲精品不| 欧美成人午夜激情在线| 久久精品综合一区| 久久国产一二区| 欧美亚洲综合另类| 香蕉久久精品日日躁夜夜躁| 亚洲一区二区黄| 一本色道久久综合亚洲精品按摩 | 国产视频观看一区| 国产精品爽爽ⅴa在线观看| 欧美日韩视频第一区| 欧美精品一二三| 欧美激情免费在线| 欧美精品网站| 欧美日韩免费一区二区三区视频| 欧美激情视频一区二区三区不卡| 麻豆av一区二区三区| 玖玖精品视频| 女女同性精品视频| 欧美激情国产日韩| 欧美极品在线视频| 欧美日韩亚洲在线| 国产精品久久亚洲7777| 国产精品婷婷| 狠狠色丁香婷综合久久| 伊人伊人伊人久久| 亚洲精品九九| 在线综合亚洲| 久久www成人_看片免费不卡| 久久久精品五月天| 免费亚洲电影| 日韩视频免费在线观看| 亚洲视频二区| 欧美中文在线视频| 欧美大片在线观看| 欧美日韩一区二区三区高清| 国产精品久久久久久久免费软件 | 欧美电影电视剧在线观看| 欧美日韩精品免费观看视一区二区 | 欧美成人中文| 欧美性感一类影片在线播放| 国产日韩精品久久久| 亚洲电影中文字幕| 亚洲天堂av在线免费| 久久精品国产亚洲精品| 亚洲高清一区二区三区| 一区二区三区福利| 久久精品免费| 欧美日韩一区二区三区在线视频| 国产精品无码专区在线观看| 亚洲电影在线| 亚洲毛片视频| 欧美怡红院视频| 欧美激情一区二区| 国产日韩一区二区三区| 亚洲人成亚洲人成在线观看| 午夜一级久久| 亚洲国产婷婷综合在线精品 | 欧美日韩国产成人在线91| 国产精品一二三四| 亚洲日本成人网| 久久久久久国产精品一区| 亚洲美女免费精品视频在线观看| 午夜视频一区| 欧美日韩在线免费观看| 在线观看视频一区二区| 香蕉久久久久久久av网站| 亚洲人成网站在线观看播放| 欧美一区二区三区四区夜夜大片 | 午夜欧美大片免费观看| 欧美日韩免费看| 亚洲国产婷婷| 久久午夜电影| 午夜精品久久久久久99热软件| 欧美乱人伦中文字幕在线| 在线色欧美三级视频| 久久久99国产精品免费|