锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩视频亚洲视频,国产精品v日韩精品,一区二区动漫http://www.shnenglu.com/Leaf/category/14535.html~~zh-cnFri, 14 Jun 2013 21:22:53 GMTFri, 14 Jun 2013 21:22:53 GMT60闀滈潰鍙嶅皠鐭╅樀鎺ㄥhttp://www.shnenglu.com/Leaf/archive/2013/06/15/201017.htmlRender DonkeyRender DonkeyFri, 14 Jun 2013 16:48:00 GMThttp://www.shnenglu.com/Leaf/archive/2013/06/15/201017.htmlhttp://www.shnenglu.com/Leaf/comments/201017.htmlhttp://www.shnenglu.com/Leaf/archive/2013/06/15/201017.html#Feedback0http://www.shnenglu.com/Leaf/comments/commentRss/201017.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/201017.html鏈榪戝叕鍙告父鎴忔鍦ㄥ噯澶囦笂綰匡紝鎵浠lasCC涔熷氨娌℃湁鐮旂┒浜?jiǎn)锛屽伓灏旀湁闂插姛澶Q屼篃鏄帺鐜?DMAX鍜孶NITY3D銆?鎰熻涓嶄細(xì)3DMAX錛屾槸涓縐嶅眬闄愩?/p>

鍥炲埌涓婚錛岃褰曚竴涓嬮暅闈㈠弽灝勭煩闃電殑鎺ㄥ銆?/p>

鍦ㄧ敤Irrlicht鍜孯TT鍋氶暅闈㈡晥鏋滅殑鏃跺欙紝鐢ㄥ埌浜?jiǎn)鍙崬畡鐭╅橖c(diǎn)?灝辨槸闇瑕佹妸鎽勭浉鏈洪暅鍍忥紝娓叉煋涓涓猂T錛岃創(chuàng)鍒伴暅闈㈡ā鍨嬩笂銆傝繖涓叾瀹炶繕綰犵粨浜?jiǎn)璁镐箙锛屽洜湄?fù)涔嬪墠鍋氭按闈㈡覆鏌撶殑鏃跺欙紝姘撮潰鏄鉤鐨勶紝寰堝ソ璁$畻鎽勭浉鏈哄湪姘撮潰浠ヤ笅鐨勪綅緗?浣嗘槸鎹㈡垚闀滈潰錛屽氨涓嶄竴鏍蜂簡(jiǎn)錛屽洜涓洪暅闈㈠彲鑳芥槸浠繪剰闈€?浜庢槸灝遍渶瑕佷竴涓氱敤鐨勫弽灝勭煩闃點(diǎn)?/p>

鍙嶅皠鐭╅樀鐨勮綆楁槸鍩轟簬騫抽潰鐨勶紝鍥犱負(fù)錛屼換浣曞弽灝勶紝閮介渶瑕佷竴涓弽灝勯潰銆?/p>

鎵浠ワ紝鎴戜滑鍏堢粰鍑哄鉤闈㈣〃紺?Plane(nx,ny,nz,d); 鍏朵腑(nx,ny,nz)宸茬粡鍗曚綅鍖栥?/p>

鐒跺悗錛屾垜浠亣璁劇┖闂翠腑鏈変換鎰忎竴鐐筆(x,y,z,1)

璁捐繖涓偣P浠lane涓哄弽灝勯潰鐨勯暅鍍忕偣涓篜1(x1,y1,z1,w)銆?/p>

 

錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?/p>

鏍規(guī)嵁瀹氱悊錛屾垜浠煡閬擄紝 鑻ヤ袱涓偣浠ユ煇涓鐐逛負(fù)闀滃儚錛屽垯涓や釜鐐圭殑鍧愭爣涔嬪拰闄や互2錛屽氨鍒氬ソ鏄腑鐐廣?

榪欎釜鐞嗚鎴戜滑鐢ㄥ埌榪欓噷鐨勮瘽錛?閭h繖涓腑鐐瑰氨鍒氬ソ鏄鉤闈笂鐨勪竴涓偣銆?騫抽潰涓婄殑榪欎釜鐐瑰氨鏄?P(x,y,z,1) - (nx,ny,nz,0)*D .  鍏朵腑D灝辨槸鐐筆鍒板鉤闈㈢殑璺濈

鑰孌=Plane dot P = (x*nx+y*ny+z*nz+d);

鐢變笂闈㈢殑鎻忚堪錛屾垜浠┈涓婃兂鍒幫紝閭d箞瑕佹眰鐐筆1鐨勮瘽錛屽氨鏄繖鏍?nbsp;

(P+P1)/2 = P(x,y,z,1) - (nx,ny,nz,0)*D

=> P1 = P(x,y,z,1) - 2(nx,ny,nz,0)*D

=>P1 = P(x,y,z,1) - 2(nx,ny,nz,0)*(x*nx+y*ny+z*nz+d)

 

鎹㈡垚鐭╅樀褰㈠紡鍒欎負(fù)

                            锝?-2*nx*nx   -2*nx*ny         -2*nx*nz         0  |

                             | -2*ny*nx     1 - 2*ny*ny     -2*ny*nz         0  |

P1 = {x,y,z,1}   x   | -2*nz*nx     -2*nz*ny         1-2*nz*nz        0  |

                             | -2*d*nx      -2*d*ny           -2*d*nz           1  |

 

澶у姛鍛婃垚

btw:榪欐槸琛屼富鐭╅樀琛ㄧず娉?/p>

Render Donkey 2013-06-15 00:48 鍙戣〃璇勮
]]>
涓璺闆ㄨ蛋榪囨潵錛氶偅浜涙垜浜插瘑鎺ヨЕ榪囩殑欏圭洰http://www.shnenglu.com/Leaf/archive/2013/04/11/199332.htmlRender DonkeyRender DonkeyWed, 10 Apr 2013 17:51:00 GMThttp://www.shnenglu.com/Leaf/archive/2013/04/11/199332.htmlhttp://www.shnenglu.com/Leaf/comments/199332.htmlhttp://www.shnenglu.com/Leaf/archive/2013/04/11/199332.html#Feedback2http://www.shnenglu.com/Leaf/comments/commentRss/199332.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/199332.html涓鏃墮棿錛屽張涓嶇煡閬撹浠涔堜簡(jiǎn)銆?璐村嚑寮犺繖涓璺蛋鏉ワ紝鍜屾垜鏈夊叧鐨勯」鐩埅鍥懼惂銆?nbsp; 鏃墮棿鏄敱鏂板埌鏃?/p>

 

鐩墠鍦ㄦ鐮斿彂涓殑欏圭洰 銆婂笣鍥芥潵浜?jiǎn)銆?/p>

http://v.ku6.com/show/1zMrlsOx0nwpQw3JMoNAjw...html

image

image

 

緇х埞濡堟誨姩鍛樹箣鍚庣殑絎簩涓駭鍝?銆婂ぇ璇濅慨浠欍?錛堝ぉ鍦板姭WEB)

http://xx.sjgame.cn/

image

image

 

澶勫コ浣?銆婄埞濡堟誨姩鍛樸?鍝庯紝絎竴嬈★紝緇欎簡(jiǎn)瀹冦?

http://www.87kd.com/game/dmzdy/

 

鍏徃璁╂垜浠涔?fàn)瀹炴垬缁忛獙锛屼复鏃跺弬涓庝簡(jiǎn)涓や釜鏈堢殑銆婁簲铏庝笂灝嗐?/p>

http://whsj.sjgame.cn/

 

絎竴涓狥ALSH鎶鏈疍EMO KINGDOM RUSH

http://www.shnenglu.com/Leaf/archive/2013/02/22/198012.html

image

 

HALO 3D寮曟搸DEMO婕旂ず

http://www.shnenglu.com/Leaf/archive/2013/02/22/198011.html

wps_clip_image-26198

 

2閮ㄧ殑銆婂ぉ鍦板姭銆?/p>

http://tdj.sjgame.cn/main.html

 

鍦ㄦ父鎴忓紑鍙戠殑閬撹礬涓婏紝鎴戞兂鎴戜緷鐒朵細(xì)緇х畫鍔姏銆佸鏂椼?鐢熺敓涓嶆伅錛屼笉紱諱笉寮冦傘傘傘?/p>

Render Donkey 2013-04-11 01:51 鍙戣〃璇勮
]]>
irrlicht寮曟搸錛氶暅瀛愭晥鏋?/title><link>http://www.shnenglu.com/Leaf/archive/2013/04/05/199111.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Thu, 04 Apr 2013 16:53:00 GMT</pubDate><guid>http://www.shnenglu.com/Leaf/archive/2013/04/05/199111.html</guid><wfw:comment>http://www.shnenglu.com/Leaf/comments/199111.html</wfw:comment><comments>http://www.shnenglu.com/Leaf/archive/2013/04/05/199111.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Leaf/comments/commentRss/199111.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Leaf/services/trackbacks/199111.html</trackback:ping><description><![CDATA[<p> </p> <p>鏈榪戝湪鐢╥rrlicht鍋氫竴涓?D璇曡。闂寸殑灝忛」鐩紝涓轟簡(jiǎn)緇欓」鐩娣葷偣鑺辨牱錛屼簬鏄兂瀹炵幇涓闈㈤暅瀛愩?/p> <p>鎴戣寰桪3D榫欎功涓婃湁涓涓嬌鐢ㄦā鏉跨紦鍐插尯瀹炵幇鐨勪緥瀛愩傜綉涓婁篃鏈塐PENGL瀹炵幇鐨勪緥瀛愩?浣嗚繖涓嬈★紝鎴戞兂鐢╥rrlicht鐨凴TT瀹炵幇涓闈㈤暅瀛愭晥鏋溿?/p> <p>鍏跺疄鍘熺悊鍜屾按闈㈠弽灝勫師鐞嗘槸涓鏍風(fēng)殑錛?鍙槸娌℃湁鍔犳壈鍔ㄨ屽凡</p> <p> </p> <p>絎竴姝ワ細(xì)娓叉煋鍙嶅皠璐村浘</p> <blockquote> <p>鍙嶅皠璐村浘鐨勬覆鏌擄紝鍏跺疄灝辨槸灝嗘憚鐩告満閫氳繃闀滈潰闀滃儚鍗沖彲錛宨rrlicht涓垜鎵句簡(jiǎn)鍗婂ぉ錛屾病鏈夊彂鐜伴暅鍍忕煩闃電殑綆楁硶錛屽掓槸鍦ㄧ綉涓婃悳鍒頒簡(jiǎn)涓涓?寰堟槸涓嶉敊銆?/p></blockquote> <p>鍚屾椂錛屼篃緲婚槄浜?jiǎn)涓涓嬪厛鍓嶅叕鍙稿紩鎿庨」鐩殑浠g爜錛屽彂鐜板叾瀹炲氨鏄偅涓叕寮忋?鏈夊叴瓚g殑鏈嬪弸鍙互鍙傜湅榪欓噷</p> <p> </p> <p><a title="http://www.cnblogs.com/glshader/archive/2010/11/02/1866971.html" >http://www.cnblogs.com/glshader/archive/2010/11/02/1866971.html</a></p> <p> </p> <p>閫氳繃榪欎釜闀滈潰鍙嶅皠鐭╅樀錛屾垜浠彲浠ュ皢鎽勭浉鏈洪暅鍍忥紝 鐩稿綋浜庢槸浠庨暅瀛愰噷鍚戝鐪嬶紝娓叉煋鍑轟竴涓笘鐣屻?鍦ㄦ覆鏌撶殑鏃跺欙紝瑕佽寰楄緗鍓潰銆?鍦ㄦ垜鐨勬祴璇曚腑鎴戞病鏈夎緗?/p> <p>絎簩姝ワ細(xì)閲嶆柊娓叉煋涓栫晫</p> <blockquote> <p>閲嶆柊娓叉煋涓栫晫鐨勬椂鍊欙紝闀滃瓙闇瑕佷竴涓壒孌婄殑綰圭悊鏉ヨ繘琛屽弽灝勮創(chuàng)鍥俱傦紙闀滃儚鎽勭浉鏈虹┖闂寸殑鎶曞獎(jiǎng)綰圭悊鏄犲皠錛夈?榪欎釜璐村浘鏂瑰紡錛屽氨鏄寚蹇界暐闀滃瓙鐨勭汗鐞嗗潗鏍囷紝鑰岄氳繃</p></blockquote> <p>闀滃儚鎽勭浉鏈烘潵璁$畻鍑烘姇褰卞潗鏍囷紝鐒跺悗璐村湪闀滃瓙涓娿傚湪鎴戠殑嫻嬭瘯涓紝鏄敤SHADER鏉ュ疄鐜扮殑銆?涓洪暅瀛愬仛浜?jiǎn)涓涓壒孌婄殑綰圭悊銆?/p> <p> </p> <p>涓嬮潰錛屾垜璐翠竴涓婼HADER錛屽緢綆鍗曪紝濡傛灉瀹炲湪涓嶆竻妤氱殑錛屽彲浠ュ弬鑰冧竴浜涙姇褰辯汗鐞嗙浉鍏崇殑璧勬枡銆?/p> <p> </p> <p>欏剁偣鐫鑹插櫒浠g爜 HLSL</p> <p>float4x4    WorldViewProj;<br>float4x4    MirrorWorldViewProj;<br>struct VS_OUTPUT<br>{<br>    float4 position    :POSITION; </p> <p>    float3 uv: TEXCOORD0;<br>}; </p> <p>struct VS_INPUT<br>{<br>    float4 position        : POSITION;<br>    float4 color        : COLOR0;<br>    float2 texCoord0    : TEXCOORD0;<br>}; <p>VS_OUTPUT main(VS_INPUT input)<br>{<br>    VS_OUTPUT output; <br>    float4 pos = mul(input.position, WorldViewProj);<br>    output.position = pos;</p> <p>    //璁$畻鍙嶅皠綰圭悊鐨勫潗鏍?</p> <p>    pos = mul(input.position,MirrorWorldViewProj);<br>    output.uv.x = 0.5 * (pos.w + pos.x);<br>    output.uv.y = 0.5 * (pos.w - pos.y);<br>    output.uv.z = pos.w;<br>    return output;<br>} <p>  <p>鍍忕礌鐫鑹插櫒浠g爜 HLSL <p>sampler2D colorMap;<br>struct PS_OUTPUT<br>{<br>    float4 color : COLOR0;   <br>}; <p>struct PS_INPUT<br>{<br>    float4 position    : POSITION;<br>    float3 uv: TEXCOORD0;<br>};<br>PS_OUTPUT main( PS_INPUT input )<br>{ <br>    PS_OUTPUT output;<br>    float2 uv = saturate(input.uv.xy / input.uv.z);<br>    output.color = tex2D(colorMap,uv);<br>    return output;<br>} <p> </p> <p> </p> <p>RTT鐩稿叧鐨勬搷浣滐紝irrlicht鐨凴enderToTexture宸茬粡寰堟槑鐧戒簡(jiǎn)錛屽啀姝や笉鍦ㄦ暦榪般?/p> <p> </p> <p>涓婂浘錛屾敹宸?/p> <p> </p> <p><a href="http://www.shnenglu.com/images/cppblog_com/Leaf/WindowsLiveWriter/irrlicht_C6B/2000_2.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="2000" border="0" alt="2000" src="http://www.shnenglu.com/images/cppblog_com/Leaf/WindowsLiveWriter/irrlicht_C6B/2000_thumb.jpg" width="539" height="405"></a></p><img src ="http://www.shnenglu.com/Leaf/aggbug/199111.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2013-04-05 00:53 <a href="http://www.shnenglu.com/Leaf/archive/2013/04/05/199111.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>irrlicht寮曟搸錛氱湡瀹炵殑姘撮潰娓叉煋http://www.shnenglu.com/Leaf/archive/2013/04/04/199101.htmlRender DonkeyRender DonkeyThu, 04 Apr 2013 10:16:00 GMThttp://www.shnenglu.com/Leaf/archive/2013/04/04/199101.htmlhttp://www.shnenglu.com/Leaf/comments/199101.htmlhttp://www.shnenglu.com/Leaf/archive/2013/04/04/199101.html#Feedback0http://www.shnenglu.com/Leaf/comments/commentRss/199101.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/199101.html鍏堜笂鍥?/p>

image

 

image

鏈潵璇存槸鍋氶暅瀛愭晥鏋滅殑錛岀粨鏋滄墜宸ヨ綆楃殑闀滈潰鍙嶅皠鐭╅樀搴旂敤鍦╥rrlicht鐩告満涓婄殑鏃跺欙紝濮嬬粓鏃犳硶鍑虹幇鏁堟灉錛屽彧鑳藉幓緗戜笂鎼滅儲(chǔ)

鍦╥rrlicht official wiki涓婂彂鐜頒簡(jiǎn)榪欎釜鎵╁睍鐨刉aterNode錛屼笅杞戒笅鏉ワ紝鏀逛簡(jiǎn)鐐笲UG錛屾暣鍚堣繘浜?jiǎn)Terrain Demo閲岋紝 灝辨槸涓婂浘鐨勬晥鏋溿?/p>

鍦ㄦ垜鐨勬満鍣ㄤ笂,HLSL鐗堟湰鏄病鏈夐棶棰樼殑錛孏L鐗堟湰璨屼技RTT鏈夌偣闂銆?/p>

 

鐐瑰嚮姝ゅ涓嬭澆婧愪唬鐮?/a>



Render Donkey 2013-04-04 18:16 鍙戣〃璇勮
]]>
irrlicht寮曟搸錛氱‖浠惰挋鐨楠煎姩鐢?/title><link>http://www.shnenglu.com/Leaf/archive/2013/03/26/198823.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Mon, 25 Mar 2013 16:08:00 GMT</pubDate><guid>http://www.shnenglu.com/Leaf/archive/2013/03/26/198823.html</guid><wfw:comment>http://www.shnenglu.com/Leaf/comments/198823.html</wfw:comment><comments>http://www.shnenglu.com/Leaf/archive/2013/03/26/198823.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Leaf/comments/commentRss/198823.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Leaf/services/trackbacks/198823.html</trackback:ping><description><![CDATA[<p>榪欎釜涓滆タ寰堥『鍒╋紝浠呯敤浜?jiǎn)鍗姙畯鏃稙鎵惧堫C簡(jiǎn)鏂規(guī)硶錛屾渶搴旇鎰熻阿鐨勮繕鏄疭uper TuxKart(綆縐癝TK錛屼笅闈㈠氨閮界敤榪欎笁瀛楁瘝浜?. 濡傛灉涓嶆槑鐧絊TK錛屽悓鏃跺張瀵瑰畠鎰熷叴瓚g殑绔ラ瀷錛屽彲浠ヨ闂繖閲?/p> <p><a title="http://supertuxkart.sourceforge.net/" >http://supertuxkart.sourceforge.net/</a></p> <p>鐢變簬澧欑殑鍘熷洜錛岄渶瑕佸悇浣嶆惌姊瓙銆?/p> <p> </p> <p>涓婂懆鏈紝鍦ㄥ紕鎹㈣鐨勬椂鍊欙紝鍙戠幇irrlicht寮曟搸鏈韓鏄笉鏀寔紜歡钂欑毊鐨勶紝澶氬皯浠や漢鏈変簺澶辨湜銆?蹇?jī)閲尀兏鐩村鎬濈潃鎬庝箞鎵╁睍涓涓嬶紝灝嗗畠寮勫嚭鏉ャ?/p> <p>鍊煎緱璇存槑鐨勬槸STK瀵筰rrlicht寮曟搸鐨勭敤娉曟槸寰堢畝鍗曠殑錛屽熀鏈笂鍙互璇存槸瑁哥敤錛屽茍鏈湪irrlicht鎺ュ彛涓婂仛淇敼銆?鑰屾槸瀵瑰榪涜浜?jiǎn)涓浜涘繀瑕佺殑鎵╁睍銆?/p> <p>褰撶劧錛孲TK涔熷澶栧紑鏀句簡(jiǎn)涓涓猧rrlicht.dll錛岃鏄慨鏀逛簡(jiǎn)鍏朵腑鐨凚UG銆?浣嗙洿鎺ヤ嬌鐢╥rrlicht鏄彲浠ョ殑銆?/p> <p> </p> <p>搴熻瘽涓嶅璇達(dá)紝鏉ヨ璇村浣曚笉淇敼irrlicht涓琛屼唬鐮侊紝閫氳繃澶栭儴鎵╁睍鏉ュ疄鐜扮‖浠墮楠煎姩鐢誨惂</p> <p> </p> <p>棣栧厛錛岃兘澶熶嬌鎴戜滑涓嶄慨鏀筰rrlicht浠g爜鐨勫師鍥狅紝鏄洜涓篒SkinnedMesh鎻愪緵浜?jiǎn)涓涓猻etHardwareSkinning鎺ュ彛錛岄粯璁や負(fù)false.</p> <p>铏界劧榪欎釜鎺ュ彛鐨勮鏄庢槸"(This feature is not implemented in irrlicht yet)”錛屼絾騫朵笉浠h〃錛岃緗笌涓嶈緗棤宸埆銆?</p> <p>鏌ョ湅浠g爜鍙互鍙戠幇錛屽綋浣犺緗簡(jiǎn)榪欎釜涓簍rue浠ュ悗錛宨rrlicht灝卞畬鍏ㄤ笉綆′綘鐨勫姩鐢諱簡(jiǎn)銆?鎰忔濆氨鏄紝瑕佹槸浣犻潪瑕佽鎴戝共鎴戜笉騫蹭笉浜?jiǎn)鐨勪簨锛岄偅灏卞彧鏈夋?zhèn)ㄥ彟璇烽珮鏄庝簡(jiǎn)銆?/p> <p>irrlicht榪濩PU璁$畻閮戒笉浼?xì)鍙備笌銆?榪欐濂借鎴戜滑鏈夋満鍙箻錛屽畬鍏ㄧ敤GPU鎺ョ銆?/p> <p> </p> <p>鑰岃璁╀竴涓《鐐瑰弬涓庨楠艱綆楋紝閭i楠肩儲(chǔ)寮曞垯鏄皯涓嶄簡(jiǎn)鐨勩傛墍浠ワ紝鎴戜滑闇瑕佹兂鍔炴硶璁╅《鐐規(guī)暟鎹兘澶熷皢楠ㄩ绱㈠紩浠e叆SHADER涓?/p> <p>鍦⊿TK涓敤浜?jiǎn)涓縐嶅閥濡欑殑鏂規(guī)硶錛?灝辨槸浣跨敤浜?jiǎn)椤剁偣鐨勯鑹叉暟鎹Q?铏界劧榪欐牱涓鏉ワ紝欏剁偣棰滆壊灝辯敤涓嶄簡(jiǎn)浜?jiǎn)銆?浣嗗湪妯″瀷娓叉煋鏃訛紝欏剁偣棰滆壊寰堝皯琚嬌鐢ㄥ埌鐨勩?涔熷氨鏄錛岄《鐐歸鑹插湪STK鐨勫姩鐢繪ā鍨嬩腑錛岃鐢ㄤ綔浜?jiǎn)楠ㄩ鐑?chǔ)寮曘?/p> <p>鍒濆鍖栭楠肩儲(chǔ)寮曠殑鏂規(guī)硶寰堢畝鍗曪紝鐢ㄤ笅闈㈢殑浠g爜閬嶅巻鍗沖彲銆?/p> <p>璁撅細(xì)鎴戜滑鏈変竴涓楠煎姩鐢繪ā鍨嬫槸 ISkinnedMesh* pSkinnedMesh = …</p> <p>閭d箞錛氬垵濮嬪寲浠g爜濡備笅</p> <p>for(u32 i = 0;i < pSkinnedMesh ->getMeshBuffers().size();++i)<br>{<br>    for(u32 g = 0;g < pSkinnedMesh ->getMeshBuffers()[i]->getVertexCount();++g)<br>    {<br>        pSkinnedMesh ->getMeshBuffers()[i]->getVertex(g)->Color = video::SColor(0,0,0,0);<br>    }<br>}</p> <p>//鍒濆鍖栧畬姣曚互鍚庯紝灝辨槸闇瑕佺湡姝g殑绱㈠紩璧嬪間簡(jiǎn)錛岄氳繃浠ヤ笅浠g爜鍙互瀹屾垚</p> <p>const core::array<scene::ISkinnedMesh::SJoint*>& joints = pSkinnedMesh ->getAllJoints();<br>for(u32 i = 0;i < joints.size();++i)<br>{<br>    const core::array<scene::ISkinnedMesh::SWeight>&    weights = joints[i]->Weights;<br>    for(u32 j = 0;j < weights.size();++j)<br>    {<br>        int buffId = weights[j].buffer_id; <p>        int vertexId = pSkinedMesh->getAllJoints()[i]->Weights[j].vertex_id;<br>        video::SColor* vColor = &pSkinedMesh->getMeshBuffers()[buffId]->getVertex(vertexId)->Color; <p>        if(vColor->getRed() == 0)<br>            vColor->setRed(i + 1);<br>        else if(vColor->getGreen() == 0)<br>            vColor->setGreen(i + 1);<br>        else if(vColor->getBlue() == 0)<br>            vColor->setBlue(i + 1);<br>        else if(vColor->getAlpha() == 0)<br>            vColor->setAlpha(i + 1);<br>    }<br>} <p> </p> <p>//緇忚繃浠ヤ笂涓や釜姝ラ錛岄《鐐規(guī)暟鎹敼閫犲畬鎴愩?鍊煎緱娉ㄦ剰鐨勬槸錛?鍦ㄨ繖閲岋紝 绱㈠紩 0 鏄璁や負(fù)鏄棤鏁堢殑</p> <p> </p> <p>鐒跺悗錛屾垜浠潵鍒涘緩涓涓猄HADER浣滀負(fù)娓叉煋銆?/p> <p>鍋囪 鎴戜滑灝嗚繖涓猵SkinnedMesh緇戝畾浜?jiǎn)鍒颁簡(jiǎn)涓涓狪AnimatedSceneNode* node 涓娿?/p> <p>閭o紝鎴戜滑涓鴻繖涓粨鐐瑰垱寤轟竴涓潗璐?鍦ㄥ垱寤烘潗璐ㄥ墠錛屾垜浠渶瑕佸噯澶囦竴涓猄HADER鍥炶皟銆?SHADER鍥炶皟?yōu)鍍忎笅闈竴鏍峰氨鍙互浜?jiǎn)銆?/p> <p>class HWSkinCallBack:public video::IShaderConstantSetCallBack<br>{<br>    scene::IAnimatedMeshSceneNode* m_pNode;<br>public:<br>    HWSkinCallBack(scene::IAnimatedMeshSceneNode* node):m_pNode(node)<br>    { <p>    }<br>    virtual void OnSetConstants(video::IMaterialRendererServices* services,<br>        s32 userData)<br>    {<br>        scene::ISkinnedMesh* mesh = (scene::ISkinnedMesh*)m_pNode->getMesh();<br>        f32 joints_data[55 * 16];<br>        int copyIncrement = 0; <p>        const core::array<scene::ISkinnedMesh::SJoint*> joints = mesh->getAllJoints();<br>        for(u32 i = 0;i < joints.size();++i)<br>        {<br>            core::matrix4 joint_vertex_pull(core::matrix4::EM4CONST_NOTHING);<br>            joint_vertex_pull.setbyproduct(joints[i]->GlobalAnimatedMatrix, joints[i]->GlobalInversedMatrix); <p>            f32* pointer = joints_data + copyIncrement;<br>            for(int i = 0;i < 16;++i)<br>                *pointer++ = joint_vertex_pull[i]; <p>            copyIncrement += 16;<br>        } <p>        services->setVertexShaderConstant("JointTransform", joints_data, mesh->getAllJoints().size() * 16);<br>    }<br>}; <p> </p> <p>濂戒簡(jiǎn)錛岀幇鍦ㄦ垜浠潵鍒涘緩涓涓潗璐?/p> <p>s32 hwskm = gpu->addHighLevelShaderMaterialFromFiles(<br>        "../../skinning.vert","main",video::EVST_VS_2_0,<br>        "","main",video::EPST_PS_2_0,&hwc,video::EMT_SOLID);</p> <p>//鐢ㄦ柊鍒涘緩鍑烘潵鐨勬潗璐ㄨ祴鍊肩粰榪欎釜緇撶偣</p> <p>node->setMaterialType((video::E_MATERIAL_TYPE)hwskm );</p> <p> </p> <p>//鍒版錛岃緗畬姣曘?/p> <p> //鏈鍚庯紝灝辨槸skinning.vert鏈韓鐨勫唴瀹逛簡(jiǎn)銆?璐村嚭鏉ュ嵆鍙紝娌℃湁澶鎶宸э紝灝辨槸涓涓櫘閫氱殑钂欑毊銆?/p> <p>// skinning.vert <p>#define MAX_JOINT_NUM 36<br>#define MAX_LIGHT_NUM 8 <p>uniform mat4 JointTransform[MAX_JOINT_NUM]; <p>void main() <br>{<br>    int index;<br>    vec4 ecPos;<br>    vec3 normal;<br>    vec3 light_dir;<br>    float n_dot_l;<br>    float dist; <p>    mat4 ModelTransform = gl_ModelViewProjectionMatrix;<br>    index = int(gl_Color.r * 255.99);<br>    mat4 vertTran = JointTransform[index - 1];<br>    index = int(gl_Color.g * 255.99);<br>    if(index > 0)<br>        vertTran += JointTransform[index - 1]; <p>    index = int(gl_Color.b * 255.99);<br>    if(index > 0)<br>        vertTran += JointTransform[index - 1];<br>    index = int(gl_Color.a * 255.99);<br>    if(index > 0)<br>        vertTran += JointTransform[index - 1];<br>    ecPos = gl_ModelViewMatrix * vertTran * gl_Vertex;<br>    normal = normalize(gl_NormalMatrix * mat3(vertTran) * gl_Normal);<br>    gl_FrontColor = vec4(0,0,0,0);<br>    for(int i = 0;i < MAX_LIGHT_NUM;i++)<br>    {<br>        light_dir = vec3(gl_LightSource[i].position-ecPos);<br>        n_dot_l = max(dot(normal, normalize(light_dir)), 0.0);<br>        dist = length(light_dir);<br>        n_dot_l *= 1.0 / (gl_LightSource[0].constantAttenuation + gl_LightSource[0].linearAttenuation * dist);<br>        gl_FrontColor += gl_LightSource[i].diffuse * n_dot_l;<br>    }<br>    gl_FrontColor = clamp(gl_FrontColor,0.3,1.0); <p>    ModelTransform *= vertTran;<br>    gl_Position = ModelTransform * gl_Vertex;<br>    gl_TexCoord[0] = gl_MultiTexCoord0;<br>    gl_TexCoord[1] = gl_MultiTexCoord1;<br>    /* <br>    // Reflections.<br>    vec3 r = reflect( ecPos.xyz , normal );<br>    float m = 2.0 * sqrt( r.x*r.x + r.y*r.y + (r.z+1.0)*(r.z+1.0) );<br>    gl_TexCoord[1].s = r.x/m + 0.5;<br>    gl_TexCoord[1].t = r.y/m + 0.5;<br>    */<br>} <p> </p> <p> </p> <p>//娉細(xì)榪欐槸GLSL 2.0錛?鍦ㄧ敤IRR鍋氭祴璇曠殑鏃跺欙紝瑕侀塆L椹卞姩鏂瑰紡銆?/p> <p> </p> <p>榪樻槸涓婁釜鍥懼惂錛屼笉涓婂浘鎰熻娌℃湁鐪熷儚銆?铏界劧鍥劇湅涓嶅嚭鏉ヤ粈涔堝姩浣?/p> <p><a href="http://www.shnenglu.com/images/cppblog_com/Leaf/WindowsLiveWriter/irrlicht_14DD5/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/Leaf/WindowsLiveWriter/irrlicht_14DD5/image_thumb.png" width="526" height="410"></a> </p> <p>涓轟簡(jiǎn)璇存槑瀹冪湡鐨勫湪鍔紝涓嶅緱涓嶄笂絎簩寮犮?</p> <p> </p> <p><a href="http://www.shnenglu.com/images/cppblog_com/Leaf/WindowsLiveWriter/irrlicht_14DD5/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/Leaf/WindowsLiveWriter/irrlicht_14DD5/image_thumb_1.png" width="523" height="417"></a> </p> <p> </p> <p>鍦ㄦ錛屽崄鍒嗘劅璋uper Tux Kart. 鎻愪緵浜?jiǎn)涓涓涔?fàn)鍜屾墿灞昳rrlicht鐨勬鏍?</p> <img src ="http://www.shnenglu.com/Leaf/aggbug/198823.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2013-03-26 00:08 <a href="http://www.shnenglu.com/Leaf/archive/2013/03/26/198823.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>irrlicht寮曟搸錛氬疄鐜板ぉ榫欏叓閮ㄧ殑RPG瑙掕壊鎹㈣http://www.shnenglu.com/Leaf/archive/2013/03/24/198762.htmlRender DonkeyRender DonkeySat, 23 Mar 2013 20:08:00 GMThttp://www.shnenglu.com/Leaf/archive/2013/03/24/198762.htmlhttp://www.shnenglu.com/Leaf/comments/198762.htmlhttp://www.shnenglu.com/Leaf/archive/2013/03/24/198762.html#Feedback0http://www.shnenglu.com/Leaf/comments/commentRss/198762.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/198762.html鐪嬩簡(jiǎn)鐪嬫椂闂達(dá)紝宸茬粡3鐐硅繃浜?jiǎn)锛尳H佺劧鎯沖啓鐐逛粈涔堬紝鍗村張涓嶇煡浠庝綍璇磋搗銆?/p>

閭e氨浠庝粖澶╄繖涓敤irrlicht鍋氬ぉ榫欏叓閮ㄧ殑妯″瀷鎹㈣璇磋搗鍚с?/p>

 

涔熶笉鐭ラ亾鏄負(fù)浠涔堬紝鏈榪戝張鎹i紦璧蜂簡(jiǎn)OGRE鍜宨rrlicht. 騫朵笖錛屾繪兂鐢╥rrlicht瀹炵幇涓浜汷GRE涓殑涓滆タ銆?/p>

褰撶劧錛岃繖涓嶆槸鍟嗕笟欏圭洰錛屼篃娌℃湁鍟嗕笟鐩殑錛岀函灞炶泲鐤艱屽凡銆?/p>

 

涓鍒囪鍔ㄧ殑鐢辨潵錛岄兘鏉ヨ嚜浜巚czh閭eぉ鏅氫笂鐨勪婦鍔ㄣ?/p>

璁板緱鏈変竴澶╂櫄涓婂湪緹ら噷鑱婂ぉ錛屽ぇ浼欏氨縐拌禐鍚勪綅鑿?qiáng)鑻f槸澶氫箞鐨勫帀瀹炽?/p>

鏈鍚巚c鍙戜簡(jiǎn)涓涓嚜宸辯殑妗岄潰鎴浘璇達(dá)細(xì)璁╀綘浠湅鐪嬭強(qiáng)鑻f槸濡備綍緇冩垚鐨勶紙榪欎笉鏄師璇濓紝鍜岃瘽鐨勫瓧鐪兼湁鍑哄叆錛屽湪姝や笉鎯寵礋浠諱綍璐d換錛屽鏋滅湡鏈夋兂鐪嬬殑錛屽幓緲葷兢鐨勮亰澶╄褰曪級(jí)

閭eぉ鏅氫笂錛屾垜鎯充簡(jiǎn)寰堜箙銆傛兂鎯寵嚜宸辮嚜浠庤漿鍋氶〉娓鎬互鍚庯紝鏄浣曡櫄娓″厜闃寸殑銆?/p>

緇堜簬蹇嶄笉浣忎簡(jiǎn)錛岀炕寮浜?jiǎn)鑷忿q殑縐誨姩紜洏錛岀湅鐪嬭嚜宸辨浘緇忓仛榪囩殑灝忎笢瑗褲?0%鏄緩濂藉伐紼嬪氨娌$悊浜?jiǎn)銆?/p>

榪欐墠鏄庣櫧錛屾垜鑺卞湪鎬濊冧笂鐨勬椂闂磋繙榪滃ぇ浜庝簡(jiǎn)琛屽姩銆?浜庢槸錛屾垜鍐沖畾鏀瑰彉鑷繁錛屾壘鍥為偅涓湡鐨勬垜銆?/p>

 

3D娓告垙鏄垜鐨勭湡鐖憋紝 鐪熺埍鍒板氨綆楃敾闈㈠樊涓鐐癸紝鍙鏄?D錛屾垜涔熶細(xì)寰堝枩嬈€?/p>

浜庢槸錛屾垜瑙夊緱鑷繁榪樻槸搴旇鎺ョ潃鍏堝墠鐨勮礬璧頒笅鍘匯?浠涔堟湇鍔″櫒錛屼粈涔?AS3. 閮芥槸嫻簯錛?涓嶅枩嬈㈠氨鏄笉鍠滄銆?/p>

縐佷笅鍙堝紑濮嬬爺絀秈rrlicht浜?jiǎn)銆?/p>

鐚涘湴涓鍙戠幇錛岃嚜宸辨槸澶氫箞鐨勬悶絎戯紝 浠?9騫村埌11騫達(dá)紝涓鐩村湪鍋氬紩鎿庡紑鍙戯紝 涔熺炕榪噄rrlicht鍜宱gre鏃犳暟閬嶃?鍗翠粠鏉ュ氨娌℃湁鍐欏畬榪囦竴涓畬鏁寸殑DEMO銆?/p>

榪炲姛鑳芥祴璇曠敤渚嬮兘娌℃湁鍐欒繃銆傜獊鐒惰寰椾箣鍓嶇殑涓浜涜璁′技涔庢湁浜涜劚紱諱簡(jiǎn)瀹為檯銆傛病鏈夌湡姝d嬌鐢ㄨ繃錛屽張鎬庣煡濡備綍鏄ソ錛屽浣曟槸鍧忓憿錛?/p>

 

榪欎竴嬈℃槸鐪熺殑鐜﹊rrlicht浜?jiǎn)锛?涓棿涔熺籂緇撹繃鏄笉鏄疧GRE鏇撮傚悎銆?浣嗗湪鐩墠榪欎釜鏃墮棿鏈夐檺鐨勭┖闂翠笅錛屾垜鏇存効鎰忕帺irrlicht.灝忓閥錛岃交渚褲?褰撶劧錛屾剰鍛崇潃鏇村涓滆タ瑕佽嚜宸卞疄鐜般?涓嶈繃瀵逛簬涓涓唬鐮佹帶鏉ヨ錛屼篃鍙嶈屾洿鑷緱鍏朵箰銆?姝eソ鍙互鍦ㄧ煭璺殑鏃跺欙紝鍘誨弬鑰冧竴涓嬪叾瀹冨紩鎿庯紝鐢ㄦ潵鎵╁厖irrlicht.

鎴戣鍋氱殑涓嶆槸鎶奿rrlicht鏁村緱鐗汢錛岃屾槸鎯寵嚜宸卞紕寮勶紝鍔犱笂縐誨姩騫沖彴鐨勫礇璧鳳紝鎴戣寰梚rrlicht鏇村姞閫傚悎鍚с?鎹gameloft涔熸湁浣跨敤錛堜粎鏄嵁璇達(dá)級(jí)銆?/p>

 

鍙兘寰堝鍏勫紵浼?xì)璇存垜杩欒鐨勪笢瑗垮Q屽叾瀹炲氨鏄竴鍧ㄥ睅浜?jiǎn)銆?涓嶈繃錛屾垜瑙夊緱鍐嶅潖鐨勮瘎璁猴紝涔熻〃紺轟竴縐嶅叧娉ㄣ?鎵硅瘎濂借繃浜庢棤瑙嗗晩~~~~

----------------------------------------------------------涓嬮潰璇磋鎴戦亣涓婄殑綰犵粨------------------------------------------------

綰犵粨1:鎹㈣闇瑕佸満鏅妭鐐歸厤鍚?/strong>

  鍦╥rrlicht涓紝騫舵病鏈夋彁渚涙櫘閫氬紩鎿庝腑鐨剆ubmesh鎴栬卋odypart榪欑涓滆タ錛岀敤浜庣洿鎺ユ敮鎸佹崲瑁呫?鍦╥rrlicht涓紝濡傛灉鎯寵鎹㈣錛屾渶鐩存帴鐨勬柟娉曞氨鏄緷璧栦簬鍦烘櫙緇撶偣

姣斿,鍦ㄦ垜鐨勭ず渚嬩腑錛屽彲浠ユ洿鎹㈠ご鍙戯紝甯藉瓙錛岃。鏈嶏紝鎶よ厱錛岄澊瀛愶紝闈㈠銆?閭e氨闇瑕?涓満鏅妭鐐癸紝1涓綔涓烘牴鑺傜偣錛岀敤浜庢帶鍒舵暣涓鑹茬殑涓栫晫鍧愭爣錛屽鉤縐伙紝緙╂斁錛屾棆杞瓑灞炴с傚彟澶?涓満鏅妭鐐瑰垯鍒嗗埆緇戞湁鍚勪釜閮ㄤ歡鐨勬ā鍨?/p>

璐翠竴涓嬫垜鐨勮鑹茬被鐨勪唬鐮侊紝琛屾暟涓嶅

class CCharactor
{
    IrrlichtDevice* m_pDevice;
    IAnimatedMeshSceneNode* m_pBodyParts[eCBPT_Num];
    ISceneNode* m_pRoot;
public:
    CCharactor(IrrlichtDevice* pDevice)
        :m_pDevice(pDevice)
    {
        memset(m_pBodyParts,0,sizeof(m_pBodyParts));
        m_pRoot = pDevice->getSceneManager()->addEmptySceneNode(NULL,12345);
    }
    void changeBodyPart(ECharactorBodyPartType ePartType,stringw& meshPath,stringw& metrialPath)
    {
        ISceneManager* smgr = m_pDevice->getSceneManager();

        IAnimatedMeshSceneNode* pBpNode = m_pBodyParts[ePartType];
        IAnimatedMesh* pMesh = smgr->getMesh(meshPath.c_str());
        if(pMesh==NULL)
            return;

        if(pBpNode==NULL)
        {
            pBpNode = smgr->addAnimatedMeshSceneNode(pMesh,m_pRoot);
            m_pBodyParts[ePartType] = pBpNode;
        }
        else
        {
            pBpNode->setMesh(pMesh);
        }
        ITexture* pTexture = m_pDevice->getVideoDriver()->getTexture(metrialPath.c_str());
        if(pTexture)
            pBpNode->setMaterialTexture(0,pTexture);
    }
};

 

//鐒跺悗錛屾垜鐢ㄤ簡(jiǎn)涓涓粨鏋勪綋鏉ユ瀯寤洪儴浠朵俊鎭?/p>

struct SBodyPartInfo
{
    stringw Desc;
    ECharactorBodyPartType Type;
    stringw MeshPath;
    stringw MeterialPath;
};

 

綰犵粨2錛氬叡浜楠?/strong>

棣栧厛錛宨rrlicht 1.8涓OGRE妯″瀷鐨勬牸寮忔敮鎸佸湪浠g爜涓紝鏈楂樺彧鐪嬪埌浜?.40鐗堟湰鐨勮В鏋愶紝鏇撮珮鐨勫氨浼?xì)琚棤瑙嗐?澶╅緳鍏儴鐨勬ā鍨嬫湁鍑犱釜鏄?.30鐨勶紝鑰岀敤浜庢崲瑁呭拰涓昏鐨勶紝閮芥槸1.40鐨勩?鍙兘鏄В鏋愪笉鍏ㄧ殑鍘熷洜錛屽鑷?.40鐨勯楠煎姩鐢繪棤娉曟甯告挱鏀俱?榪欎釜闂鏁翠簡(jiǎn)鍑犱釜灝忔椂錛屾病鏈夎В鍐籌紝鏄庡ぉ緇х畫

鍏舵錛屽涓ā鍨嬪叡浜楠煎彧鑳介氳繃鍦烘櫙鑺傜偣鐨剈seAnimationFrom鏉ュ畬鎴愶紝騫朵笖浼犲叆鐨勬槸涓涓狹esh鍙傛暟銆傝繖鐐硅浜鴻泲鐤鹼紝 澶╅緳鍏儴鐨勮鑹插姩浣滄槸鍒嗗紑浜?jiǎn)鐨勫Q屼笉鍚岀殑鏀誨嚮鍔ㄤ綔鏄竴涓猻keleton鏂囦歡銆?鎯寵瀹炵幇鍏變韓錛屾湁鐐歸夯鐑?chǔ)銆?/p>

 

綰犵粨3錛氭ā鍨嬫枃浠舵牸寮?/strong>

irrlicht涓嶅儚OGRE閭f牱鏈変竴涓己澶т笖鎴愮啛鐨勬ā鍨嬫枃浠舵牸寮?铏界劧鎻愪緵浜?irr鏍煎紡錛屼絾浠呮槸鐢ㄤ簬irrEdit鐨勫満鏅俊鎭緭鍑恒傚厛鐪嬩竴寮犲浘

image

榪欏紶鍥炬槸irrlicht samples涓殑MeshViewer鐨勬彁紺烘鍐呭銆?涓婇潰鍒楀嚭浜?jiǎn)鍙互鏀寔鐨勬ā鍨嬫枃錃g綾誨瀷銆?澶у鍙互鐪嬬湅錛屽張鏈夊灝戞ā鍨嬫牸寮忔槸鍙互鐩存帴鎷挎潵鏀懼埌欏圭洰涓婄敤鐨勫憿錛?mdl鍜宮s3d鍙互鑰冭檻錛宒ae鐨勮瘽錛屾垜鍦ㄥ紑婧愭父鎴? A.D. 涓鍒頒嬌鐢ㄨ繃銆?鍏跺畠鐨勮瘽錛屽氨瀹屽叏涓嶇啛鎮(zhèn)変簡(jiǎn)銆?OGRE鐨?.mesh鏀寔涔熶笉瀹屽叏銆?闅鵑亾鐪熻鑷繁鏁翠竴涓?

鎴戣兘鎯沖埌鐨勶紝灝辨槸閫変竴涓彃浠跺畬鏁村拰妯″瀷鍜屽姩鐢繪牸寮忛兘姣旇緝濂界殑浣滀負(fù)涓庣編鏈伐鍏蜂氦浜掔殑鏍煎紡銆?鑷繁鍐嶅啓涓涓伐鍏鳳紝杞崲鎴愯嚜宸辯殑鏍煎紡銆?/p>

 

綰犵粨4錛氱‖浠惰挋鐨?/strong>

鎴戜互涓哄儚NIKO閭f牱鐨勬妧鏈媯錛屾庝箞浼?xì)鏀炬帀杩欎竴涓壒鎬с?寰堥珮鍏村湴鍦ㄥ満鏅妭鐐逛笂鍙戠幇浜?jiǎn)纭欢钂欑毊鐨勫嚱鏁版帴鍙c備絾涓鐪嬫敞閲婏紝鎶婃垜鍜界潃浜?jiǎn)銆?/p>

//! (This feature is not implemented in irrlicht yet)
virtual bool setHardwareSkinning(bool on);

 

鍏跺畠鍦版柟錛岃繕娌℃湁鍘繪暣錛屽氨鍏堜笉鍙戣〃璦璁轟簡(jiǎn)銆?緇х畫鐫榪欎釜寰堝偦B,寰堝ぉ鐪熺殑鎹i紦涔嬭礬銆?

涓婁釜鍥撅紝綰康涓涓嬫垜鐨刬rrlicht浜х墿銆?/p>

 

甯冭。

image

 

鎹簡(jiǎn)韜洈鐢?/p>

image

 

鎹簡(jiǎn)甯藉瓙鍜岄澊瀛?/p>

image

 

PS:澶村彂娌℃湁綰圭悊錛屾墍浠ユ槸鐧界殑銆?/p>

]]>
WOW娓叉煋涓殑綰圭悊鍘嬬緝http://www.shnenglu.com/Leaf/archive/2011/01/23/139183.htmlRender DonkeyRender DonkeySun, 23 Jan 2011 12:00:00 GMThttp://www.shnenglu.com/Leaf/archive/2011/01/23/139183.htmlhttp://www.shnenglu.com/Leaf/comments/139183.htmlhttp://www.shnenglu.com/Leaf/archive/2011/01/23/139183.html#Feedback0http://www.shnenglu.com/Leaf/comments/commentRss/139183.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/139183.html涓鐩存病鐜╁彴鏈嶏紝鍥芥湇涔熷仠鐣欏湪72綰с傘鎴愰兘鐨勫ぉ姘斾竴澶╁ぉ涓ュ郴錛屾洿鏄笉鎯沖姩浜?jiǎn)锛屼簬鏄敤NVPerfHUD鎸備簡(jiǎn)涓媁OW錛岀湅鐪嬪畠鍒板簳鍟ユ牱銆?/p>

鐢∟VPerfHUD鎸傜▼搴忛渶瑕佽鎸傜殑紼嬪簭鑷韓鏀寔錛屼絾鏄綉涓婃湁涓涓佸厔鍐欑殑涓涓狽VPerfHUD Any紼嬪簭鍙互甯綘瀹屾垚榪欎釜鍔熻兘銆傚澶у鏁癉9鐨勯兘鏈夋晥銆傞櫎闈炴湰韜仛浜?jiǎn)鐮磋В銆?/p>

緇欏ぇ瀹惰繖涓摼鎺ワ紝鑷繁鍘昏В鍐充釜浜洪棶棰樸?/p>

http://www.thecodeway.com/blog/?p=433

 

瀹岀編鏃剁┖鐨勫紩鎿庡緢涓嶉敊錛屼緷鐒跺潥鎸哄湴鐢ㄧ潃D8銆傚叾瀹炴尯鎯蟲寕鏉ョ湅鐪嬬殑錛屽彲鎯滃競(jìng)闈笂涓繪祦鐨勫伐鍏烽兘涓嶆敮鎸丏8錛屽彧鏈塂9浠ュ強(qiáng)浠ュ悗鐨勭増鏈?/p>

 

WOW鍦–TM鐨勭増鏈腑鍗囩駭浜?jiǎn)瀹冪殑娓叉煋寮曟搸锛屽厜浠庢按闈㈠拰鐏劙灏辩湅寰楀嚭鏉ャ傘浣哤OW涓鍚戞槸浠ヨ礋杞藉拰嫻佺晠搴︿負(fù)涓伙紝騫朵笖WOW鏈韓鍗栫殑涓嶆槸鐢婚潰銆傛墍浠ヨ嫢涓嶈兘甯姪鎻愬崌娓告垙鎬х殑娓叉煋鎹熻楀熀鏈笂琚棤瑙嗕簡(jiǎn)銆傘鍏跺疄鍚э紝涓漢瑙夊緱錛屽仛娓告垙鏃犻潪灝變笁縐嶄簡(jiǎn)銆傘涓縐嶆槸榪芥眰鐢婚潰錛岃繖涓鐐規(guī)瀛愬緢鏈夊績(jī)寰椼備簩鏄拷姹傚彲鐜╂э紝榪欎竴鐐規(guī)垜鎯砏OW搴旇閬ラ仴棰嗗厛浜?jiǎn)鍚с傘鍙﹀涓縐嶈拷姹傚氨鏄懼緱寰堝崟綰簡(jiǎn)錛嶏紞錛嶉挶銆傘榪欎竴鐐瑰浗鍐呰澶氭父鎴忓仛寰楀緢濂斤紝鍦ㄦ灝變笉鍒楀悕瀛椾簡(jiǎn)錛屽洜涓烘瘮杈冨銆?/p>

 

鐢變簬涓婃槦鏈熷湪鍏徃嫻嬭瘯鏂板啓濂界殑鏉愯川鍜岃祫婧愮鐞嗘椂錛屽彂鐜癆LPHA嫻嬭瘯鐨勮崏涓涙晥鏋滃緢涓嶇悊鎯籌紝浜庢槸灝嗚崏鐨凙LPHA娣峰悎寮鍚簡(jiǎn)錛屼竴鏃墮棿錛屾劅瑙変笘鐣岃棰犲掍簡(jiǎn)銆傚洜涓鴻崏鏄寜綈囩敾鐨勶紝鎺掑簭涔熷彧鑳芥槸鎸夌皣鎺掑簭錛屽綋寮鍚簡(jiǎn)ALPHA娣峰悎鍚庯紝鑽変笡涓庤崏涓涗箣闂存病鏈夊お澶氶棶棰橈紝鍙槸鑽変笡鏈韓鍑虹幇浜?jiǎn)鍍忕礌娓叉煋閿欒銆傘涓嶇鏄痁鍐欏拰Z嫻嬭瘯濡備綍閫夋嫨寮鍚拰鍏抽棴銆傞兘浼?xì)鏈夐棶棰樸?/p>

紿佺劧鍙戠幇鑽夎繖涓笢瑗垮緢鐗瑰埆銆?/p>

鑽変笡鐨勫緩妯″拰GPU GEMS 1涓婄殑寤烘ā鏂瑰紡涓鏍鳳紝銆涓変釜鐭╁艦浜ゅ弶鐨勬柟寮忋?/p>

錛戙佸畠闇瑕佺敤ALPHA娣峰悎鏉ュ疄鐜版晥鏋?/p>

鐢ˋLPHA娣峰悎鐨勬晥鏋滄槸寰堜笉閿欑殑銆傚洜涓哄彲浠ヤ嬌杈圭紭鏌斿拰銆傛瘯绔烝LPHA嫻嬭瘯浼?xì)鍥犱负鍥剧墖ALPHA鍊奸噰鏍峰紩璧風(fēng)殑璇樊瀵艱嚧涓ラ噸鐨勯挏榻褲傚叾嬈″氨鏄緹庢湳瑕佹眰澶珮浜?jiǎn)锛岄渶瑕佷弗鏍兼帶鍒禔LPHA涓庨潪ALPHA浜ょ晫澶勩?/font>

錛掋佷絾瀹冪殑琛屼負(fù)灞炴у嵈鏄竴涓潪閫忔槑鐗╀綋銆傘

榪欐槸鍥犱負(fù)瀹冨繀欏繪湁娣卞害鍏崇郴錛屽繀闇鍐橺銆傘鍥犱負(fù)鍙湁鍐欎簡(jiǎn)Z錛屾墠鑳藉姝g‘鍦頒笌鐗規(guī)晥絳夐忔槑鐗╂販鍚堬紝騫朵笖涔熷彧鏈夊啓浜?jiǎn)Z錛屽悓涓鑽変腑鐨勫涓潰鐗囨墠鑳藉姝e父娣峰悎銆?/font>

鍦ㄥ拷鐣ュ叾瀹冩儏鍐典笅錛屾垜璇曡繃浜?jiǎn)Z嫻嬭瘯鍜孼鍐欑殑鍥涚緇勫悎錛屼篃鏈兘杈懼埌鑽変笡鏈韓鍜屽崟媯佃崏閮藉悓鏃惰揪鍒版紜殑鏁堟灉銆?/p>

 

榪樻槸澶氱湅鐪嬪埆浜烘庝箞鍋氱殑鍚э紝鎵浠ヤ笂鏉ュ氨姣旇緝鍏沖績(jī)WOW鐨勬琚覆鏌撲簡(jiǎn)銆傘褰撶湅鍒頒笅闈㈣繖鏍風(fēng)殑綰圭悊鐨勬椂鍊欙紝鎴戠瑧浜?jiǎn)銆傛病鎯沖埌BLZ鐨勭編鏈祫婧愯妭綰﹀埌浜?jiǎn)杩欐狅L(fēng)殑紼嬪害錛岀湡鏄粏鑷村叆寰晩錛堣繖涓嶆槸鎷嶉┈灞侊紝璇曢棶鏈夊灝戠編鏈祫婧愭槸榪欐牱鍋氱殑錛夈傘鍙互鐪嬪嚭錛岃嫢涓嶉噰鐢ㄨ繖鏍風(fēng)殑鍗婂紶錛岃岀敤鏁村紶錛岄偅涔堝氨鏄?28X128鐨勫ぇ灝忋?/p>

宸﹁竟涓哄師鍥撅紝鍙寵竟涓篈LPHA閫氶亾鏌ョ湅鍥?/p>

 

image image

 

鑰屽浜庢爲(wèi)鐨勬覆鏌擄紝鍒欏緢鏅氫簡(jiǎn)銆傝緗ソ綰圭悊錛岃緗ソ鏁版嵁鍜屾覆鏌撶姸鎬侊紝鎻愪氦緇樺埗鍗沖彲銆?/p>

image image

涓轟簡(jiǎn)鐪嬪埌ALPHA娣峰悎鐨勬晥鏋滐紝鎴戝己蹇嶇潃鎶奧OW鍦ㄦ垜7300鐨勬樉鍗′笂寮瀹屼簡(jiǎn)鏁堟灉銆備互涓轟細(xì)鍜嬬殑錛岀粨鏋滃暐涔熸病鍙戠敓銆?/p>

WOW鐨勬琚殑紜病鏈夌敤鍒癆LPHA娣峰悎銆傛垜澶辨湜浜?jiǎn)銆?/p>

鍙兘璁稿浜鴻寰楋紝鎶婂寮犵汗鐞嗘暣鍚堝湪涓寮犱笂鏇村ソ鍚с傘褰撶劧浜?jiǎn)锛寴q欐槸鑷劧鐨勩傘涓嬮潰灝辨槸WOW涓粡甯鎬竴璧峰嚭鐜扮殑妞嶈鐨勭汗鐞嗘墦鍖呭浘銆?/p>

澶у鍙互鐪嬪埌錛屽彸杈圭殑鍥懼茍娌℃湁琚鍓紝鍏跺師鍥犱笉璦鑰岃皶錛堝洜涓烘兂浠ラ潪瀵圭О钀ラ犳劅瑙夛紝騫朵笖灝忎歡鐗╀綋綰圭悊鏈韓姣旇緝?yōu)畯銆傦級(jí)銆?/p>

image image

 

image

image

鍙戠幇榪欒崏鐢ㄧ殑鏄袱鐗囷紝騫朵笖澶у皬榪樹笉涓鏍楓傘涓嶇煡鏄惁鐪熺殑鏈夋蹇呰銆?/p>

 

 

鎴戞渶鍚庤璇存槑鐨勬槸錛岃繖鏂囩珷灝辯畻瀹屼簡(jiǎn)銆傛病鏈夌粨璁猴紝涔熸病鏈夋劅璦銆傚洜涓洪偅鏍峰お淇楀錛?/p>

]]>
OGRE3D 娓叉煋緋葷粺綰跨▼鍖?/title><link>http://www.shnenglu.com/Leaf/archive/2010/12/20/137076.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Mon, 20 Dec 2010 15:14:00 GMT</pubDate><guid>http://www.shnenglu.com/Leaf/archive/2010/12/20/137076.html</guid><wfw:comment>http://www.shnenglu.com/Leaf/comments/137076.html</wfw:comment><comments>http://www.shnenglu.com/Leaf/archive/2010/12/20/137076.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Leaf/comments/commentRss/137076.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Leaf/services/trackbacks/137076.html</trackback:ping><description><![CDATA[     鎽樿: 鍏堝墠鐮旂┒娓叉煋緋葷粺綰跨▼鍖栫殑鏃跺欑炕鍒頒簡(jiǎn)榪欑瘒鏂囩珷錛屼簬鏄竴杈圭湅涓杈瑰啓鍑轟簡(jiǎn)姹夎銆?鏂囦腑鍐欏鍦版柟緲昏瘧寰楀緢涓嶉氶『錛岃璋呫?<br> <br> <br> <br>璇戣呭簭錛氬伓鐒跺湪緗戜笂鐪嬪埌榪欑瘒鏂囩珷錛岃嚜宸卞緢鎯充粩緇嗙爺絀朵竴涓嬨備絾鎼滃鍗婂ぉ涓嶈涓枃鐗堛備簬鏄嚜宸辨枟鑳嗙炕璇戜簡(jiǎn)涓涓嬨傛枃涓笉鍏嶆湁婕忔礊鐧懼嚭錛岀敋鑷沖彲浠ヨ鏈変簺鍦版柟涓嶅強(qiáng)Google緲昏瘧寰楀ソ銆備絾榪欐牱鎬葷殑鏉ヨ鏄嚭浜?jiǎn)涓涓腑鏂囩増錛岃屾垜鑷繁鍦ㄧ炕璇戣繃紼嬩腑涔熶細(xì)鍋滀笅鏉ヤ粩緇嗘濊冦?<br> <br>OGRE榪欎釜綰跨▼鍖栫殑鏂囩珷寰堣佷簡(jiǎn)銆傚洜涓篛GRE鐩墠宸茬粡鏀寔澶氱嚎紼嬫覆鏌撱?榪欑瘒鏂囩珷璨屼技鏄煇浜涗漢鐮旂┒鍑烘潵鐨勪笁涓嚎紼嬪寲鏂規(guī)錛屽茍緇欏嚭浜?jiǎn)娴嬭瘯缁撴灉銆備互鍚慜GRE紺懼尯璇佹槑綰跨▼鍖栨柟妗堢殑鍙鎬с?瀵逛簬璁稿鎯崇爺絀舵覆鏌撶嚎紼嬪寲鐨勪漢鏉ヨ錛屾槸涓綃囧煎緱鍙傝冪殑鏂囩珷銆傛枃涓彁鍑轟簡(jiǎn)璁稿鍦ㄤ笉鍚屾儏鍐典笅綰跨▼鍖栨椂閬囧埌鐨勯棶棰橈紝浠ュ強(qiáng)闇瑕佹敞鎰忕殑闂銆傚煎緱涓璇? <br> <br>  <a href='http://www.shnenglu.com/Leaf/archive/2010/12/20/137076.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/Leaf/aggbug/137076.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2010-12-20 23:14 <a href="http://www.shnenglu.com/Leaf/archive/2010/12/20/137076.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鐢ㄦ帶鍒跺彴鍐欏浘褰㈢▼搴忥紞錛嶈椽椋熻泧http://www.shnenglu.com/Leaf/archive/2010/08/20/124043.htmlRender DonkeyRender DonkeyThu, 19 Aug 2010 17:02:00 GMThttp://www.shnenglu.com/Leaf/archive/2010/08/20/124043.htmlhttp://www.shnenglu.com/Leaf/comments/124043.htmlhttp://www.shnenglu.com/Leaf/archive/2010/08/20/124043.html#Feedback7http://www.shnenglu.com/Leaf/comments/commentRss/124043.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/124043.html鏂扮増婧愮爜涓嬭澆鍦板潃. 鐐瑰嚮榪欓噷 (SnakeGame 0.0.1 ) 閾炬帴宸蹭慨姝o紝璇鋒斁蹇?jī)鋴社敤锛?
--------------------------------------------------------------------------------------------------------------------------------
鍏堝墠鐨勭増鏈細(xì)闂睆,浜庢槸鏂板緩浜?jiǎn)涓涓紦鍐叉潵瑙e喅,騫跺皢瀵規(guī)帶鍒跺彴鐨?鍥懼艦"鎿嶄綔鎶借薄浜?jiǎn)鍑烘?浣挎垜浠嬌鐢ㄧ殑鏃跺欏氨鍍忓湪浣跨敤鏅氱殑鍥懼艦璁懼涓鏍?br>
        1 璁劇疆娓呭睆鑹?br>        2 鎸囧畾鍍忕礌浣嶇疆,璁劇疆瑕佺粯鍒剁殑鍐呭
        3 鎻愪氦緙撳啿鍖哄唴瀹?

鏂扮増婧愮爜宸插畬鎴愪簡(jiǎn)娓告垙鐨勫熀鏈姛鑳?br>   杈撳叆鎺у埗
   椋熺墿媯(gè)嫻?br>   闅滅媯(gè)嫻?br>鍙﹀,榪樻敹褰曚簡(jiǎn)閮ㄥ垎鐢ㄤ簬鏂逛究璁劇疆鎺у埗鍙板睘鎬х殑鍑芥暟.濡傜獥鍙e浘鏍?紿楀彛鍙ユ焺絳?
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?br>Windows涓嬬殑鎺у埗鍙版槸鍙互璁劇疆鍓嶆櫙錛岃儗鏅壊鐨勩傝繖緇欎簡(jiǎn)鎴戜竴涓緢涓嶉敊鐨勬兂娉曪紝鐢ㄤ粬鍐欏浘褰€?br>
璇村ソ灝卞紑宸ワ紝鐢ㄤ簡(jiǎn)涓涓皬鏃跺啓浜?jiǎn)涓涓椽椋熻泧銆?br>
瀹屾垚鍔熻兘錛?br>鏈変竴涓畝鍗曠殑緇樺埗妗嗘灦銆?br>涓涓畝鍗曠殑UI銆?br>闄や簡(jiǎn)椋熺墿娌℃湁澶勭悊澶栵紝鍏朵綑閮絆K銆?br>
鑳借嚜鍔ㄦ洿鏂幫紝媯(gè)嫻嬬鎾炵瓑銆傘傘?br>浜岃瘽涓嶈錛屾湁鍥炬湁鐪熺浉銆?br>
铔嬬柤鐨勬湅鍙嬪彲浠ヨ瘯璇曪紝鎸虹埥鐨勩傘傘傘?/div>
PicturePicture Picture

涓嬭澆鍦板潃錛?a >婧愮爜鍔犳墽琛岀▼搴?/a>

]]>
[鍘焆璇戯細(xì)涓涓父鎴忓紩鎿庢墍搴斿叿鏈夌殑鍏冪礌http://www.shnenglu.com/Leaf/archive/2010/04/26/113660.htmlRender DonkeyRender DonkeyMon, 26 Apr 2010 15:34:00 GMThttp://www.shnenglu.com/Leaf/archive/2010/04/26/113660.htmlhttp://www.shnenglu.com/Leaf/comments/113660.htmlhttp://www.shnenglu.com/Leaf/archive/2010/04/26/113660.html#Feedback11http://www.shnenglu.com/Leaf/comments/commentRss/113660.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/113660.html闃呰鍏ㄦ枃

]]>
[鍘焆irrlicht v1.6 涓枃渚嬬▼18 Splitscreenhttp://www.shnenglu.com/Leaf/archive/2010/04/26/113563.htmlRender DonkeyRender DonkeyMon, 26 Apr 2010 01:50:00 GMThttp://www.shnenglu.com/Leaf/archive/2010/04/26/113563.htmlhttp://www.shnenglu.com/Leaf/comments/113563.htmlhttp://www.shnenglu.com/Leaf/archive/2010/04/26/113563.html#Feedback0http://www.shnenglu.com/Leaf/comments/commentRss/113563.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/113563.html鎴戜滑灝嗗垱寤轟竴涓鍒嗕負(fù)4涓儴鍒嗙殑瑙嗗彛錛屾湁3涓浐瀹氭憚鐩告満鍜屼竴涓敤鎴峰彲浠ユ帶鍒剁殑鎽勭浉鏈哄ソ錛岃浠粠澶存枃浠跺紑濮嬪惂錛堟垜鎯蟲病鏈夊啀澶氳鐨勫繀瑕佷簡(jiǎn)錛?nbsp; 闃呰鍏ㄦ枃

]]>
娓告垙寮鍙戝巻紼嬩箣鏉愯川緋葷粺http://www.shnenglu.com/Leaf/archive/2010/04/24/113443.htmlRender DonkeyRender DonkeySat, 24 Apr 2010 08:13:00 GMThttp://www.shnenglu.com/Leaf/archive/2010/04/24/113443.htmlhttp://www.shnenglu.com/Leaf/comments/113443.htmlhttp://www.shnenglu.com/Leaf/archive/2010/04/24/113443.html#Feedback2http://www.shnenglu.com/Leaf/comments/commentRss/113443.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/113443.html鏉愯川錛岃繖涓瘝鏈夊悇琛屽悇涓氶兘鏈夎嚜宸辯殑瑙i噴銆?/p>

緹庡伐鎶婄墿浣撹創(chuàng)鍥懼拰鐗╀綋棰滆壊錛岄珮鍏夌瓑緇熺О涓烘潗璐ㄣ侱3D鍜孫PENGL榪欐牱鐨勫浘褰㈡帴鍙e垯鎶婄墿浣撹〃闈㈣創(chuàng)鍥懼崟鐙彨鍋氱汗鐞嗭紝鑰屾妸婕弽灝勶紝楂樺厜絳夊彨鍋氭潗璐ㄣ?/p>

 

鑰屽湪娓告垙寮曟搸鎴栧浘褰㈠紩鎿庝腑鎻愬埌鐨勬潗璐紝鍒欎笌姝や笉鍚屻?寮曟搸涓彁鍒扮殑鏉愯川涓嶄粎涓婇潰鐨勭殑鍐呭銆?寮曟搸涓墍璋撶殑鏉愯川錛屾槸鎸囩墿浣撳湪娓叉煋鏃朵竴緋誨垪鐨勭姸鎬佹帶鍒躲?濡傦紝ALPHA娣峰悎寮鍏充互鍙?qiáng)ALPHA娣峰悎鍥犲瓙銆佺汗鐞嗚繃铏戞柟寮忥紝綰圭悊閫氶亾鐘舵併佺汗鐞嗙煩闃點(diǎn)佽鍓ā寮忕瓑錛屽湪D3D涓紝灝辨槸SetRenderState,SetTextureStageState,SetSamplerStateState絳夋墍鎺у埗鐨勩傚湪OPENGL涓紝鍒欏ぇ澶氭暟鐢眊lEnable鎵鎺у埗銆?/p>

 

鎴戜滑鎵鎻愬埌鐨勬潗璐ㄧ郴緇燂紝鍒欐槸浠ユ涓哄熀紜灞曞紑鐨勩?涓婇潰鎻愬埌鐨勮繖浜涘洜瀛愶紝緇勬垚浜?jiǎn)鎴戜滑鐨勬潗璐ㄣ?涔熸槸鎴戜滑鍦ㄦ覆鏌撲竴涓墿浣撶殑鏃跺欙紝鎻愪氦鍒拌澶囩殑鐘舵佹帶鍒跺箋?涓涓墿浣撶殑涓嬈℃覆鏌擄紝鎴戜滑縐頒綔涓涓狿ASS銆備簬鏄垜浠『鍏惰嚜鐒跺湴灝嗚繖涓覆鏌撴椂鐨勬潗璐ㄦ帶鍒剁殑鏈灝忓崟浣嶅懡鍚嶄負(fù)Pass,鍒欙細(xì)

 

struct TextureState

{

    void* Texture;

    int ColorOp;

    int ColorAgr1;

    int ColorAgr2;

    int AlphaOp;

    int AlphaAgr1;

    int AlphaAgr2;

.....//鏇村鍐呭

};

 

class CPass

{

   CColor mAmbient;

   CColor mDiffuse;

   ....鏇村鍐呭

 

    bool mAlphaEnable;

    int mScrBlend;

    int mDstBlend;

    int mCullMode;

   TextureState[4] mTextureStates;

  ...鏇村鍐呭

};

 

褰撴垜浠覆鏌撲竴涓墿浣撶殑鏃跺欙紝鍙渶瑕佸皢榪欎釜綾婚噷闈㈢殑鐘舵佸簲鐢ㄥ埌璁懼錛屽嵆鍙畬鎴愬鐗╀綋鐨勭粯鍒躲?/p>

 

鏉愯川緋葷粺鐨勫熀鏈唴瀹瑰氨鏄繖浜涳紝榪欎篃鏄渶瀹規(guī)槗鍋氬埌鐨勪簨鎯呫?/p>

浣嗘槸錛屾垜浠兘鐭ラ亾錛屽儚D3D鎴朞PENGL榪欐牱鐨勫浘褰㈡帴鍙f瘡璁劇疆涓嬈PU鐘舵佺殑鏃跺欙紝閮戒細(xì)鏈変竴瀹氱殑寮閿錛堥氳繃鏌ョ湅鐩稿叧鏂囨。鍙互鐪嬪埌鏌愪簺鍑芥暟鐨勫叿浣撳紑閿鍊鹼級(jí)銆傝屼負(fù)浜?jiǎn)淇濊瘉鎴戜滑鐨勬覆鏌搵箒鐣呭Q屾垜浠笉寰椾笉鍑忓皯榪欐牱鐨勫紑閿銆?/p>

 

寰堣嚜鐒跺湴錛屾垜浠細(xì)鎯沖埌錛屽敖閲忓噺灝戝垏鎹€傝屽浣曞噺灝戝垏鎹㈠憿銆傛垜浠彲浠ヨ褰曚笅鑷繁鐨勭‖浠剁姸鎬侊紝鍦ㄨ緗笅涓涓殑鏃跺欙紝鍏堝垽鏂綋鍓嶇‖浠剁姸鎬佹槸鍚︾浉鍚岋紝濡傛灉鐩稿悓銆傚垯涓嶇敤鍐嶈緗?铏界劧鏌愪簺鍥懼艦鎺ュ彛鍦ㄥ叾灞傚簳鍋氫簡(jiǎn)綾諱技鐨勫姛鑳姐備絾鎴戜滑澶栭儴鍒ゆ柇涓涓嬶紝涔熸湭灝濅笉鍙備粠D3D涓婃潵璁詫紝澶栭儴鍒ゆ柇姣旇鍏跺唴閮ㄥ垽鏂晥鐜囨洿浣熾傞渶瑕佹敞鎰忕殑鏄紝鐢變簬鎴戜滑鍦ㄨ嚜宸辯殑紼嬪簭閲屽仛浜?jiǎn)鐩稿悓鍒ゆ柇銆傚洜姝わ紝褰撴湁鍙︿竴涓▼搴忎篃淇敼璁懼鐘舵佺殑鏃跺欙紝灝變細(xì)浜х敓鎰忔兂涓嶅埌鐨勬晥鏋溿傛墍浠ワ紝鎴戜滑搴旇閫傚綋鐨勬煡璇竴涓嬭澶囩姸鎬侊紝騫舵洿鏂拌嚜宸辯殑鐘舵佽褰曡〃銆傝嚦浜庤繖涓煡璇㈤棿闅旓紝灝辮鏍規(guī)嵁鑷繁鐨勫疄闄呮儏鍐墊潵嫻嬭瘯浜?jiǎn)銆?/p>

 

 

閫氳繃璁板綍鐘舵佺殑鏂規(guī)硶鏉ユ彁鍗囩殑鏁堢巼鏄緢涓嶆槑鏄劇殑錛屽洜姝わ紝鎴戜滑闇瑕佸鏉愯川榪涜鎺掑簭錛岃嚦浜庢庝箞鎺掑簭錛岃繖綆楁硶涓婄殑闂錛屽湪姝ゅ厛涓嶄綔榪囧瑙i噴銆?鎬諱箣錛屾垜浠皢鐩鎬技鐨勬潗璐ㄦ帓鍦ㄤ竴璧楓傜敱浜庢潗璐ㄥ緢鐩鎬技錛岀粯瀹屼竴涓啀緇樹笅涓涓殑鏃跺欙紝鍑忓皯浜?jiǎn)鍒囨崲锛屼粠鑰屽ぇ澶ф彁鍗囦簡(jiǎn)鏁堢巼銆?/p>

 

鏃㈢劧宸茬粡鏄秹鍙?qiáng)鍒拌畱证囦簡(jiǎn)锛屾垜浠誨緱鑰冭檻涓涓嬭澶囬棶棰樸?濡傛灉璁懼涓嶆敮鎸佹垜浠綋鍓嶇粰瀹氱殑鏉愯川鐘舵侊紝鎬庝箞鍔烇紵 榪斿洖FALSE涓嶆覆鏌撱傝繕鏄紼嬪簭DOWN鎺夛紵  瀵逛簬涓浜涢噸瑕佺殑鎬ц兘錛岃澶囦笉鏀寔璁╃▼搴廌OWN鎺夋槸鏈濂界殑鍋氭硶錛屼絾鏄紝瀵逛簬鍍忕汗鐞嗘販鍚堥氶亾涓嶈凍鐨勬儏鍐碉紝璁╁叾DOWN鎺夊氨鏄懼緱鍒掍笉鏉ヤ簡(jiǎn)銆傛瘯绔熸垜浠璁$殑娓告垙紼嬪簭鏄兂璁╂洿澶氱殑鐜╁鑳界帺涓嶆槸錛?榪欐牱灝變細(xì)娑夊強(qiáng)鍒癙ASS鐨勬媶鍒嗛棶棰樸?/p>

 

瀵逛簬PASS鐨勬媶鍒嗭紝OGRE宸茬粡鍋氬緱寰堝ソ浜?jiǎn)銆傛牴鎹敤鎴風(fēng)殑璁懼鎬ц兘錛屽鏋滀笉婊¤凍錛屽氨涓鐩存媶鍒嗭紝鎷嗗埌鐢ㄦ埛婊¤凍涓烘錛屾渶鍚庤涓涓墿浣撴覆鏌撳嬈★紝鏉ュ疄鐜板涓汗鐞嗛氶亾娣峰悎鐨勬晥鏋溿?鑰屽PASS鍒欐槸鍦ㄦ覆鏌撶殑鏃跺欎笉寰椾笉鑰冭檻鐨勫湴鏂癸紝姣曠珶鏈変簺鐗╂畩鏁堟灉闈炲緱鐢ㄥPASS涓嶅彲銆?/p>

 

瀵逛簬澶歅ASS鐨勮璁★紝鎴戜滑鍙互鍙傝僌GRE鐨勬潗璐ㄦ柟娉曟垨鏄疍3DX鐨勬晥鏋滄鏋躲傛垜浠妸瀹屾垚涓涓渶緇堟晥鏋滅殑鏂規(guī)縐頒綔涓涓覆鏌撴妧鏈?Technique 錛屼竴涓妧鏈彲鐢卞涓狿ass鏉ュ畬鎴愩?/p>

 

class Technique

{

...鏇村鍐呭

 vector<CPass*> mPasses;

};

 

榪欐牱灝辨弧瓚充簡(jiǎn)鎴戜滑鐨勯渶姹傘?nbsp; 瀵逛簬鍚屼竴縐嶆晥鏋滐紝鎴戜滑鍙互鎻愪緵澶氱Technique渚涚▼搴忛夋嫨銆?鑰岃繖涓夋嫨鐨勬潯浠跺垯鍙互鏄牴鎹‖浠舵ц兘錛屾垨鏄帺瀹舵墜鍔ㄩ夋嫨鐨勯厤緗潵瀹炵幇銆?/p>

鏈鍚庣粨鏋勫涓嬶細(xì)

class CMaterial

{

public:

...鏇村鍐呭

vector<CTechnique*> mRenderTechs

};

 

 

 

涔變竷鍏碂鍦拌浜?jiǎn)涓閫氾紝甯屾湜娌℃檿姝諱漢錛侊紒錛?/p>

]]>
鐩戝惉鍣ㄥ湪娓告垙寮鍙戜腑鐨勫簲鐢?---娑堟伅鍥炶皟http://www.shnenglu.com/Leaf/archive/2010/04/24/113430.htmlRender DonkeyRender DonkeySat, 24 Apr 2010 06:39:00 GMThttp://www.shnenglu.com/Leaf/archive/2010/04/24/113430.htmlhttp://www.shnenglu.com/Leaf/comments/113430.htmlhttp://www.shnenglu.com/Leaf/archive/2010/04/24/113430.html#Feedback5http://www.shnenglu.com/Leaf/comments/commentRss/113430.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/113430.html鎴戜竴鍚戞槸涓嶅お鍠滄緇欎竴浜涗笢瑗垮己鍔犱笂涓悕瀛椼備絾涓轟簡(jiǎn)闅忔嘗閫愭祦錛屾垜榪樻槸榪欐牱鍋氫簡(jiǎn)銆?/p>

 

鍦ㄦ垜浠殑娓告垙寮鍙戜腑錛岄氬父浼?xì)閬囧堫C袱涓ā鍧椾箣闂寸殑閫氫俊銆?鍥炶皟浼拌鏄渶甯哥敤鐨勬柟寮忎簡(jiǎn)銆?鍥炶皟鐨勮璁℃濇兂寰堢畝鍗曪紝灝辨槸涓や釜瀵硅薄鐩鎬簰娉ㄥ唽錛岀劧鍚庡湪闇瑕佺殑鏃跺欒皟鐢ㄥ鏂圭殑鍑芥暟銆?/p>

濡備笅錛?/p>

 

 

榪欐牱錛屽綋A鎵ц鑷繁鐨勬煇浜涘姩浣滅殑鏃跺欙紝灝辮皟鐢˙鐨勫嚱鏁幫紝榪欐牱B灝變細(xì)榪涜鑷繁鐨勬洿鏂版垨鏄竴浜涘鐞嗐?/p>

 

浣嗘槸錛岀敱浜庝袱涓璞$殑鐩存帴鍥炶皟錛屽鑷翠簡(jiǎn)璁稿涓嶆柟渚夸箣澶勩傜壒鍒槸褰揂鍜孊鐨勫姛鑳介渶瑕佹墿灞曠殑鏃跺欍備緥濡傦細(xì)鐜板湪A鍦ㄦ墽琛岃繃紼嬩腑錛岄渶瑕佽皟鐢˙涓叾瀹冪殑鍔熻兘鍑芥暟銆傝繖鏃跺欏氨涓嶅緱涓嶄慨鏀笰鍜孊鐨勬帴鍙c傜劧鍚庡ぇ瀹墮兘閲嶆柊緙栬瘧錛岃繛鎺ワ紝鎵ц銆?/p>

 

浜庢槸錛屾垜浠氨浼?xì)鎯充細(xì)涓嶄細(xì)鏈変竴縐嶆洿濂界殑鏂規(guī)硶鏉ヨВ鍐寵繖涓闂銆?澶у鍙互鎯蟲兂錛學(xué)INDOWS涓殑閫氫俊鏈哄埗錛氶氳繃瑙f瀽娑堟伅綾誨瀷鏉ヨ繘琛屽鐞嗐傛槸鐨勶紝娑堟伅鍥炶皟鐨勫ソ澶勫氨鏄柟渚挎墿灞曘?褰撶劧鎴戜滑榪欓噷瑕佽鐨勪笉鏄儚WINDOWS涓偅鏍風(fēng)殑娑堟伅閫氫俊鏈哄埗錛屽浜庢垜浠潵璇達(dá)紝閭g鍋氭硶榪囩箒鐞愩?/p>

鍋囪鐜板湪鏄兂璁〢閫氱煡B涓浜涗簨鎯呫傞偅涔堬紝鎴戜滑鍙互鎶夿鐨剉oid DoB();鍑芥暟浣滀竴鐐圭偣淇敼錛?/p>

 

鍚岀悊錛屽綋B瑕侀氱煡A鐨勬椂鍊欙紝涔熻繖鏍峰仛灝辮浜?jiǎn)銆?/p>

 

浣嗘槸錛岃繖鏍蜂篃寰堥夯鐑?chǔ)锛屽叧閿湪浜庡Q屽鏋滅幇鍦ㄥ啓綾籄鐨勪漢騫朵笉鐭ラ亾綾籅鐨勪漢浼?xì)鎬庝箞鍐欙紝鎴栬呰錛岀被B涓嶇煡閬撲粈涔堟椂鍊欒鍐欍傚彟澶栵紝濡傛灉鎴戜滑寮哄埗綾籅瑕佸疄鐜拌繖鏍風(fēng)殑鎺ュ彛錛屼細(xì)鏈夌偣涓嶇幇瀹炪?

 

姝ゆ椂錛屾垜浠喅瀹氫嬌鐢ㄤ竴涓腑闂村璞℃潵榪炴帴浠栦滑銆?/p>

 


榪欏氨鏄垜浠紶璇翠腑鐨勭洃鍚櫒浜?jiǎn)銆?鍦∣GRE鎴栨槸涓浜涘箍娉涢噰鐢ㄩ潰鍚戝璞℃濇兂鐨勬簮紼嬪簭涓紝闅忓鍙榪欐牱鐨勬ā寮忋?/p>

 

榪樻槸鍋囪鏄疉闇瑕侀氱煡B涓浜涗簨鎯呫傞偅涔堬紝鍙互鍦ˋ涓敞鍐岃繖涓璞★紝鐒跺悗璋冪敤瀹冪殑鏂規(guī)硶灝卞彲浠ヤ簡(jiǎn)銆?/p>

 

鑰屾垜浠湪瀹炵幇B鐨勬椂鍊欙紝闄や簡(jiǎn)瑕佸疄鐜癇鑷繁鐨勪笢瑗夸互澶栵紝榪橀渶瑕佸皢ICallBack媧劇敓騫跺疄鐜?void Do(int Msg)鍑芥暟錛?/p>

 

榪欐牱錛屽弻鏂逛究寰堣嚜鐒跺湴閫氫簡(jiǎn)淇°傝屽啓綾籄鐨勪漢鏍規(guī)湰涓嶉渶瑕佺悊浼?xì)绫籅鐨勪漢浼?xì)鎬庝箞鍐欙紝涔熶笉鐢ㄥ幓綆$被B浼?xì)鏄粈涔堟牱鐨勭被鍚嶃傚彧瑕佸憡璇夊啓綾籅鐨勪漢錛屼綘闇瑕佸疄鐜拌繖涓狢allback鎺ュ彛錛屽茍涓斿搴旂殑MsgID鏄共浠涔堢敤鐨勫氨O(jiān)K浜?jiǎn)銆?/p>

 

涔熻鍒濆垵鐨勪竴鐪嬶紝榪欐槸鍚冨姏涓嶈濂界殑宸ヤ綔銆傛瘯绔熶竴涓啓A鐨勪漢錛屼細(xì)鍘繪兂閭d箞澶氫簨鎯呫?鑰屼竴涓啓B鐨勪漢錛岃繕瑕佸幓瀹炵幇涓涓狢allback綾匯備絾鏄紝浠庡彲鎵╁睍鎬э紝鍜岄檷浣庤﹀悎涓婃潵璁詫紝鐨勭‘浼?xì)钃v涓嶅皯鐨勪綔鐢ㄣ?

 

鑰屼笂闈㈢殑void Do(int MsgID);鍑芥暟錛屽彲浠ュ仛寰楁洿寮哄ぇ涓鐐廣?/p>

鍐欐垚void Do(void* pData); 鑰岃繖涓猵Data鎬庝箞浣跨敤錛屽氨瑕佺湅A鍜孊閫氫俊鐨勫叿浣撳唴瀹逛簡(jiǎn)銆?

 

 

 

鎴戞灝藉姏鍦拌瘯鐫鎶婅嚜宸辨兂瑕佽鐨勮娓呮錛岃阿璋紒

 



]]>
鏀硅繘鍚庣殑 3D璐铔?/title><link>http://www.shnenglu.com/Leaf/archive/2009/06/04/86732.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Thu, 04 Jun 2009 03:46:00 GMT</pubDate><guid>http://www.shnenglu.com/Leaf/archive/2009/06/04/86732.html</guid><wfw:comment>http://www.shnenglu.com/Leaf/comments/86732.html</wfw:comment><comments>http://www.shnenglu.com/Leaf/archive/2009/06/04/86732.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.shnenglu.com/Leaf/comments/commentRss/86732.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Leaf/services/trackbacks/86732.html</trackback:ping><description><![CDATA[涓寮濮嬭佹槸瑙夊緱鍝噷涓嶅鍔詫紝鍚庢潵鍙戠幇鏄嚜宸辯殑鍏夌収娌℃湁璁劇疆濂姐?br>濡傚浘鐨勬晥鏋滃氨濂藉浜?jiǎn)銆傚搱鍝?br><br>榪樻槸娌℃湁鐪嬪埌鍝噷鍔犻檮浠訛紝浜庢槸鎴戞妸涓や釜灝忔父鎴忕殑浠g爜鍜屾墽琛屾枃浠跺彂鍒?#8220;鏂囦歡”閲岄潰浜?jiǎn)锛屽彲浠ュ幓閭i噷涓嬭?br>鏈変粈涔堟柊鎯蟲硶鐨勶紝澶у鍙互浜ゆ祦銆傜壒鍒槸榪欎釜璐铔囩殑鍦烘櫙銆?br><img border=0 alt="" src="http://www.shnenglu.com/images/cppblog_com/leaf/3DSnake.jpg" width=1024 height=768> <img src ="http://www.shnenglu.com/Leaf/aggbug/86732.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2009-06-04 11:46 <a href="http://www.shnenglu.com/Leaf/archive/2009/06/04/86732.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍋氱殑灝忔父鎴忥細(xì)澧欎腑鍏富http://www.shnenglu.com/Leaf/archive/2009/06/01/86340.htmlRender DonkeyRender DonkeySun, 31 May 2009 18:21:00 GMThttp://www.shnenglu.com/Leaf/archive/2009/06/01/86340.htmlhttp://www.shnenglu.com/Leaf/comments/86340.htmlhttp://www.shnenglu.com/Leaf/archive/2009/06/01/86340.html#Feedback9http://www.shnenglu.com/Leaf/comments/commentRss/86340.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/86340.html鎵嬫満錛堣仈鎯籌級(jí)涓婃湁涓涓父鎴忓彨澧欎腑鍏富錛屽氨鏄Щ鍔ㄥ厜鏍囷紝濡傛灉鍏夋爣鍛ㄥ洿鏈変笁涓互涓婇鑹茬浉鍚岀殑鏂瑰潡銆傚垯鍙互娑堝幓銆?br>鐜╃潃鐜╃潃灝辨兂鑷繁鍐欎竴涓潵璇曡瘯銆傚綋鐒朵笉鏄墜鏈虹増銆傝屾槸PC鐗堢殑銆傛父鎴忓緢綆鍗曘備唬鐮佸氨涓嶇矘涓婃潵浜?jiǎn)銆傚彂寮犳晥鏋滃浘銆傚懙鍛?br>



鎴戞兂鍙戜笂鏉ュ憖銆備絾鏄紶鍒版枃浠墮噷浜?jiǎn)锛屼笉鐭ラ亾鎬庝箞鎻掑埌榪欓噷鏉ャ傘?br>
娓告垙榪樻湁涓鐐規(guī)湭瀹屻傛病鏈夎鍒嗙郴緇熴傝繕鏈夊氨鏄父鎴忔彁紺洪偅閲屽皯浜?jiǎn)涓?nbsp;  絀烘牸錛氭秷闄ゆ柟鍧?

]]>
HGE涓殑娓告垙GUI浠g爜闃呰http://www.shnenglu.com/Leaf/archive/2009/05/18/83270.htmlRender DonkeyRender DonkeyMon, 18 May 2009 04:47:00 GMThttp://www.shnenglu.com/Leaf/archive/2009/05/18/83270.htmlhttp://www.shnenglu.com/Leaf/comments/83270.htmlhttp://www.shnenglu.com/Leaf/archive/2009/05/18/83270.html#Feedback0http://www.shnenglu.com/Leaf/comments/commentRss/83270.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/83270.html鍘?/font>浣滆?: Kevin Lynx
BLOG: http://blog.csdn.net/kevinlynx


絎竴閮ㄥ垎錛?br>
HGE helper綾諱腑鐨凣UI錛?br>
寮曟搸鐗堟湰錛?.60release銆?br>


鏂囦歡錛歨gegui.h , hgegui.cpp, hgeguictrls.h , hgeguictrls.cpp

澶ц嚧綾誨浘錛?br>


鍏朵腑錛宧geGUIObject鏄娊璞″熀綾伙紝鍏蜂綋鐨勬帶浠剁被濡傛寜閽紝鏂囨湰鏍囩錛岄兘鏄粠瀹冩淳鐢熻屾潵銆侶geGUI灞炰簬鏁翠釜GUI緋葷粺鐨刴anager錛屽畠浼?xì)淇濆瓨鎵鏈夌殑鎺т歡銆?br>
鍏充簬hgeGUIObject鐨?涓垚鍛樺彉閲忥紝鏂囨。閲屽凡緇忔湁鎵鎻忚堪錛?br>
int id; //鎺т歡ID

bool bStatic; //鏄惁鍙互鎺ュ彈閿洏鐒︾偣

bool bVisible; //鏄惁鍙

bool bEnabled; //鏄惁鏈夋晥

hgeRect rect; //鎺т歡澶у皬



hgeGUI *gui; //鍏跺睘浜庣殑 manager 錛岀浉褰撲簬鐖跺璞?br>
hgeGUIObject *next; //鐢ㄤ簬鍙屽悜閾捐〃錛屾妸鎵鏈夋帶浠惰繛鎺ュ湪涓璧?br>
hgeGUIObject *prev;

static HGE *hge; //鏂逛究浣跨敤HGE鎺ュ彛

鍏充簬鍏墮儴鍒嗘帴鍙g殑鎻忚堪錛?br>
Render: 鐢ㄤ簬娓叉煋鎺т歡鍒板睆騫曚笂

Update: 鐢ㄤ簬鏇存柊鍏跺姩鐢?br>
Enter: 鎺т歡鍒氭樉紺烘椂鐨勫姩鐢?br>
Leave: 鎺т歡瑕佹秷澶辨椂鐨勫姩鐢?br>
IsDone: 鎺т歡鍒氭樉紺哄拰娑堝け鏃剁殑鐘舵佹煡璇㈠嚱鏁?br>


璇ョ被涔熷氨鏄彁渚涗簡(jiǎn)涓涓娊璞¤屽凡錛屽埄鐢–++璇█鐨勫鎬佹満鍒舵潵鏂逛究hgeGUI綆$悊鎵鏈夌殑鎺т歡銆傚叾浠栧叿浣撶殑鎺т歡緇ф壙浜?jiǎn)hgeGUIObject鍚庯紝蹇呴』瀹炵幇鏋勯犲嚱鏁板拰Render鍑芥暟銆?br>


鍏充簬hgeGUI錛?br>
榪欎釜綾誨簲璇ュ睘浜巑anager銆傚畠璐熻矗綆$悊鎵鏈夌殑鎺т歡銆?br>
鍏舵暟鎹垚鍛橈細(xì)

hgeGUIObject *ctrls; //淇濆瓨鎵鏈夋帶浠?br>
hgeGUIObject *ctrlLock; //鍙兘鏄敤鏉ヤ繚瀛樺綋鍓嶈榧犳爣鎿嶄綔鐨勬帶浠?br>
hgeGUIObject *ctrlFocus; //淇濆瓨鐒︾偣鎺т歡

hgeGUIObject *ctrlOver; //鐢ㄦ潵淇濆瓨榧犳爣鎸囬拡鎵鎸囩殑鎺т歡



int navmode;

int nEnterLeave;

hgeSprite *sprCursor; //娓叉煋榧犳爣鎸囬拡鐢ㄧ殑



float mx,my; //榧犳爣鍧愭爣

int nWheel; //婊氳疆鍋忕Щ閲?br>
bool bLPressed, bLLastPressed;//鏈撫宸﹂敭鐘舵侊紝涓婁竴甯х殑宸﹂敭鐘舵?br>
bool bRPressed, bRLastPressed;

鍏禪pdate鏂規(guī)硶浼?xì)璐熻矗鎺т欢鐨剺q涘叆鍜岀寮鍔ㄧ敾錛岃繕浼?xì)璐熻矗鏁翠綋鐨勭姸鎬佽緗?--鍝簺鎺т歡鎷ユ湁鐒︾偣錛屽摢浜涙帶浠惰榧犳爣姝e湪鎿嶄綔錛屽摢浜涙帶浠舵琚紶鏍囨寚閽堟寚鐫錛岃繖浜涙帶浠跺畠閮戒細(xì)淇濆瓨璧鋒潵銆傦紙涔熷氨鏄錛屾垜浠繕鏄彲浠ラ氳繃媯(gè)鏌ユ帶浠剁殑鐘舵佹潵璁劇疆褰撻紶鏍囨寚閽堝湪鍏朵笂鏃剁殑鏂板姩鐢匯傦級(jí)



鎬諱綋鑰岃█錛岃寮曟搸鐨凣UI榪樻槸寰堢畝鍗曠殑銆備竴涓猰anager錛岃礋璐g鐞嗘墍鏈夌殑鎺т歡錛岀劧鍚庝竴涓娊璞″熀綾伙紝鐢ㄦ潵鍗忓姪manager綆$悊---鍏朵粬鍏蜂綋鐨勬帶浠墮兘蹇呴』浠庨偅涓娊璞″熀綾繪淳鐢熴?br>


涓嬮潰鍏蜂綋鐪嬩竴涓狟utton鎺т歡錛?br>
Button綾葷殑瀹氫箟濡備笅錛?br>
class hgeGUIButton : public hgeGUIObject

{

public:

hgeGUIButton(int id, float x, float y, float w, float h, HTEXTURE tex, float tx, float ty);

virtual ~hgeGUIButton();



void SetMode(bool _bTrigger) { bTrigger=_bTrigger; }

void SetState(bool _bPressed) { bPressed=_bPressed; }

bool GetState() const { return bPressed; }



virtual void Render();

virtual bool MouseLButton(bool bDown);



private:

bool bTrigger;

bool bPressed;

bool bOldState;

hgeSprite *sprUp, *sprDown;

};

鍏朵腑bTrigger琛ㄧず璇ユ寜閽殑琛屼負(fù)鏄惁璞′竴涓猂adioButton錛宐Pressed琛ㄧず褰撳墠鎸夐挳鏄惁琚寜涓嬶紝bOldState琛ㄧず涓婁竴嬈℃寜閽姸鎬侊紝鐗瑰埆鐢ㄦ潵瀹炵幇bTrigger鐨勶紝sprUp,sprDown鍒嗗埆鐢ㄦ潵緇樺埗寮硅搗鍜屾寜涓嬫椂鐨勬寜閽瑙傘傝繖涓や釜綺劇伒鐨勫垱寤洪兘鏄粠鏋勯犲嚱鏁扮殑tex涓婂垱寤鴻屾潵鐨勶紝瀹冭姹備袱涓姸鎬佸繀欏諱繚瀛樺湪涓騫呯汗鐞嗕笂錛屼笖欏哄簭涓轟粠宸﹁嚦鍙熾?br>
鎸夐挳鐨勫疄鐜頒唬鐮佷篃寰堢畝鍗曪細(xì)

void hgeGUIButton::Render()

{

if(bPressed) sprDown->Render(rect.x1, rect.y1);

else sprUp->Render(rect.x1, rect.y1);

}



bool hgeGUIButton::MouseLButton(bool bDown)

{

if(bDown)

{

bOldState=bPressed; bPressed=true;

return false;

}

else

{

if(bTrigger) bPressed=!bOldState;

else bPressed=false;

return true;

}

}



鑱旂郴璧鋒潵錛屽綋hgeGUI::Update閲屽鐞哖rocessCtrl鏃訛紝濡傛灉榧犳爣宸﹂敭鎸変笅涓斿叾鎸囬拡鍦ㄦ寜閽寖鍥村唴錛岄偅涔堝氨璋冪敤hgeGUIButton::MouseLButton( true )錛岃繖涓椂鍊檅utton鐨刡Pressed=true,閭d箞鍦ㄦ覆鏌撶殑鏃跺欙紝鑷劧灝辮〃鐜板嚭琚寜涓嬫椂鐨勭姸鎬併?br>
浜嬪疄涓婂浜庤繖縐嶇被鍨嬬殑鎸夐挳---濡傚悓windows涓嬬殑紿椾綋鎸夐挳錛屾垜浠竴鑸笉媯(gè)鏌ュ叾鏄惁琚寜涓嬶紝鑰屾槸媯(gè)鏌ュ叾鏄惁鍙戠敓浜?jiǎn)clicked 榪欎釜浜嬩歡錛岃岃繖涓簨浠舵槸鍦ㄥ厛鎸変笅鍦ㄥ脊璧風(fēng)殑鎯呭喌涓嬪彂鐢熺殑銆傚洜姝わ紝鍒ゆ柇璇ヤ簨浠跺彂鐢熺殑鏉′歡灝變負(fù)錛氫笂涓甯х姸鎬佽鎸変笅錛岃繖涓甯ф病琚寜涓嬨?br>


铏界劧HGE寮曟搸鐨凣UI寰堢畝鍗曪紝浣嗘槸鍏舵墿灞曟у緢濂姐傚洜涓篽geGUI::Update鍩烘湰涓婃淳鍙戜簡(jiǎn)鎵鏈夋帶浠墮渶瑕佺殑娑堟伅---閿洏鎿嶄綔錛屼互鍙?qiáng)榧犳爣鎿嶄綔锛涜宧geGUIObject鍩虹被鐨勫緢澶氭垚鍛樺嚱鏁伴兘浼?xì)澶勭悊杩欎簺娑堟伅锛屾垜浠彧闇瑕佹淳鐢焗geGUIObject錛岀劧鍚庨噸杞芥垜浠渶瑕佺殑娑堟伅澶勭悊鍗沖彲銆?br>
絎簩閮ㄥ垎錛?br>
HGE鎵╁睍GUI搴擄紝浠嶩GE瀹樻柟璁哄潧涓嬭澆錛堜綔鑰呬笉鏄庯級(jí)錛?br>
宸ョ▼緇撴瀯錛?br>


鍏朵腑錛実uitest.cpp涓烘祴璇曟枃浠躲?br>


綾葷粨鏋勶細(xì)



鏁翠釜緋葷粺鐨勫伐浣滃師鐞嗭細(xì)

鐢ㄦ埛緇ф壙鎶借薄鍩虹被GUIApp錛屽疄鐜板叿浣撶殑OnEvent鍑芥暟錛岀劧鍚庤綾諱細(xì)綆$悊鎵鏈夌殑GUIAppWindow瀵硅薄錛孏UIAppWindow紿楀彛瀵硅薄浼?xì)绠$悊鍏朵笂鐨勬墍鏈夊瓙鎺т歡銆?br>


鐩稿簲鍦幫紝GUIApp媧劇敓綾諱細(xì)鐩存帴寰楀埌榧犳爣鍜岄敭鐩樻秷鎭紝鐒跺悗媧懼彂緇欐墍鏈夌獥鍙e璞★紝鐒跺悗紿楀彛瀵硅薄鍐嶆妸娑堟伅媧懼彂鍒板叿浣撶殑鎺т歡瀵硅薄涓娿?br>


榪欑Parent-Child鍏崇郴澶ц嚧涓猴細(xì)


GUIAppWindow綾諱繚瀛樻湁鍏舵墍灞炵殑GUIApp瀵硅薄鎸囬拡錛屾瘡涓叿浣撶殑鎺т歡鍙堜繚瀛樻湁鍏舵墍灞炵殑GUIAppWindow 鐨勫璞℃寚閽堛?br>


褰撲竴涓帶浠跺鐞嗕簡(jiǎn)鏌愪釜浜嬩歡鍚庯紝渚嬪鎸夐挳澶勭悊浜?jiǎn)榧犳爣鍗曞囍M簨浠訛紝瀹冨氨闇瑕佸憡璇夊鐣岀敤鎴峰崟鍑諱簡(jiǎn)榪欎釜鎸夐挳銆傝繖閲岄噰鐢ㄧ殑鏂規(guī)硶鏄細(xì)鍦ㄥ熀綾籊UIAppObject閲屽畾涔変簡(jiǎn)涓涓櫄鍑芥暟OnEvent( int id)

錛岀劧鍚庡湪鍏舵淳鐢熺被GUIAppWindow閲屾妸榪欎釜鍑芥暟閲嶈澆涓虹函铏氬嚱鏁幫紝鍑芥暟鏈変竴涓弬鏁幫紝閭e氨鏄帶浠禝D銆傚綋涓涓帶浠跺鐞嗕簡(jiǎn)鏌愪釜浜嬩歡鍚庯紝灝遍氳繃鍏跺唴閮ㄤ繚瀛樼殑鐖剁獥鍙f寚閽堟潵璋冪敤OnEvent鍑芥暟錛岀劧鍚嶨UIAppWindow鐨勬淳鐢熺被---濡傛灉璇ョ被鑳戒駭鐢熷璞★紝閭d箞鍏跺繀鐒跺疄鐜頒簡(jiǎn)OnEvent鐨勫叿浣撲唬鐮侊紙榪欏氨鏄負(fù)浠涔堝湪GUIAppWindow閲岃鎶奜nEvent鍙堥噸杞戒負(fù)綰櫄鍑芥暟鐨勫師鍥狅級(jí)錛岀劧鍚庡湪姝や唬鐮侀噷錛岀獥鍙f牴鎹紶榪涙潵鐨勬帶浠禝D鏉ュ緱鐭ュ摢涓帶浠跺彂鐢熶簡(jiǎn)浜嬩歡錛?br>


GUIAppWindow閲屾湁涓涓鍣紝瀹冧繚瀛樹簡(jiǎn)鎵鏈夎紿楀彛涓婄殑鎺т歡銆?br>


鎵鏈夋帶浠跺啀鍒涘緩鏃訛紝閮芥槸浠ュ叾鐖剁獥鍙d負(fù)鍙傝冨潗鏍囩郴鐨勶紝涔熷氨鏄浉瀵瑰潗鏍囷紝浣嗘槸鍏跺疄闄呬繚瀛樼殑鍧愭爣鍗存槸緇濆鍧愭爣鈥旀棦鐩稿浜庢暣涓睆騫曠殑鍧愭爣錛堝鏋滄槸紿楀彛紼嬪簭錛屽氨鐩稿浜庢暣涓獥鍙o級(jí)銆傚ぇ鑷磋繃紼嬩負(fù)錛氬湪GUIAppWindow媧劇敓綾諱腑鍒涘緩瀛愭帶浠舵椂錛岀粰瀛愭帶浠舵寚瀹氱殑鍧愭爣涓虹浉瀵瑰潗鏍囷紝鐒跺悗褰?AddCtrl 鏃跺氨浼?xì)閲嶆柊鎶婂瓙鎺т欢鐨勫潗鏍囨敼鍙樹负缁濆鍧愭爣銆?br>


GUIApp閲岀洿鎺ユ湁浜?jiǎn)BeginScene鍜孍ndScene鐨勬覆鏌撲唬鐮併?br>


瑕佷嬌鐢ㄨ鎵╁睍搴擄紝澶ц嚧姝ラ涓猴細(xì)

1錛?緇ф壙GUIAppWindow綾伙紝鍦ㄨ繖涓淳鐢熺被閲岄噸杞藉叿浣撶殑澶勭悊OnEvent鐨勫嚱鏁幫紝騫跺垱寤烘墍鏈夎紿楀彛涓婄殑瀛愭帶浠躲?br>
2錛?緇ф壙GUIApp綾伙紝鍦ㄨ繖涓淳鐢熺被涓垱寤虹獥鍙e璞★紝騫舵妸紿楀彛瀵硅薄AddCtrl錛屽湪榪欓噷鍙互榪涜鍏朵粬鐨勫垵濮嬪寲宸ヤ綔

3錛?鍦‵rameFunc閲岃皟鐢℅UIApp::FrameFunc鍑芥暟銆?br>


鎬諱綋鑰岃█錛岃繖涓墿灞旼UI涓昏鏄墿灞曚簡(jiǎn)GUI Manager浠ュ強(qiáng)GUI Object錛屽茍涓斿姞鍏ヤ簡(jiǎn)Parent-Child鏈哄埗銆傛瘮杈冪粡鍏哥殑閮ㄥ垎鍦ㄤ簬鎻愪緵浜?jiǎn)涓涓?OnEvent 鍑芥暟錛岃繖鏍峰氨鍙互璁╁鎴風(fēng)▼搴忓憳鑳藉寰楃煡紿椾綋涓婄殑鎺т歡鍙戠敓鐨勪簨浠躲?----鍏跺疄榪欑鏂規(guī)硶鐨勭洰鐨勫氨璺焀indows涓殑娑堟伅鏈哄埗錛孮t涓殑signal/slot鏈哄埗涓鏍楓?br>

]]>
錛圤GRE錛塐verlay涓枃鏄劇ず http://www.shnenglu.com/Leaf/archive/2009/05/17/83234.htmlRender DonkeyRender DonkeySun, 17 May 2009 15:59:00 GMThttp://www.shnenglu.com/Leaf/archive/2009/05/17/83234.htmlhttp://www.shnenglu.com/Leaf/comments/83234.htmlhttp://www.shnenglu.com/Leaf/archive/2009/05/17/83234.html#Feedback0http://www.shnenglu.com/Leaf/comments/commentRss/83234.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/83234.html

榪戞棩寰堝鏈嬪弸鍜ㄨOverlay涓枃鏄劇ず闂錛屽洖絳旂殑澶氫簡(jiǎn)鎯崇儲(chǔ)鎬у啀鍐欎釜鏂囨。綆椾簡(jiǎn)錛屾斁鍦ㄧ綉涓婂叡浜紝浜庢槸灝辨湁浜?jiǎn)鏈媷銆?/span>

       鍦?span>Ogre1.2.5鐗堟湰涓紝閫氳繃涓?span>Ogre瀹樻柟璁哄潧鐨勫紑鍙戣呰璁哄疄鐜頒簡(jiǎn)Overlay鐨勪腑鏂囨樉紺猴紝褰撳垵鐨勫疄鐜伴潪甯哥殑鎬紓錛屽叿浣撶殑瀹炵幇鍙互鍙傝Ogre瀹樻柟璁哄潧銆?/span>

闅忕潃Ogre鐨勬洿鏂幫紝鐜板湪Ogre宸茬粡鍙戝竷浜?span>1.4.7錛?span>1.4緋誨垪鐗堟湰鏈変竴涓噸瑕佺殑鏀硅繘錛屽氨鏄姞鍏ヤ簡(jiǎn)UTFString錛岃繖涓?span>Ogre涓枃鏄劇ず浜堜互寰堝ぇ鐨勫府鍔┿備負(fù)浜?jiǎn)渚夸簬婕斀C猴紝鎴戠洿鎺ヤ嬌鐢?span>Ogre鑷甫鐨?span>Overlay錛屼篃灝辨槸澶у鐔熸?zhèn)夌?span>DebugOverlay錛屾祴璇曞伐紼嬫垜閫夋嫨Demo_ParticleFX錛岄夋嫨鍏朵粬鐨勪篃娌℃湁鍏崇郴銆傜幇鍦ㄧ紪璇戝畠錛岃繍琛屽悗寰楀埌涓嬪浘錛?/span>


鍥劇殑鏈宸︿笅瑙掓樉紺虹殑灝辨槸鑻辨枃DebugOverlay錛屾帴涓嬫潵鎴戜滑鐨勪換鍔″氨鏄妸瀹冪紪紼嬩腑鏂囩殑錛?span>^_^
銆?/span>

Overlay涓枃鍖栨搷浣滄楠ゅ涓?/span>

1.      鎵撳紑OgreSDK\media\packs\ OgreCore.zip銆?/span>

2.      鎵撳紑C:\WINDOWS\Fonts錛屾妸simhei.ttf娣誨姞鍒?span>OgreCore.zip錛岋紙浠涔堬紝娌℃湁simhei.ttf榪欎釜鏂囦歡錛岄偅灝辮繕鍏朵粬鐨勪腑鏂?span>ttf瀛椾綋鍚э級(jí)銆?/span>

3.      鎵撳紑OgreCore.zip涓殑Ogre.fontdef錛岄噷闈㈡湁BlueHighway榪欎釜瀛椾綋瀹氫箟鍧楋紝鍦ㄤ粬鐨勪笅闈㈡坊鍔犳垜浠殑SimHei錛?span>code_points閲岄潰鐨勪竴澶у爢鏁板瓧鐪嬩笉鏄庣櫧娌″叧緋伙紝闅忓悗鏂囩珷浼?xì)瑙i噴銆?/span>

SimHei

{

       type             truetype

       source         simhei.ttf

       size              16

       resolution  96

       code_points 33-166 24403-24403 21069-21069 24103-24103 36895-36895 29575-29575 24179-24179 22343-22343 26368-26368 39640-39640 20302-20302 19977-19977 35282-35282 24418-24418 25968-25968 37327-37327 25209-25209 27425-27425

}

4.      鎵撳紑OgreCore.zip涓殑OgreDebugPanel.overlay錛屾妸BlueHighway鍏ㄩ儴鏇挎崲鎴?span>SimHei錛屾垜浠浣跨敤涓枃瀛椾綋浜?jiǎn)锛屽樋鍢裤?/span>

5.      淇敼瀹屾垚鍚庯紝紜繚鎵鍋氱殑淇敼宸茬粡淇濆瓨鍒?span>OgreCore.zip銆?/span>

6.      榪涘叆Ogre瑙e喅鏂規(guī)錛屾墦寮鏂囦歡ExampleFrameListener.h錛屾妸54-59琛岀殑浠g爜鏇挎崲濡備笅錛?/span>

              static String currFps = "Current FPS: ";

              static String avgFps = "Average FPS: ";

              static String bestFps = "Best FPS: ";

              static String worstFps = "Worst FPS: ";

              static String tris = "Triangle Count: ";

       static String batches = "Batch Count: ";

 

              static DisplayString currFps = L"褰撳墠甯ч熺巼: ";

              static DisplayString avgFps = L"騫沖潎甯ч熺巼: ";

              static DisplayString bestFps = L"鏈楂樺撫閫熺巼: ";

              static DisplayString worstFps = L"鏈浣庡撫閫熺巼: ";

              static DisplayString tris = L"涓夎褰㈡暟閲?span>: ";

              static DisplayString batches = L"鎵規(guī): ";

7.      鏈鍚庨噸鏂扮紪璇戝伐紼嬶紝涓嬮潰鏄垜榪愯鐨勬埅鍥撅紝鏄笉鏄凡緇忔樉紺轟腑鏂囦簡(jiǎn)錛?span>^_^銆?/span>


鐜板湪鍐嶆潵鐪嬬湅SimHei涓殑code_points鏄浣曠敓鎴愮殑錛岃繖涓彲浠ュ弬鑰冩垜涓婃鍐欑殑榪欑瘒鏂囩珷http://www.cnblogs.com/gogoplayer/archive/2008/05/09/1189795.html錛岃嚦姝わ紝瀹炵幇Overlay涓枃鏄劇ず銆?/span>

杞澆璇鋒敞鏄庡嚭澶勶細(xì)

浣滆咃細(xì)gogoplayer

E-mail : gogoplayer@163.com

QQ : 78939328

http://www.gogoplayer.com.cn

]]>
OGRE涓昏娓叉煋嫻佺▼綆浠?/title><link>http://www.shnenglu.com/Leaf/archive/2009/05/17/83233.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Sun, 17 May 2009 15:56:00 GMT</pubDate><guid>http://www.shnenglu.com/Leaf/archive/2009/05/17/83233.html</guid><wfw:comment>http://www.shnenglu.com/Leaf/comments/83233.html</wfw:comment><comments>http://www.shnenglu.com/Leaf/archive/2009/05/17/83233.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/Leaf/comments/commentRss/83233.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Leaf/services/trackbacks/83233.html</trackback:ping><description><![CDATA[<div id="hvzpftn" class=postbody><font size=5>OGRE涓昏娓叉煋嫻佺▼綆浠?/font> <p>                                    璋紵浜?nbsp;      feiyurainy@163.com</p> <p>                               杞澆璇鋒敞鏄庡嚭澶?/p> <p>    寰堟棭浠ュ墠灝辨兂鍐欎竴浜涘叧浜?span>OGRE</span><span>鐨勬枃绔犱簡(jiǎn)錛屼竴鐩存病鏈轟細(xì)銆?/span> </p> <p><span>    鐞嗚В涓涓覆鏌撳紩鎿庯紝鎴戣寰楁渶閲嶈鐨勬槸鍏堟姄浣忎簡(jiǎn)瀹冪殑涓繪灦鏋勶紝瀹冪殑涓葷嚎錛屾覆鏌撴祦紼嬶紝涓嶇劧鐨勮瘽錛屼竴涓紩鎿庡嚑涓囪錛岀敋鑷沖嚑鍗佷竾琛岀殑浠g爜錛屽厜鏄墦寮</span><span>solution</span><span>灝辮兘鍚撲綘涓璺充簡(jiǎn)錛?/span><span>OGRE</span><span>涔熸湁鍗佸嚑涓囪鐨勪唬鐮侀噺錛屾垜涓寮濮嬬湅瀹冪殑鏃跺欎篃鏄棤浠庝笅鎵嬶紝鎰熻浠g爜澶浜?jiǎn)锛屼笉鐭ラ亾浠庡摢寮濮嬬湅濂斤紝榪欎釜</span><span>class</span><span>鐪嬬湅錛岄偅涓?/span><span>class</span><span>鐪嬬湅錛岀敱浜庡鏁翠釜寮曟搸娌℃湁涓涓竻鏅扮殑璁よ瘑錛岀湅榪囦簡(jiǎn)涔熷嵃璞′笉娣憋紝鎵浠ワ紝鏈鍚庯紝榪樻槸鍐沖畾鍏堟壘鍑哄畠鐨勪富綰匡紝浜?jiǎn)瑙e畠鐨勬覆鏌搵箒绋嬪Q岃繖鏍鋒墠鑳芥湁鏈哄湴鎶婂悇涓儴鍒嗚仈緋昏搗鏉ャ?/span></p> <p><span>    榪欑瘒鐭枃涔熸槸瀵?/span><span>OGRE</span><span>鐨勪富瑕佹覆鏌撴祦紼嬬殑涓涓粙緇嶏紝鍙兘瀵逛竴浜?/span><span>class</span><span>涓嶄細(xì)澶鍦板幓浠嬬粛鍏蜂綋鐨勫疄鐜扮粏鑺傘傛垜鎵鐢ㄧ殑浠g爜閮芥槸鍙栬嚜浜?/span><span>OGRE</span><span>鐨勬渶鏂扮殑</span><span>CVS</span><span>鐗堟湰銆?/span></p> <p><span>    璇昏呮渶濂藉</span><span>OGRE</span><span>鏈変竴瀹氱殑浜?jiǎn)瑙eQ岃嚦灝戝緱鐪嬫噦瀹冪殑</span><span>example</span><span>錛屼笉鐒跺彲鑳戒竴浜涗笢瑗跨悊瑙h搗鏉ユ瘮杈冨洶闅俱傚</span><span>D3D</span><span>錛?/span><span>OPENGL</span><span>鏈変竴瀹氫簡(jiǎn)瑙f洿濂姐?/span></p> <p><span>    濡傛灉浣犵湅榪?/span><span>D3D SDK</span><span>涓甫鐨勪緥瀛愶紝浣犱竴瀹氱煡閬撲竴涓瘮杈冪畝鍗曠殑</span><span>3D</span><span>紼嬪簭瑕佽繍琛岃搗鏉ワ紝鑷沖皯閮戒細(xì)娑夊強(qiáng)浠ヤ笅鐨勫嚑閮ㄥ垎錛?/span></p> <p><span>    棣栧厛鏄暟鎹殑鏉ユ簮錛屽寘鎷《鐐規(guī)暟鎹紝綰圭悊鏁版嵁絳夛紝榪欎簺鏁版嵁鍙互浠庢枃浠朵腑璇誨彇錛屼篃鍙互鍦ㄧ▼搴忚繍琛屾椂鐢熸垚銆?/span></p> <p><span>    鎺ヤ笅鏉ワ紝鎴戜滑浼?xì)寰忕珛椤剁偣缂撳啿鍖烘妸椤剁偣淇濆瓨钃v鏉ワ紝寤虹珛</span><span>texture</span><span>瀵硅薄鏉ヨ〃紺?/span><span>texture</span><span>錛屽欏剁偣緇勬垚鐨勭墿浣撹緗畠鍦ㄤ笘鐣屽潗鏍囩郴涓嬬殑鍧愭爣錛岃緗憚鍍忔満鐨勪綅緗紝瑙嗙偣錛岃緗?/span><span>viewport</span><span>鐨勪綅緗拰澶у皬錛岀劧鍚庡氨鍙互鍦ㄦ覆鏌撳驚鐜腑寮濮嬭皟鐢ㄦ覆鏌撴搷浣滀簡(jiǎn)錛岀粡榪囦簡(jiǎn)</span><span>front buffer</span><span>鍜?/span><span>back buffer</span><span>鐨勪氦鎹紝鎴戜滑灝辮兘鍦ㄥ睆騫曚笂鐪嬪埌</span><span>3D</span><span>鍥懼艦浜?jiǎn)锛屼吉浠g爜濡備笅锛?xì)</span></p> <p><span>      setupVertexBuffer</span></p> <p><span>      setWorldTransform</span></p> <p><span>      setCamera</span></p> <p><span>      setProjectionTransform</span></p> <p><span>      setViewport</span></p> <p>       <span>beginFrame</span></p> <p><span>      setTexture</span></p> <p><span>      drawObject</span></p> <p><span>      endFrame</span> </p> <p><span>     浠ヤ笅灝辨槸娓叉煋涓涓墿浣撶殑涓昏姝ラ錛屽湪鎴戠湅鏉ワ紝榪欏氨鏄?/span><span>3D</span><span>紼嬪簭鐨勪富綰匡紝鍚屾牱閬撶悊錛屾棤璁轟綘澶氬鏉傜殑娓叉煋寮曟搸錛岄兘寰楀疄鐜頒笂榪扮殑榪欎簺姝ラ錛屽叾浠栫殑涓浜涙晥鏋滃闃村獎(jiǎng)錛屽厜鐓х瓑錛岄兘鏄檮鐫鍦ㄨ繖鏉′富綰夸笂鐨勶紝鎵浠ワ紝濡傛灉浣犺兘鍦ㄤ綘鎵鐮旂┒鐨勬覆鏌撳紩鎿庝笂涔熸竻鏅板湴鐪嬪埌榪欐潯涓葷嚎錛屽彲鑳藉浣犳繁鍏ュ湴鐮旂┒瀹冧細(xì)澶ф湁甯姪錛屼笅闈紝鎴戜滑灝變竴璧鋒潵鎵懼埌</span><span>OGRE</span><span>涓殑榪欐潯涓葷嚎銆?/span></p> <p><span>     OGRE</span><span>鐨勬覆鏌撳驚鐜兘鏄搗婧愪簬</span><span>Root::renderOneFrame</span><span>錛岃繖涓嚱鏁板湪</span><span>OGRE</span><span>鑷甫鐨?/span><span>example</span><span>涓槸涓嶄細(xì)鏄懼紡璋冪敤鐨勶紝鍥犱負(fù)</span><span>example</span><span>閮借皟鐢ㄤ簡(jiǎn)</span><span>Root::startRendering</span><span>錛岀敱</span><span>startRendering</span><span>鏉ヨ皟鐢?/span><span>renderOneFrame</span><span>錛屽鏋滀綘鐢?/span><span>OGRE</span><span>鏉ュ啓鐪熸鐨勬父鎴忥紝鎴栬呯紪杈戝櫒錛屼綘鍙兘灝遍渶瑕佸湪鐨勬秷鎭富寰幆涓皟鐢?/span><span>renderOneFrame</span><span>浜?jiǎn)锛寵鍛謵嶆濅箟錛岃繖涓嚱鏁板氨鏄鏁翠釜</span><span>OGRE</span><span>榪涜涓甯х殑鏇存柊錛屽寘鎷姩鐢伙紝娓叉煋鐘舵佺殑鏀瑰彉錛屾覆鏌?/span><span>api</span><span>鐨勮皟鐢ㄧ瓑錛屽湪榪欎釜鍑芥暟涓紝浼?xì)鍖呮嫭浜?jiǎn)鎴戜滑涓婅堪浼唬鐮佺殑鍑犱箮鍏ㄩ儴鍐呭錛屾墍浠ユ槸鏈枃鐨勯噸鐐規(guī)墍鍦ㄣ?/span></p> <p><span>     榪涘叆</span><span>renderOneFrame</span><span>錛屽彲浠ョ湅鍒板ご灝句袱涓?/span><span>fire</span><span>鍑芥暟錛岃繖縐嶅嚱鏁板湪</span><span>OGRE</span><span>涓粡甯稿嚭鐜幫紝涓鑸兘鏄?/span><span>fire…start</span><span>鍜?/span><span>fire…end</span><span>涓璧峰嚭鐜扮殑錛屽湪榪欎簺鍑芥暟涓紝鍙兘浼?xì)澶勭悊涓浜涚敤鎴瘋嚜瀹氫箟鐨勬搷浣滐紝濡?/span><span>_fireFrameStarted</span><span>灝變細(xì)瀵規(guī)墍浠ョ殑</span><span>frameListener</span><span>榪涜澶勭悊錛岃繖浜?/span><span>fire</span><span>鍑芥暟鍙互鏆傛椂涓嶇敤鐞嗕細(xì)錛岀戶緇湅</span><span>_updateAllRenderTargets</span><span>錛屽湪榪欎釜鍑芥暟涓紝浼?xì)濮攱z懼綋鍓嶆墍鐢ㄧ殑</span><span>renderer</span><span>瀵規(guī)墍鏈夊垱寤哄嚭鏉ョ殑</span><span>render target</span><span>榪涜</span><span>update</span><span>錛?/span><span>render target</span><span>涔熷氨鏄覆鏌撶殑鐩殑鍦幫紝涓鑸細(xì)鏈変袱縐嶏紝涓縐嶆槸</span><span>render texture</span><span>錛屼竴縐嶆槸</span><span>render buffer</span><span>錛屾帴鐫榪涘叆</span><span>RenderSystem::_updateAllRenderTargets</span><span>錛屽彲浠ョ湅鍒板湪</span><span>render system</span><span>涓紝瀵瑰垱寤哄嚭鏉ョ殑</span><span>render target</span><span>鏄敤</span><span>RenderTargetPriorityMap</span><span>鏉ヤ繚瀛樼殑錛屼互渚挎寜鐓т竴瀹氱殑欏哄簭鏉ュ</span><span>render target</span><span>榪涜</span><span>update</span><span>錛屽洜涓哄湪娓叉煋鐗╀綋鍒?/span><span>render buffer</span><span>鏃訛紝涓鑸細(xì)鐢ㄥ埌涔嬪墠娓叉煋濂界殑</span><span>render texture</span><span>錛屾墍浠?/span><span>render texture</span><span>褰㈠紡鐨?/span><span>render target</span><span>闇瑕佸湪</span><span>render buffer</span><span>涔嬪墠榪涜鏇存柊銆?/span></p> <p><span>     榪涘叆</span><span>render target</span><span>鐨?/span><span>update</span><span>錛屽彲浠ョ湅鍒幫紝瀹冧粛鐒舵妸</span><span>update</span><span>鎿嶄綔緇х畫浼犻掍笅鍘伙紝璋冪敤鎵鏈夋寕鍦ㄨ繖涓?/span><span>render target</span><span>涓婄殑</span><span>viewport</span><span>鐨?/span><span>update</span><span>銆?/span></p> <p><span>     Viewport</span><span>鍏跺疄灝辨槸瀹氫箟浜?/span><span>render target</span><span>涓婄殑涓鍧楄榪涜鏇存柊鐨勫尯鍩燂紝鎵浠ヤ竴涓?/span><span>render target</span><span>鏄彲浠ユ寕澶氫釜</span><span>viewport</span><span>鐨勶紝浠ュ疄鐜板浜哄鎴樻椂鍒嗗睆錛屾垨鑰呮槸鐢諱腑鐢葷瓑鏁堟灉錛屽彲浠ユ妸</span><span>OGRE</span><span>涓殑</span><span>viewport</span><span>鐪嬫垚鏄繚瀛?/span><span>camera</span><span>鍜?/span><span>rendertarget</span><span>榪欎袱鑰呯殑緇勫悎錛屾妸</span><span>viewport</span><span>涓墍瀹氫箟鐨?/span><span>camera</span><span>鎵鐪嬪埌鐨勫満鏅唴瀹規(guī)覆鏌撳埌</span><span>viewport</span><span>鎵瀹氫箟鐨?/span><span>render target</span><span>鐨勫尯鍩熼噷銆?/span></p> <p><span>     Viewport</span><span>榪樻湁涓涓噸瑕佷俊鎭槸</span><span>ZOrder</span><span>錛屽彲浠ョ湅鍒?/span><span>RenderTarget</span><span>涓殑</span><span>ViewportList</span><span>甯︽湁涓涓瘮杈冨嚱鏁幫紝鎵浠ュ湪</span><span>RenderTarget::update</span><span>涓紝</span><span>ZOrder</span><span>瓚婂皬鐨勶紝瓚婂厛琚覆鏌擄紝鎵浠ワ紝濡傛灉涓や釜</span><span>viewport</span><span>鎵瀹氫箟鐨勫尯鍩熶簰鐩擱噸鍙犱簡(jiǎn)錛岃屼笖</span><span>ZOrder</span><span>鍙堜笉涓鏍鳳紝鏈緇堢殑鏁堟灉灝辨槸</span><span>ZOrder</span><span>灝忕殑</span><span>viewport</span><span>鐨勫唴瀹逛細(xì)琚?/span><span>ZOrder</span><span>澶х殑</span><span>viewport</span><span>鐨勫唴瀹規(guī)墍瑕嗙洊銆?/span></p> <p><span>     緇х畫榪涘叆</span><span>Viewport::update</span><span>錛屽氨鍍忓墠闈㈡墍璇達(dá)紝瀹冭皟鐢ㄥ畠鎵寮曠敤鐨?/span><span>camera</span><span>鏉ユ覆鏌撴暣涓満鏅紝鑰屽湪</span><span>Camera::_renderScene</span><span>涓紝鏄皟鐢?/span><span>SceneManager::_renderScene(Camera* camera, Viewport* vp, bool includeOverlays)</span><span>銆?/span><span>SceneManager::_renderScene</span><span>閲屽氨鏄叿浣撶殑娓叉煋嫻佺▼浜?jiǎn)銆備粠鍑芥暟鍚嶇О榪樻湁鍙傛暟涔熷彲浠ョ湅鍑烘潵錛岃繖涓嚱鏁扮殑浣滅敤灝辨槸鍒╃敤鎵鎸囧畾鐨?/span><span>camera</span><span>鍜?/span><span>viewport</span><span>錛屾潵鎶婂満鏅腑鐨勫唴瀹規(guī)覆鏌撳埌</span><span>viewport</span><span>鎵鎸囧畾鐨?/span><span>render target</span><span>鐨勬煇鍧楀尯鍩熶腑銆傛牴鎹?/span><span>camera</span><span>錛屾垜浠彲浠ュ畾鍑?/span><span>view matrix</span><span>錛?/span><span>projection matrix</span><span>錛岃繕鍙互榪涜瑙嗛敟鍓旈櫎錛屽彧娓叉煋鐪嬪緱瑙佺殑鐗╀綋銆傛敞鎰忥紝鎴戜滑榪欓噷鍙湅鏍囧噯鐨?/span><span>SceneManager</span><span>鐨勬柟娉曪紝涓嶇湅</span><span>BspSceneManager</span><span>媧劇敓綾葷殑鏂規(guī)硶錛岃屼笖錛屾垜浠細(xì)鎶涘紑璺熶富綰挎棤鍏崇殑鍐呭錛屽瀵?/span><span>shadow</span><span>鐨?/span><span>setup</span><span>錛岄楠煎姩鐢葷殑鎾斁錛?/span><span>shader</span><span>鍙傛暟鐨勪紶閫掔瓑錛屽洜涓烘垜浠彧娉ㄩ噸娓叉煋鐨勪富嫻佺▼銆?/span></p> <p><span>     鍦?/span><span>SceneManager::_renderScene</span><span>涓墍搴旂湅鐨勭涓涓噸瑕佸嚱鏁版槸</span><span>_updateSceneGraph</span><span>錛?/span><span>OGRE</span><span>瀵瑰満鏅殑緇勭粐鏄氳繃鑺傜偣鏍?wèi)鏉ゾl勭粐鐨勶紝涓涓妭鐐癸紝浣犲彲浠ョ湅鎴愭槸絀洪棿涓殑鏌愪簺鍙樻崲鐨勭粍鍚堬紝濡備綅緗紝緙╂斁錛屾棆杞瓑錛岃繖浜涘彉鎹紝浼?xì)浣滅敤鍒版寕鎺ュ湪杩欎簺鑺傜偣涓婄殑鍏蜂綋鐨勭墿浣撶殑淇℃伅锛屼篃灏辨槸璇村Q岃妭鐐逛繚瀛樹簡(jiǎn)</span><span>world transform</span><span>錛屽鍏蜂綋鐨勭墿浣擄紝濡備竴涓漢錛屽湪絀洪棿涓殑瀹氫綅錛岄兘鏄氳繃鎿嶄綔鑺傜偣鏉ュ畬鎴愮殑銆傚悓鏃惰妭鐐硅繕淇濆瓨浜?jiǎn)涓涓笘鐣屽潗鏍囩殑</span><span>AABB</span><span>錛岃繖涓?/span><span>AABB</span><span>鑳藉綰蟲墍鏈夊畠鎵鎸傛帴鐨勭墿浣撶殑澶у皬錛屼富瑕佹槸鐢ㄤ簬瑙嗛敟瑁佸噺鐨勶紝濡傛灉褰撳墠鎽勫儚鏈虹湅涓嶈鏌愪釜鑺傜偣鐨?/span><span>AABB</span><span>錛岄偅涔堣鏄庢憚鍍忔満鐪嬩笉瑙佽妭鐐規(guī)墍鎸傛帴鐨勬墍鏈夌墿浣擄紝鎵浠ュ湪娓叉煋鏃跺彲浠ュ榪欎釜鑺傜偣瑙嗚屼笉瑙併?/span></p> <p><span>     _updateSceneGraph</span><span>鐨勫唴閮ㄥ鐞嗘瘮杈冪箒鐞愶紝鎴戜滑鍙渶鐭ラ亾錛岀粡榪囦簡(jiǎn)</span><span>_updateSceneGraph</span><span>錛屽満鏅妭鐐規(guī)爲(wèi)涓殑姣忎釜鑺傜偣閮界粡榪囦簡(jiǎn)鏇存柊錛屽寘鎷綅緗紝緙╂斁錛屽拰鏂逛綅錛岃繕鏈夎妭鐐圭殑鍖呭洿鐩掋?/span></p> <p><span>     緇х畫鍥炲埌</span><span>SceneManager::_renderScene</span><span>錛屾帴涓嬫潵瑕佺湅鐨勬槸</span><span>setViewport</span><span>錛屽畠浼?xì)璋冪敤鍏蜂綋鐨?/span><span>renderer</span><span>鐨?/span><span>setviewport</span><span>鐨勬搷浣滐紝璁劇疆</span><span>viewport</span><span>涓墍鎸傛帴鐨?/span><span>render target</span><span>涓哄綋鍓嶆墍瑕佹覆鏌撶殑鐩爣錛?/span><span>viewport</span><span>涓殑鍖哄煙涓哄綋鍓嶆墍瑕佹覆鏌撶殑鐩爣涓殑鍖哄煙銆?/span></p> <p><span>     鎺ヤ笅鏉ヨ紕板埌</span><span>OGRE</span><span>娓叉煋嫻佺▼涓殑涓涓噸瑕佺殑姒傚康錛?/span><span>Render Queue</span><span>銆傝繖涓笢瑗垮疄鍦ㄥ唴瀹規(guī)瘮杈冨錛岃繕鏄互鍚庢湁鏈轟細(xì)鍗曠嫭鎻愬嚭鏉ヨ鍚э紝浣犲彲浠ョ畝鍗曟妸瀹冩兂鎴愭槸涓涓鍣紝閲岄潰鐨勫厓绱犲氨鏄?/span><span>renderable</span><span>錛屾瘡涓?/span><span>renderable</span><span>鍙互鐪嬫垚鏄瘡嬈¤皟鐢?/span><span>drawprimitive</span><span>鍑芥暟鎵娓叉煋鐨勭墿浣擄紝鍙互鏄竴涓ā鍨嬶紝涔熷彲浠ユ槸妯″瀷鐨勪竴閮ㄥ垎銆傚湪</span><span>RenderQueue</span><span>涓紝瀹冧細(xì)鎸夋潗璐ㄦ潵鍒嗙粍榪欎簺</span><span>renderable</span><span>錛岃繕浼?xì)瀵?/span><span>renderable</span><span>榪涜鎺掑簭銆?/span></p> <p><span>     鍦ㄦ瘡涓嬈¤皟鐢?/span><span>SceneManager::_renderScene</span><span>鏃訛紝閮戒細(xì)璋冪敤</span><span>SceneManager::prepareRenderQueue</span><span>鏉ユ竻鐞?/span><span>RenderQueue</span><span>錛岀劧鍚庡啀璋冪敤</span><span>SceneManager::__findVisibleObjects</span><span>鏉ユ妸褰撳墠鎽勫儚鏈烘墍鑳界湅瑙佺殑鐗╀綋閮藉姞鍏ュ埌</span><span>RenderQueue</span><span>涓?/span></p> <p><span>     SceneManager::__findVisibleObjects</span><span>鏄竴涓掑綊鐨勫鐞嗚繃紼嬶紝瀹冧粠鍦烘櫙鐨勬牴鑺傜偣寮濮嬶紝鍏堟鏌ユ憚鍍忔満鏄惁鑳界湅瑙佽繖涓妭鐐圭殑鍖呭洿鐩掞紙鍖呭洿鐩掑湪</span><span>_updateSceneGraph</span><span>鏃跺凡緇忚綆楀ソ浜?jiǎn)锛?jí)錛屽鏋滅湅涓嶈錛岄偅涔堣繖涓妭鐐癸紝榪樻湁瀹冪殑瀛愯妭鐐歸兘涓嶇敤綆′簡(jiǎn)銆傚鏋滆兘鐪嬭錛屽啀媯(gè)嫻嬫寕鍦ㄨ繖涓妭鐐逛笂鐨勬墍鏈?/span><span>MovableObject</span><span>錛屽鏋滃綋鍓嶆墍媯(gè)嫻嬬殑</span><span>MovableObject</span><span>鏄彲瑙佺殑錛屽氨浼?xì)璋冪敤瀹冪?/span><span>_updateRenderQueue</span><span>鏂規(guī)硶錛屼竴鑸湪榪欎釜鏂規(guī)硶閲屽氨鍙互鎶婂拰榪欎釜</span><span>MovableObject</span><span>鐩稿叧鐨?/span><span>renderable</span><span>閫佸叆</span><span>RenderQueue</span><span>浜?jiǎn)銆?/span></p> <p><span>     榪欓噷瑕佽璇?/span><span>MovableObject</span><span>錛?/span><span>MovableObject</span><span>涓昏鏄敤浜庤〃紺哄満鏅腑紱繪暎鐨勭墿浣擄紝濡?/span><span>Entity</span><span>錛岄【鍚嶆濅箟錛岃兘縐誨姩鐨勭墿浣擄紝涓嶈繃瀹冪殑“鑳界Щ鍔?#8221;榪欎釜鑳藉姏鏄閫氳繃</span><span>SceneNode</span><span>鏉ュ疄鐜扮殑錛屾墍浠?/span><span>MovableObject</span><span>鏉ヨ兘鏄劇ず鍑烘潵錛岄鍏堝緱鍏堟寕鎺ュ湪鏌愪釜鍦烘櫙鑺傜偣涓婏紝閫氳繃鍦烘櫙鑺傜偣鏉ュ畾浣嶃備綘鍙互鎺у埗</span><span>MovableObject</span><span>鐨勪竴浜涘睘鎬э紝濡傛煇涓?/span><span>MovableObject</span><span>鏄惁瑕佹樉紺猴紝鏄惁瑕侀殣钘忥紝閮藉彲浠ラ氳繃</span><span>MovableObject::setVisible</span><span>鏂規(guī)硶鏉ュ疄鐜般?/span></p> <p><span>     媯(gè)嫻嬪畬璇ヨ妭鐐逛笂鐨?/span><span>MovableObject</span><span>涔嬪悗錛屽氨緇х畫璋冪敤鎵鏈夊瓙鑺傜偣鐨?/span><span>_findVisibleObjects</span><span>鏂規(guī)硶錛屼竴鐩撮掑綊涓嬪幓銆傝繖鏍鳳紝灝辮兘鎶婂満鏅腑鎵鏈夎娓叉煋鐨?/span><span>renderable</span><span>鎵鍔犲叆鍒?/span><span>RenderQueue</span><span>涓簡(jiǎn)銆?/span></p> <p><span>     鑷蟲錛屾垜浠氨鎷ユ湁浜?jiǎn)瑕佹覆鏌撶殑鐗╀綋鐨勪俊鎭簡(jiǎn)锛屾帴涓嬫潵灏辨槸瀵箻q欎簺鐗╀綋榪涜娓叉煋浜?jiǎn)锛屼綘浼?xì)鍙戠幇璺?/span><span>D3D</span><span>鎴?/span><span>OpenGL</span><span>鐨勪唬鐮佸緢綾諱技鐨勮皟鐢細(xì)</span></p> <p><span><span>       </span>mDestRenderSystem->clearFrameBuffer</span></p> <p><span>      mDestRenderSystem->_beginFrame<span>    </span></span></p> <p><span><span>       </span>mDestRenderSystem->_setProjectionMatrix</span></p> <p><span><span>       </span>mDestRenderSystem->_setViewMatrix </span></p> <p><span><span>       </span>_renderVisibleObjects();</span></p> <p><span>      mDestRenderSystem->_endFrame();</span></p> <p><span>     榪欎簺</span><span>api</span><span>鐨勪綔鐢ㄥ拰</span><span>D3D</span><span>涓殑綾諱技璋冪敤鐨勪綔鐢ㄩ兘宸笉澶氾紝榪欓噷鍐嶈涓涓?/span><span>_renderVisibleObjects()</span><span>錛屽湪榪欎釜鍑芥暟涓紝浼?xì)瀵?/span><span>RenderQueue</span><span>涓殑姣忎釜</span><span>renderable</span><span>榪涜娓叉煋錛岀敤鐨勬槸</span><span>visitor</span><span>妯″紡鏉ラ亶鍘嗘搷浣滄瘡涓?/span><span>renderable</span><span>錛屾渶緇堝湪</span><span>SceneManager::renderSingleObject</span><span>涓彇鍑烘瘡涓?/span><span>renderable</span><span>鎵淇濆瓨鐨勯《鐐癸紝绱㈠紩錛屼笘鐣岀煩闃電瓑淇℃伅錛屾潵榪涜娓叉煋銆傝繖鍏朵腑榪樺寘鎷簡(jiǎn)鏌ユ壘紱昏</span><span>renderable</span><span>鏈榪戠殑鍏夋簮絳夋搷浣滐紝姣旇緝澶嶆潅銆?/span></p> <p><span>     鍒拌繖閲岋紝</span><span>SceneManager::_renderScene</span><span>鐨勬祦紼嬪熀鏈蛋瀹屼簡(jiǎn)錛屼篃灝辨槸璇達(dá)紝</span><span>OGRE</span><span>涓甯т腑鐨勬覆鏌撴祦紼嬪樊涓嶅涔熺粨鏉熶簡(jiǎn)錛屼綘搴旇涔熷彂鐜幫紝榪欎釜嫻佺▼璺熶綘鐢?/span><span>D3D</span><span>鍐欎竴涓畝鍗曠▼搴忕殑嫻佺▼鍩烘湰鏄竴鏍風(fēng)殑錛屽湪榪欎釜嫻佺▼鐨勫熀紜涓婏紝鍐嶅幓鐪嬪叿浣撶殑瀹炵幇錛屽鎬庝箞鏍瘋緗汗鐞嗭紝鎬庝箞鏍瘋皟鐢ㄤ綘鐔熸?zhèn)夌?/span><span>D3D</span><span>鎴?/span><span>OpenGL</span><span>鐨?/span><span>API</span><span>鏉ユ覆鏌撶墿浣擄紝搴旇浼?xì)绠鍗曞緱澶氥?/span></p> <p><span>     瀵?/span><span>OGRE</span><span>鐨勬覆鏌撴祦紼嬬殑澶ф浠嬬粛鍒拌繖閲屼篃緇撴潫浜?jiǎn)锛屽緢澶毦l嗚妭閮芥病娑夊強(qiáng)錛屼互鍚庢湁鏈轟細(xì)鍐嶅啓鍚с?/span></p> </div> <script type=text/javascript> //<![cdata[ Sys.WebForms.PageRequestManager._initialize('AjaxHolder$scriptmanager1', document.getElementById('Form1')); Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tAjaxHolder$UpdatePanel1'], [], [], 90); //]]> </script> <img src ="http://www.shnenglu.com/Leaf/aggbug/83233.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2009-05-17 23:56 <a href="http://www.shnenglu.com/Leaf/archive/2009/05/17/83233.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>娓告垙涓殑璧勬簮綆$悊鈥曗曡祫婧愰珮閫熺紦瀛?/title><link>http://www.shnenglu.com/Leaf/archive/2009/05/17/83230.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Sun, 17 May 2009 15:48:00 GMT</pubDate><guid>http://www.shnenglu.com/Leaf/archive/2009/05/17/83230.html</guid><wfw:comment>http://www.shnenglu.com/Leaf/comments/83230.html</wfw:comment><comments>http://www.shnenglu.com/Leaf/archive/2009/05/17/83230.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Leaf/comments/commentRss/83230.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Leaf/services/trackbacks/83230.html</trackback:ping><description><![CDATA[<div id="hvzpftn" class=postbody> <p>銆婃父鎴忎腑鐨勮祫婧愮鐞嗏曗曡祫婧愰珮閫熺紦瀛樸?br>杞澆璇鋒敞鏄庡嚭澶勶細(xì)<a rel=nofollow target=_blank><u><font color=#800080>http://groups.google.com/group/jianguhan</font></u></a> <br><br><br>1.浠涔堟槸璧勬簮楂橀熺紦瀛?<br>    璧勬簮楂橀熺紦瀛樼殑鍘熺悊涓庡叾瀹冨唴瀛橀珮閫熺紦瀛樼殑宸ヤ綔鍘熺悊鏄浉浼肩殑銆傚湪娓告垙鐨勭姸鎬佽漿鎹㈣繃紼嬩腑錛屾湁浜涙暟鎹槸鍒氭墠浣跨敤榪囩殑錛岄偅涔堢洿鎺ヤ粠璧勬簮楂橀熺紦瀛樹腑杞藉叆鍗沖彲銆備緥濡傦紝RPG­娓告垙涓富瑙掍粠澶у湴鍥捐繘鍏ヤ竴涓埧闂達(dá)紝鎺㈢儲(chǔ)涓鐣悗涓昏閫鍑烘埧闂達(dá)紝姝ゆ椂鍙鐩存帴浠庣紦瀛樹腑杞藉叆澶у湴鍥炬暟鎹嵆鍙紝鑺傜渷浜?jiǎn)浠幖嫭鐩樿浇鍏ユ暟鎹殑鏃堕椷_(dá)紝瑕佺煡閬撲粠紜洏杞藉叆鏁版嵁鏄潪甯?shy;鎱㈢殑銆傚綋鐒?dòng)灱屽鏋滀綘鐨勬父鎴忔墍浣跨敤鐨勬暟鎹枃浠跺緢灝戯紝閭d箞浣犲彲浠ュ湪娓告垙榪愯榪囩▼涓妸榪欎簺鏁版嵁瀹屽叏鍌ㄥ瓨鍦ㄥ唴瀛樹腑錛岃屼笉浣跨敤璧勬簮楂橀熺紦瀛樸?</p> <p><br>2.涓涓畝鍗曠殑璧勬簮楂橀熺紦瀛樼鐞嗗櫒 <br>    涓嬮潰鎴戝皢鍚戜綘灞曠ず涓涓瘮杈冪畝鍗曠殑璧勬簮楂橀熺紦瀛樼鐞嗗櫒錛屾簮浠g爜鏉ヨ嚜鎴戜笂涓涓父鎴忥紝濡傛灉浣犻渶瑕佺煡閬撴洿澶氬叧浜庤祫婧愰珮閫熺紦瀛樻柟闈㈢殑鐭ヨ瘑錛岃鍙傝?lt;<Game Coding Complete>>鐨勭鍏珷銆?<br>棣栧厛錛岄渶瑕佷竴涓満鍒舵潵鍞竴鏍囪瘑涓涓祫婧愶紝鎴戜滑鐢ㄤ笅闈㈣繖涓粨鏋勬潵鍋氳祫婧愬彞鏌勶細(xì) <br>struct ResHandle <br>{ <br>     ResHandle(std::string &resName, void *buffer, int size) <br>     { <br>         m_resName = resName; <br>         m_size   = size; <br>         m_buffer = buffer; <br>     } </p> <p><br>     ~ResHandle() <br>     { <br>         if (m_buffer != 0) delete[] m_buffer; <br>     } </p> <p><br>     std::string   m_resName;    //璧勬簮鍚?<br>     void          *m_buffer;    //璧勬簮鍙ユ焺鎵鏍囪瘑鐨勮祫婧?<br>     DWORD         m_size;       //璧勬簮鎵鍗犲唴瀛樺ぇ灝?</p> <p><br>}; </p> <p><br>濂戒簡(jiǎn)錛岀幇鍦ㄦ垜浠彲浠ヤ粠璧勬簮鍚嶆潵鎵懼嚭榪欎釜璧勬簮浜?jiǎn)锛屾帴涓嬫潵瀹炵幇杩欎釜璧勬簮楂橀熺紦瀛樼鐞嗗櫒錛?<br>class CacheManager <br>{ <br>public: <br>     CacheManager(); <br>     ~CacheManager(); </p> <p>     //杞藉叆璧勬簮錛宺esName涓鴻祫婧愬悕錛岃嫢杞藉叆鎴愬姛size琚涓鴻璧勬簮鐨勫ぇ灝?<br>    //娉ㄦ剰錛岀鐞嗕腑鐨勮祫婧愪笉鑳藉湪綆$悊鍣ㄥ鐢╠elete鏄劇ず鐨勫垹闄ゅ畠 <br>    void*    Load(std::string resName, DWORD *size = 0); <br>    //璁劇疆緙撳瓨澶у皬錛屽崟浣峂B <br>     void      SetCacheSize(int sizeMB)    { m_cacheSize = sizeMB * 1024 * 1024; } <br>     //寰楀埌緙撳瓨澶у皬錛屽崟浣峂B <br>     int      GetCacheSize()              { return m_cacheSize / 1024 /1024; } </p> <p><br>private: <br>     void     Free();                          //閲婃斁lru閾捐〃涓渶鍚庝竴涓祫婧?<br>     void     *Update(ResHandle *res);         //鏇存柊l(fā)ru閾捐〃 <br>     ResHandle *Find(std::string &resName);     //鎵懼嚭璇ヨ祫婧愬悕鐨勮祫婧愬彞鏌?</p> <p><br>private: <br>     DWORD m_cacheSize;     //緙撳瓨澶у皬 <br>     DWORD m_allocated;     //宸蹭嬌鐢ㄧ殑緙撳瓨澶у皬 </p> <p><br>//lru閾捐〃錛岃褰曟渶榪戣浣跨敤榪囩殑璧勬簮 <br>     std::list<ResHandle*>                m_lru;   <br>    //璧勬簮鏍囪瘑鏄犲皠 <br>     std::map<std::string, ResHandle*>    m_resources; </p> <p> </p> <p>}; </p> <p><br>CacheManager:: CacheManager () <br>{ <br>     m_cacheSize = 0; <br>     m_allocated = 0; </p> <p><br>} </p> <p><br>CacheManager::~ CacheManager () <br>{ <br>          while (!m_lru.empty()) Free();   //閲婃斁鎵鏈夌鐞嗕腑鐨勮祫婧?</p> <p><br>} </p> <p><br>void * CacheManager::Load(std::string resName, DWORD *size) <br>{ <br>     ResHandle *handle = Find(resName);   //鏌ユ壘璇ヨ祫婧愭槸鍚﹀湪緙撳瓨涓?</p> <p>     if (handle != 0) //濡傛灉鎵懼埌璇ヨ祫婧愬彞鏌勶紝鍒欒繑鍥炶璧勬簮騫舵洿鏂發(fā)ru閾捐〃 <br>     { <br>         if (size != 0) *size = handle->m_size; <br>         return Update(handle); <br>     } <br>     else <br>     { <br>         //鍏堟嫻嬭祫婧愬ぇ灝?<br>         DWORD _size = 璧勬簮澶у皬; </p> <p><br>         //鏄惁鏈夎凍澶熺┖闂? <br>         while (_size > (m_cacheSize - m_allocated)) <br>         { <br>              if (m_lru.empty()) break; <br>              Free(); <br>         } <br>         m_allocated += _size; </p> <p><br>         buffer = new char[_size]; <br>//鍦ㄨ繖閲岀敤浠諱綍浣犺兘鎯沖埌鐨勫姙娉曡澆鍏ヨ祫婧愭枃浠跺埌buffer <br>         … <br>         … </p> <p><br>//璁板綍褰撳墠璧勬簮 <br>         ResHandle *handle = new ResHandle(resName, buffer, _size); <br>         m_lru.push_front(handle); <br>         m_resources[resName] = handle; </p> <p><br>         if (size != 0) *size = _size; <br>         return buffer; <br>     } </p> <p><br>     return 0; </p> <p> </p> <p>} </p> <p><br>void CacheManager::Free() <br>{ <br>     std::list<ResHandle*>::iterator gonner = m_lru.end(); <br>     gonner--; <br>     ResHandle *handle = *gonner; <br>     m_lru.pop_back(); <br>     m_resources.erase(handle->m_resName); <br>     m_allocated -= handle->m_size; <br>     delete handle; </p> <p><br>} </p> <p><br>void * CacheManager::Update(ResHandle *res) <br>{ <br>     m_lru.remove(res); <br>     m_lru.push_front(res); <br>     m_size = res->m_size; <br>     return res->m_buffer; </p> <p><br>} <br><br>ResHandle * CacheManager::Find(std::string &resName) <br>{ <br>     std::map<std::string, ResHandle*>::iterator it = m_resources.find(resName); <br>     if (it == m_resources.end()) return 0; <br>     return (*it).second; </p> <p><br>} <br><br>鑷蟲錛屼綘宸茬粡鍙互鍦ㄦ父鎴忎腑緙撳瓨浠諱綍浣犳兂緙撳瓨鐨勮祫婧愪簡(jiǎn)^_^ </p> <p>3. 璧勬簮綆$悊榪涢樁 <br>    鑷蟲浣犲凡緇忓彲浠ュ湪娓告垙涓紦瀛樹換浣曚綘鎯崇紦瀛樼殑璧勬簮浜?jiǎn)锛屼絾鏄綘鐨勪徽d姟榪樻病瀹屾垚錛屽綋浣犺姹傜殑璧勬簮瀛樺湪浜庣紦瀛樹箣澶栨椂錛岄偅涓棯鑰鐨勭‖鐩樼伅鍙兘灝辨槸鐜╁鏈鎰熷叴瓚g殑涓滆タ浜?jiǎn)銆?<br>鍥犳浣犲繀欏繪牴鎹笉鍚岀殑娓告垙綾誨瀷浣跨敤涓嶅悓鐨勮澆鍏ユ柟寮忥細(xì) <br>    涓嬈¤澆鍏ユ墍鏈変笢瑗匡細(xì)閫傜敤浜庝換浣曚互鐣岄潰鎴栧叧鍗″垏鎹㈢殑娓告垙 <br>    鍙湪鍏抽敭鐐硅澆鍏ヨ祫婧愶細(xì)寰堝灝勫嚮娓告垙閮戒嬌鐢ㄨ繖鏍風(fēng)殑璁捐錛屽“鍗婃潯鍛?#8221; <br>    鎸佺畫杞藉叆錛氶傜敤浜庡紑鏀懼瀷鍦板浘鐨勬父鎴忥紝濡?#8220;渚犵洍鐚庤濺鎵?#8221; <br>    濡傛灉鏈夊彲鑳界殑璇濓紝浣犺繕鍙互浣跨敤緙撳瓨棰勬祴鏈哄埗錛屽綋CPU鏈夐澶栨椂闂寸殑鏃跺欏彲浠ユ妸鏈潵鍙兘鐢ㄥ埌鐨勮祫婧愯澆鍏ュ埌璧勬簮楂橀熺紦瀛樸?<br>    鏈鍚庯紝灝界鍦ㄦ父鎴忕殑璧勬簮綆$悊涓祫婧愭墦鍖呬笉鏄繀欏葷殑錛屼絾浠嶇劧寤鴻澶у鎶婅祫婧愭枃浠舵寜綾誨瀷鍒嗗埆鎵撳寘鍒板崟涓鐨勬枃浠朵腑錛岃繖灝嗕負(fù)浣犺妭鐪佺鐩樼┖闂達(dá)紝騫跺姞蹇父鎴忕殑杞藉叆閫熷害銆?</p> </div> <script type=text/javascript> //<![cdata[ Sys.WebForms.PageRequestManager._initialize('AjaxHolder$scriptmanager1', document.getElementById('Form1')); Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tAjaxHolder$UpdatePanel1'], [], [], 90); //]]> </script> <img src ="http://www.shnenglu.com/Leaf/aggbug/83230.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2009-05-17 23:48 <a href="http://www.shnenglu.com/Leaf/archive/2009/05/17/83230.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>娓告垙寮鍙戜腑甯哥敤鐨勮璁℃ā寮?/title><link>http://www.shnenglu.com/Leaf/archive/2009/05/17/83227.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Sun, 17 May 2009 15:36:00 GMT</pubDate><guid>http://www.shnenglu.com/Leaf/archive/2009/05/17/83227.html</guid><wfw:comment>http://www.shnenglu.com/Leaf/comments/83227.html</wfw:comment><comments>http://www.shnenglu.com/Leaf/archive/2009/05/17/83227.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Leaf/comments/commentRss/83227.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Leaf/services/trackbacks/83227.html</trackback:ping><description><![CDATA[<div> <p><font size=3><span>鍑?guó)檱猦ttp://blog.csdn.net/duzhi5368/archive/2008/04/22/2314232.aspx<br></span></font></p> <p><font size=3><span>浣跨敤璁捐妯″紡鏉ユ彁楂樼▼搴忓簱鐨勯噸澶嶅埄鐢ㄦф槸澶у瀷紼嬪簭欏圭洰寮鍙戝繀欏葷殑銆備絾鏄湪“鍥涗漢甯?#8221;鐨勮璁℃ā寮忔榪頒腑鎻愬埌浜?/span><span><font face="Times New Roman">23</font></span><span>縐嶆爣鍑嗚璁℃ā寮忥紝涓嶄絾闅句互璁頒綇錛岃屼笖鏈変簺璁捐妯″紡鏇村鐨勯傜敤浜庡簲鐢ㄧ▼搴忓紑鍙戯紝瀵規(guī)父鎴忛」鐩紩鎿庤璁″茍娌℃湁寰堝鐨勫埄鐢ㄤ環(huán)鍊箋傛牴鎹粡楠岋紝綺炬寫緇嗛夊悗錛岀瑑蹇楀湪榪欓噷璁板綍涓浜涜嚜璁や負(fù)鏈夊埄鐢ㄤ環(huán)鍊肩殑璁捐妯″紡錛屼互渚夸箣鍚庤嚜宸辮璁℃椂浣跨敤銆?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <h2><span>涓錛氳瀵熻?/span><span>Observer</span></h2> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><strong><span>瑙傚療鑰呯殑璁捐鎰忓浘鍜屼綔鐢ㄦ槸</span></strong><span>錛?/span><span><span><font face="Times New Roman"> </font></span></span><span>瀹冨皢瀵硅薄涓庡璞′箣闂村垱寤轟竴縐嶄緷璧栧叧緋伙紝褰撳叾涓竴涓璞″彂鐢熷彉鍖栨椂錛屽畠浼?xì)灏啒q欎釜鍙樺寲閫氱煡緇欎笌鍏跺垱寤哄叧緋葷殑瀵硅薄涓紝瀹炵幇鑷姩鍖栫殑閫氱煡鏇存柊銆?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>娓告垙涓瀵熻呯殑閫傜敤鐜鏈?/span></strong><span>錛?/span><span><span><font face="Times New Roman"> </font></span></span></font></p> <p><font size=3><span><font face="Times New Roman">1</font></span><span>錛?/span><span><font face="Times New Roman">UI</font></span><span>鎺т歡綆$悊綾匯傚綋鎴戜滑鐨?/span><span><font face="Times New Roman">GUI</font></span><span>鎺т歡閮戒嬌鐢ㄨ瀵熻呮ā寮忓悗錛岄偅涔堢敤鎴風(fēng)殑浠諱綍鐣岄潰鐩稿叧鎿嶄綔鍜屾敼鍙橀兘灝嗕細(xì)閫氱煡鍏跺叧鑱斿璞?/span><span><font face="Times New Roman">-----</font></span><span>鎴戜滑鐨?/span><span><font face="Times New Roman">UI</font></span><span>浜嬩歡鏈恒?/span></font></p> <p><font size=3><span><font face="Times New Roman">2</font></span><span>錛氬姩鐢葷鐞嗗櫒銆傚緢澶氭椂鍊欐垜浠湪鎾斁涓涓姩鐢繪、鐨勬椂鍊欙紝瀵瑰叾</span><span><font face="Times New Roman">Frame</font></span><span>鏈夊緢澶у叴瓚o紝姝ゆ椂鎴戜滑璁劇疆涓涓?/span><span><font face="Times New Roman">FrameLister</font></span><span>瀵硅薄瀵瑰叾榪涜鐩戣錛岃幏寰楁垜浠叧蹇?jī)鐨勪簨錃g榪涜澶勭悊鏄繀欏葷殑銆?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><strong><span>瑙傚療鑰呬吉浠g爜</span></strong><strong><span>錛?/span></strong></font></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>琚瀵熷璞$洰鏍囩被</span></font></p> <p><span><font size=3 face="Times New Roman">Class Subject</font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>// </font></span><span>瀵規(guī)湰鐩爣緇戝畾涓涓瀵熻?/span><span><font face="Times New Roman"> Attach( Observer );</font></span></font></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>// </font></span><span>瑙i櫎涓涓瀵熻呯殑緇戝畾</span><span><font face="Times New Roman"><span>   </span>DeleteAttach( Observer );</font></span></font></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>// </font></span><span>鏈洰鏍囧彂鐢熸敼鍙樹簡(jiǎn)錛岄氱煡鎵鏈夌殑瑙傚療鑰咃紝浣嗘病鏈変紶閫掓敼鍔ㄤ簡(jiǎn)浠涔?/span></font></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>Notity()</font></font></span></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>{</font></font></span></p> <p><font size=3><span><font face="Times New Roman"><span>              </span>For ( …</font></span><span>閬嶅巻鏁翠釜</span><span><font face="Times New Roman">ObserverList …)</font></span></font></p> <p><span><font size=3><font face="Times New Roman"><span>              </span>{ pObserver ->Update(); }</font></font></span></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>瀵硅瀵熻呮毚闇茬殑鎺ュ彛錛岃瑙傚療鑰呭彲鑾峰緱鏈被鏈変粈涔堝彉鍔?/span><span><font face="Times New Roman">GetState();</font></span></font></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>瑙傚療鑰?/span><span><font face="Times New Roman">/</font></span><span>鐩戝惉鑰呯被</span></font></p> <p><span><font size=3 face="Times New Roman">Class Observer</font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>// </font></span><span>鏆撮湶緇欏璞$洰鏍囩被鐨勫嚱鏁幫紝褰撶洃鍚殑瀵硅薄鍙戠敓浜?jiǎn)鍙樺姩锛屽垯瀹冧細(xì)璋冪敤鏈嚱鏁伴氱煡瑙傚療鑰?/span><span><font face="Times New Roman"> </font></span></font></p> <p><span><font size=3 face="Times New Roman">Void Update () </font></span></p> <p><span><font size=3 face="Times New Roman">{ </font></span></p> <p><font size=3><span><font face="Times New Roman">pSubject ->GetState(); // </font></span><span>鑾峰彇鐩戝惉瀵硅薄鍙戠敓浜?jiǎn)浠涔堝彉鍖?/span><font face="Times New Roman"> </font></font></p> <p><font size=3><span><font face="Times New Roman">TODO</font></span><span>錛?/span><span><font face="Times New Roman">DisposeFun(); // </font></span><span>鏍規(guī)嵁鐘舵佷笉鍚岋紝緇欎簣涓嶅悓鐨勫鐞?/span></font></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><strong><span>闈炵▼搴忚璦鎻忚堪</span></strong><span>錛?/span></font></p> <p><font size=3><span><font face="Times New Roman">A</font></span><span>鏄?/span><span><font face="Times New Roman">B</font></span><span>鐨勫ソ鏈嬪弸錛屽</span><span><font face="Times New Roman">B</font></span><span>鐨勮涓洪潪甯稿叧蹇?jī)銆?/span><span><font face="Times New Roman">B</font></span><span>瑕佸嚭闂紝姝ゆ椂</span><span><font face="Times New Roman">A</font></span><span>緇欎簡(jiǎn)</span><span><font face="Times New Roman">B</font></span><span>涓涓鎶ュ櫒錛屽憡璇?/span><span><font face="Times New Roman">B</font></span><span>璇達(dá)細(xì)“濡傛灉浣犳湁浜嬶紝绔嬪埢鎸夎繖涓鎶ュ櫒鍛婅瘔鎴戙?#8221;銆傜粨鏋?/span><span><font face="Times New Roman">B</font></span><span>鍦ㄥ闈㈤亣涓婁簡(jiǎn)楹葷儲(chǔ)錛屾寜涓嬭鎶ュ櫒錛?/span><span><font face="Times New Roman">Update()</font></span><span>錛夛紝</span><span><font face="Times New Roman">B</font></span><span>灝辯煡閬?/span><span><font face="Times New Roman">A</font></span><span>鍑轟簡(jiǎn)浜嬶紝浜庢槸灝辮皟鏌ヤ竴涓?/span><span><font face="Times New Roman">B</font></span><span>鍒板簳閬囧埌浜?jiǎn)浠涔堥夯鐑?/span><span><font face="Times New Roman">(GetState())</font></span><span>錛屽綋鐭ラ亾</span><span><font face="Times New Roman">B</font></span><span>鍘熸潵鏄洜涓鴻浜烘墦浜?jiǎn)锛屼簬鏄珛鍒粯q涜澶勭悊</span><span><font face="Times New Roman">DisposeFun()</font></span><span>錛屾淳浜?jiǎn)涓緹ゆ墜涓嬪府</span><span><font face="Times New Roman">B</font></span><span>鎵撴灦銆?/span></font></p> <p><font size=3><span>褰撶劧鍏沖績(jī)</span><span><font face="Times New Roman">A</font></span><span>鐨勪漢鍙互涓嶆涓涓紝</span><span><font face="Times New Roman">C</font></span><span>錛?/span><span><font face="Times New Roman">D</font></span><span>鍙兘涔熷</span><span><font face="Times New Roman">A</font></span><span>寰堝叧蹇?jī)锛屼簬鏄?/span><span><font face="Times New Roman">A</font></span><span>榪欓噷淇濆瓨涓涓墍鏈夊叧蹇?jī)瀹冪殑錆h鐨勯摼琛紝褰撻亣鍒伴夯鐑?chǔ)鐨勬椂鍊欙紝杞祦緇欐瘡涓漢涓浠介氱煡銆?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <h2><span>浜岋細(xì)鍗曚歡妯″紡</span><span>Singleton</span></h2> <p><font size=3><strong><span>鍗曚歡妯″紡鐨勮璁℃剰鍥懼拰浣滅敤鏄?/span></strong><span>錛?/span><span><span><font face="Times New Roman">    </font></span></span><span>淇濊瘉涓涓被浠呮湁涓涓疄渚嬶紝騫朵笖錛屼粎鎻愪緵涓涓闂畠鐨勫叏灞璁塊棶鐐廣?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><strong><span>娓告垙涓傜敤浜庡崟浠舵ā寮忕殑鏈?/span></strong><span>錛?/span><span><span><font face="Times New Roman"> </font></span></span></font></p> <p><font size=3><span><font face="Times New Roman">1</font></span><span>錛氭墍鏈夌殑</span><span><font face="Times New Roman">Manger</font></span><span>銆傚湪澶ч儴鍒嗙殑嫻佽寮曟搸涓兘瀛樺湪鐫瀹冪殑褰卞瓙錛屼緥濡?/span><span><font face="Times New Roman">SoundManager, ParticeManager</font></span><span>絳夈?/span></font></p> <p><font size=3><span><font face="Times New Roman">2</font></span><span>錛氬ぇ閮ㄥ垎鐨勫伐鍘傚熀綾匯傝繖涓鐐瑰湪澶ч儴鍒嗗紩鎿庝腑榪樻槸瑙佷笉鍒扮殑錛屽疄闄呬笂錛屾垜浠殑鐖剁被宸ュ巶閲囩敤鍞竴瀹炰緥鐨勮瘽錛屾垜浠瓙綾昏繘琛屾墿灞曟椂涔熶細(xì)鏈夊緢澶ф柟渚褲?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><strong><span>鍗曚歡妯″紡浼唬鐮?/span></strong><span>錛?/span></font></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><span><font size=3 face="Times New Roman">Class Singleton</font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>Static MySingleton;<span>       </span>// </font></span><span>鍗曚歡瀵硅薄錛屽叏灞鍞竴鐨勩?/span></font></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>Static Instance(){ return MySingleton;}<span>              </span>// </font></span><span>瀵瑰鏆撮湶鎺ュ彛</span></font></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <h2><span>涓夛細(xì)榪唬鍣?/span><span>Iterator</span></h2> <p><span><span><font size=3 face="Times New Roman">       </font></span></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>榪唬鍣ㄨ璁℃剰鍥懼拰浣滅敤鏄?/span></strong><span>錛?/span><span><span><font face="Times New Roman">    </font></span></span><span>鎻愪緵涓涓柟娉曪紝瀵逛竴涓粍鍚堣仛鍚堝璞″唴鍚勪釜鍏冪礌榪涜璁塊棶錛屽悓鏃跺張涓嶆毚闇茶瀵硅薄綾葷殑鍐呴儴琛ㄧず銆?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>娓告垙涓傜敤浜庤凱浠e櫒妯″紡鐨勬湁</span></strong><span>錛?/span><span><span><font face="Times New Roman">    </font></span></span><span>鍥犱負(fù)</span><span><font face="Times New Roman">STL</font></span><span>鐨勬祦琛岋紝榪欎釜璁捐宸茬粡騫夸負(fù)浜虹煡浜?jiǎn)锛屾垜浠鋼Q浣曞艦寮忕殑璧勬簮閫氫竴綆$悊鏃訛紝涓嶅厤浼?xì)灏嗗叾鑱氬悎钃v鏉ワ紝鎴栬?/span><span><font face="Times New Roman">List</font></span><span>錛屾垨鑰?/span><span><font face="Times New Roman">Vector</font></span><span>錛屾垜浠兘闇瑕佷竴涓鍏惰繘琛岃闂殑宸ュ叿錛岃凱浠e櫒鏃犵枒鏄竴涓埄鍣ㄣ?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>榪唬鍣ㄤ吉浠g爜</span></strong><span>錛?/span></font></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>榪唬鍣ㄥ熀綾?/span></font></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>Class Iterator</font></font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><span><font size=3><font face="Times New Roman"><span>              </span>Virtual First();<span>               </span></font></font></span></p> <p><span><font size=3><font face="Times New Roman"><span>              </span>Virtual Next();<span> </span></font></font></span></p> <p><span><font size=3><font face="Times New Roman"><span>              </span>Virtual End();</font></font></span></p> <p><font size=3><span><font face="Times New Roman"><span>              </span>Virtual CurrentItem();<span>    </span>// </font></span><span>榪斿洖褰撳墠</span><span><font face="Times New Roman">Item</font></span><span>淇℃伅</span></font></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>鑱氬悎浣撶殑鍩虹被</span></font></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>Class ItemAggregate</font></font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><font size=3><span><font face="Times New Roman"><span>              </span>Virtual CreateIterator(); // </font></span><span>鍒涘緩璁塊棶鑷韓鐨勪竴涓凱浠e櫒</span></font></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>瀹炰緥鍖栫殑欏圭洰鑱氬悎浣?/span></font></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>Class InstanceItemAggregate : public ItemAggregate</font></font></span></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>{</font></font></span></p> <p><span><font size=3><font face="Times New Roman"><span>              </span>CreateIterator(){ return new InstanceIterator(this); }</font></font></span></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <h2><span>鍥涳細(xì)璁塊棶鑰呮ā寮?/span><span>Visitor</span><span>錛?/span></h2> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>璁塊棶鑰呰璁℃剰鍥懼拰浣滅敤鏄?/span></strong><span>錛?/span><span><span><font face="Times New Roman">    </font></span></span><span>褰撴垜浠笇鏈涘涓涓粨鏋勫璞℃坊鍔犱竴涓姛鑳芥椂錛屾垜浠兘澶熷湪涓嶅獎(jiǎng)鍝嶇粨鏋勭殑鍓嶆彁涓嬶紝瀹氫箟涓涓柊鐨勫鍏跺厓绱犵殑鎿嶄綔銆傦紙瀹為檯涓婏紝鎴戜滑鍙槸鎶婂璇ュ厓绱犵殑鎿嶄綔鍒嗗壊緇欐瘡涓厓绱犺嚜韜被涓疄鐜頒簡(jiǎn)鑰屽凡錛?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>娓告垙涓傜敤浜庤闂呮ā寮忕殑鏈?/span></strong><span>錛?/span><span><span><font face="Times New Roman">    </font></span></span><span>浠諱綍涓涓瘮杈冮潤(rùn)鎬佺殑澶嶆潅緇撴瀯綾諱腑閮介傚悎閲囩敤涓浠借闂呫傝繖閲岀殑“姣旇緝闈?rùn)鎬佺殑澶嶆潅緇撴瀯綾?#8221;鎰忔濇槸錛岃緇撴瀯綾諱腑鍏冪礌綣佸涓旂綾誨鏉傦紝涓斿搴旂殑鎿嶄綔杈冨錛屼絾綾誨緢灝戣繘琛屽彉鍖栵紝鎴戜滑灝辮兘澶熷皢錛屽榪欎釜緇撴瀯綾誨厓绱犵殑鎿嶄綔鐙珛鍑烘潵錛岄伩鍏嶆薄鏌撹繖浜涘厓绱犲璞°?/span></font></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>1</font></span><span>錛氫緥濡傚満鏅鐞嗗櫒涓鐞嗙殑鍦烘櫙鑺傜偣錛屾槸闈炲父綣佸鐨勶紝鑰屼笖縐嶇被涓嶄竴錛屼緥濡傛湁</span><span><font face="Times New Roman">Ogre</font></span><span>涓殑</span><span><font face="Times New Roman">Root, Irrchit</font></span><span>涓氨鎶婃憚璞℃満錛岀伅鍏夛紝</span><span><font face="Times New Roman">Mesh</font></span><span>錛屽叕鍛婄増錛屽0闊抽兘鍋氫負(fù)涓縐嶅満鏅妭鐐癸紝姣忎釜鑺傜偣綾誨瀷鏄笉鍚岀殑錛岃櫧鐒跺ぇ瀹墮兘鏈夊叡閫氱殑</span><span><font face="Times New Roman">Paint(),Hide()</font></span><span>絳夋柟娉曪紝浣嗘柟娉曠殑瀹炵幇褰㈠紡鏄笉鍚岀殑錛屽綋鎴戜滑澶栫晫璋冪敤鏃墮渶瑕佺粺涓鎺ュ彛錛岄偅涔堟垜浠緢鍙兘闇瑕侀渶瑕佽繖鏍風(fēng)殑浠g爜</span><span><font face="Times New Roman"> </font></span></font></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>Hide( Object )</font></font></span></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>{ if (Object == Mesh) HideMesh(); if (Object == Light) HideLight(); … }</font></font></span></p> <p><font size=3><span>姝ゆ椂鑻ユ垜浠渶瑕佸鍔犱竴涓?/span><span><font face="Times New Roman">Object</font></span><span>鏂扮殑綾誨瀷瀵硅薄錛屾垜浠氨涓嶅緱涓嶅璇ュ嚱鏁拌繘琛屼慨姝c傝屾垜浠彲浠ヨ繖鏍峰仛錛岃</span><span><font face="Times New Roman">Mesh,Light</font></span><span>浠栦滑閮界戶鎵夸簬</span><span><font face="Times New Roman">Object,</font></span><span>浠栦滑閮藉疄鐜頒竴涓嚱鏁?/span><span><font face="Times New Roman">Hide(),</font></span><span>閭d箞灝卞彉鎴?/span></font></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>Mesh::Hide( Visitor ) { Visitor.Hide (Mesh); }</font></font></span></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>Light::Hide(Visitor ){ Visitor.Hide (Light); }</font></font></span></p> <p><font size=3><span>鎴戜滑鍦ㄨ皟鐢ㄦ椂鍙渶瑕?/span><span><font face="Times New Roman">Object.Hide(Visitor){ return Visitor.Hide(Object); }</font></span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span>榪欐牱鍋氱殑<strong><span>濂藉</span></strong>錛屾垜浠厤鍘諱簡(jiǎn)瀵歸噸瑕佸嚱鏁扮殑淇錛?/span><span><font face="Times New Roman">Object.Hide(Visitor){}</font></span><span>鍑芥暟鎴戜滑鍙互姘鎬箙涓嶅彉錛屼絾鏄?strong><span>鍧忓</span></strong>涔熸槸寰堟槑鏄劇殑錛屽洜涓哄皢鏂規(guī)硶浠庡璞¢泦鍚堢粨鏋勪腑鎶界鍑烘潵錛屽氨鎰忓懗鐫鎴戜滑姣忓鍔犱竴涓厓绱狅紝瀹冨繀欏葷戶鎵夸簬涓涓娊璞$殑琚闂呯被錛屽疄鐜板叾鍏ㄩ儴鍑芥暟錛岃繖涓伐浣滈噺寰堝ぇ銆?/span></font></p> <p><font size=3><span>鎵浠ワ紝<span>璁塊棶鑰呮槸浠呴傚悎浜庝竴涓杞戒笉鍚屽璞$殑澶у鍣紝浣嗗悓鏃跺張瑕佹眰榪欎釜瀹瑰櫒鐨勫厓绱犺妭鐐逛笉搴斿綋鏈夊ぇ鐨勫彉鍔ㄦ椂鎵嶄嬌鐢?/span>銆傚彟澶栵紝搴熻瘽涓鍙ワ紝璁塊棶鑰呯牬鍧忎簡(jiǎn)</span><span><font face="Times New Roman">OO</font></span><span>鎬濇兂鐨勩?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>璁塊棶鑰呬吉浠g爜</span></strong><span>錛?/span></font></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>璁塊棶鑰呭熀綾?/span></font></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>Class Visitor</font></font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><font size=3><span><font face="Times New Roman"><span>              </span>Virtual VisitElement( A ){ … };<span>             </span>// </font></span><span>璁塊棶鐨勬瘡涓璞¢兘瑕佸啓榪欐牱涓涓柟娉?/span></font></p> <p><span><font size=3><font face="Times New Roman"><span>              </span>Virtual VisitElement( B ){ … };</font></font></span></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>璁塊棶鑰呭疄渚?/span><span><font face="Times New Roman">A</font></span></font></p> <p><span><font size=3 face="Times New Roman">Class VisitorA</font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>VisitElement( A ){ … };<span>         </span>// </font></span><span>瀹為檯鐨勫鐞嗗嚱鏁?/span></font></p> <p><font size=3><span><font face="Times New Roman">VisitElement( B ){ … };<span>        </span>// </font></span><span>瀹為檯鐨勫鐞嗗嚱鏁?/span></font></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>璁塊棶鑰呭疄渚?/span><span><font face="Times New Roman">B</font></span></font></p> <p><span><font size=3 face="Times New Roman">Class VisitorB</font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>VisitElement( A ){ … };<span>         </span>// </font></span><span>瀹為檯鐨勫鐞嗗嚱鏁?/span></font></p> <p><font size=3><span><font face="Times New Roman">VisitElement( B ){ … };<span>        </span>// </font></span><span>瀹為檯鐨勫鐞嗗嚱鏁?/span></font></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>琚闂呭熀綾?/span></font></p> <p><span><font size=3 face="Times New Roman">Class Element</font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>Virtual Accept( Visitor );<span>        </span>// </font></span><span>鎺ュ彈璁塊棶鑰?/span></font></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>琚闂呭疄渚?/span><span><font face="Times New Roman">A</font></span></font></p> <p><span><font size=3 face="Times New Roman">Class ElementA</font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>Accecpt( Visitor v ){ v-> VisitElement(this); };<span>    </span>// </font></span><span>璋冪敤娉ㄥ唽鍒拌闂呬腑鐨勫鐞嗗嚱鏁?/span></font></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>琚闂呭疄渚?/span><span><font face="Times New Roman">B</font></span></font></p> <p><span><font size=3 face="Times New Roman">Class ElementB</font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>Accecpt( Visitor v ){ v-> VisitElement(this); };<span>    </span>// </font></span><span>璋冪敤娉ㄥ唽鍒拌闂呬腑鐨勫鐞嗗嚱鏁?/span></font></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <h2><span>浜旓細(xì)澶栬妯″紡</span><span>Façade</span></h2> <p><span><span><font size=3 face="Times New Roman">       </font></span></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>澶栬妯″紡鐨勮璁℃剰鍥懼拰浣滅敤鏄?/span></strong><span>錛?/span><span><font face="Times New Roman">  </font></span><span>灝嗙敤鎴鋒帴瑙︾殑琛ㄥ眰鍜屽唴閮ㄥ瓙闆嗙殑瀹炵幇鍒嗙寮鍙戙傚疄闄呬笂錛岃繖涓ā寮忔槸涓焊鑰佽檸錛屼箣鍚庢垜浠湅浼唬鐮佺珛鍒誨氨浼?xì)鍙戠帋图寴q欎釜妯″紡瀹炲湪鐢ㄧ殑澶綣佷簡(jiǎn)銆?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>娓告垙涓渶瑕佷嬌鐢ㄥ瑙傛ā寮忕殑鍦版柟鏄?/span></strong><span>錛?/span><span><span><font face="Times New Roman">   </font></span></span><span>榪欎釜闈炲父澶氫簡(jiǎn)錛屼婦鍑犱釜姣旇緝閲嶈鐨勩?/span></font></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>1</font></span><span>錛氬疄鐜板鉤鍙版棤鍏蟲с傝法騫沖彴璺ㄥ簱鐨勫嚱鏁拌皟鐢ㄣ?/span></font></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>2</font></span><span>錛氬悓涓涓帴鍙e幓璇誨彇涓嶅悓鐨勮祫婧愩?/span></font></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>3</font></span><span>錛氱‖浠惰嚜鍔ㄨ瘑鍒鐞嗙郴緇熴?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>澶栬妯″紡浼唬鐮?/span></strong></font></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>// </font></span><span>鐢ㄦ埛浣跨敤鐨勬帴鍙g被</span></font></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>Class Interface</font></font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>鏆撮湶鍑烘潵鐨勫嚱鏁版帴鍙e嚱鏁幫紝鏈変笖浠呮湁涓涓紝浣嗗唴閮ㄥ疄鐜版槸璋冪敤浜?jiǎn)涓や釜绫?/span></font></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>Void InterfaceFun()</font></font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><font size=3><span><font face="Times New Roman"><span>       </span>// </font></span><span>鏍規(guī)嵁鏌愮鏉′歡錛屽簳灞傝嚜涓葷殑閫夋嫨浣跨敤</span><span><font face="Times New Roman">A</font></span><span>鎴?/span><span><font face="Times New Roman">B</font></span><span>鐨勬柟娉曘傜敤鎴鋒棤欏誨叧蹇?jī)搴曞眰瀹炵?/span></font></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>If ( XXX )</font></font></span></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>{</font></font></span></p> <p><span><font size=3><font face="Times New Roman"><span>              </span>ActualA->Fun();</font></font></span></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman">Else</font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>ActualB->Fun();</font></font></span></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3><font face="Times New Roman">};<span>    </span></font></font></span></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>瀹為檯鐨勫疄鐜幫紝涓嶆毚闇茬粰鐢ㄦ埛鐭ラ亾</span></font></p> <p><span><font size=3 face="Times New Roman">Class ActualA</font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>Void Fun();</font></font></span></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>瀹為檯鐨勫疄鐜幫紝涓嶆毚闇茬粰鐢ㄦ埛鐭ラ亾</span></font></p> <p><span><font size=3 face="Times New Roman">Class ActualB</font></span></p> <p><span><font size=3 face="Times New Roman">{</font></span></p> <p><span><font size=3><font face="Times New Roman"><span>       </span>Void Fun();</font></font></span></p> <p><span><font size=3 face="Times New Roman">}</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><span><font size=3>鎬庝箞鏍鳳紝綰歌佽檸鍚э紝鐪嬭搗鏉ュ緢楂樻繁鎽告祴鐨勫懡鍚嶈屽凡銆?/font></span></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <h2><span>鍏細(xì)鎶借薄宸ュ巶妯″紡</span><span>AbstractFactory</span></h2> <p><span><span><font size=3 face="Times New Roman">       </font></span></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>鎶借薄宸ュ巶鐨勮璁℃剰鍥懼拰浣滅敤鏄?/span></strong><span>錛?/span><span><span><font face="Times New Roman">    </font></span></span><span>灝佽鍑轟竴涓帴鍙o紝榪欎釜鎺ュ彛璐熻矗鍒涘緩涓緋誨垪浜掔浉鍏寵仈鐨勫璞★紝浣嗙敤鎴峰湪浣跨敤鎺ュ彛鏃朵笉闇瑕佹寚瀹氬璞℃墍鍦ㄧ殑鍏蜂綋鐨勭被銆備粠涓枃鍛藉悕涔熷緢瀹規(guī)槗鏄庣櫧瀹冩槸榪涜鎵歸噺鐢熶駭鐨勪竴涓敓浜у伐鍘傜殑浣滅敤銆?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>娓告垙涓嬌鐢ㄦ娊璞″伐鍘傜殑鍦版柟鏈?/span></strong><span>錛?/span><span><span><font face="Times New Roman">    </font></span></span><span>鍩烘湰涓婁換浣曟湁鎵歸噺鐨勫悓綾誨艦寮忕殑瀛愪歡鍦版柟灝變細(xì)鏈夊伐鍘傜殑瀛樺湪銆傦紙琛ュ厖涓鍙ワ細(xì)涓嬮潰浠g爜涓殑</span><span><font face="Times New Roman">ConcreteFactory1</font></span><span>瀹炰緥宸ュ巶灝辨槸宸ュ巶錛岃屾娊璞″伐鍘備粎浠呮槸宸ュ巶鐨勪竴涓娊璞″眰鑰屽凡銆?/span><span>錛?/span></font></p> <p><font size=3><span><font face="Times New Roman">1</font></span><span>錛氫緥濡傦紝鍦ㄩ煶棰戞柟闈紝涓涓煶棰戠殑鎶借薄宸ュ巶媧劇敓鍑轟笉鍚岀殑宸ュ巶錛屾湁闊充箰宸ュ巶錛岄煶鏁堝伐鍘傘傞煶鏁堝伐鍘備腑鍙堟湁涓涓垱寤?/span><span><font face="Times New Roman">3D</font></span><span>闊蟲晥鑺傜偣鐨勬柟娉曪紝涓涓垱寤烘櫘閫氶煶鏁堣妭鐐圭殑鏂規(guī)硶銆傛渶緇堢敤鎴峰彧闇瑕?/span><span><font face="Times New Roman">SoundFactory->Create3DNode( pFileName );</font></span><span>灝卞彲浠ュ垱寤轟竴涓妭鐐逛簡(jiǎn)銆?/span></font></p> <p><font size=3><span><font face="Times New Roman">2</font></span><span>錛氬満鏅璞°?/span></font></p> <p><font size=3><span><font face="Times New Roman">3</font></span><span>錛氭覆鏌撳璞°?/span></font></p> <p><font size=3><span><font face="Times New Roman">4</font></span><span>錛氱瓑絳?#8230;…</span></font></p> <p><font size=3><span>宸ュ巶涓庡崟浠訛紝綆$悊鍣?/span><span><font face="Times New Roman">Manager</font></span><span>鍏崇郴涓瀹氭槸闈炲父绱у瘑鐨勩?/span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><span><font face="Times New Roman">       </font></span></span><strong><span>鎶借薄宸ュ巶浼唬鐮?/span></strong><span>錛?/span></font></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><font size=3><font face="Times New Roman"><span><span>       </span></span><span>class AbstractProductA {}; // </span></font><span>鎶借薄鐨勪駭鍝?/span><span><font face="Times New Roman">A</font></span><span>鍩虹被</span></font><span><br></span><font size=3><span>銆銆</span><span><font face="Times New Roman">class AbstractProductB {}; //</font></span><span>鎶借薄鐨勪駭鍝?/span><span><font face="Times New Roman">B</font></span><span>鍩虹被</span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>鎶借薄宸ュ巶鍩虹被</span></font><span><br></span><span><font size=3>銆銆</font></span><font size=3><span><font face="Times New Roman">class AbstractFactory<br></font></span><span>銆銆</span></font><font size=3><span><font face="Times New Roman">{<br></font></span><span>銆銆</span></font><font size=3><span><font face="Times New Roman">public:<br></font></span><span>銆銆銆</span><span><font face="Times New Roman">virtual AbstractProductA* CreateProductA() = 0 ;// </font></span><span>鍒涘緩</span></font><font size=3><span><font face="Times New Roman">ProductA<br></font></span><span>銆銆銆</span><span><font face="Times New Roman">virtual AbstractProductB* CreateProductB() = 0 ;// </font></span><span>鍒涘緩</span></font><span><font size=3><font face="Times New Roman">ProductB<br>   <span>    </span>} ;</font></font></span></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span>銆銆</span><span><font face="Times New Roman">class ProductA1 : public AbstractProductA {};<span>    </span>// </font></span><span>浜у搧</span><span><font face="Times New Roman">A</font></span><span>鐨勫疄渚?/span></font><font size=3><span><font face="Times New Roman">1<br></font></span><span>銆銆</span><span><font face="Times New Roman">class ProductA2 : public AbstractProductA {};<span>    </span>// </font></span><span>浜у搧</span><span><font face="Times New Roman">A</font></span><span>鐨勫疄渚?/span><span><font face="Times New Roman">2</font></span></font></p> <p><font size=3><span>銆銆</span><span><font face="Times New Roman">class ProductB1 : public AbstractProductB {};<span>    </span>// </font></span><span>浜у搧</span><span><font face="Times New Roman">B</font></span><span>鐨勫疄渚?/span></font><font size=3><span><font face="Times New Roman">1<br></font></span><span>銆銆</span><span><font face="Times New Roman">class ProductB2 : public AbstractProductB {};<span>    </span>// </font></span><span>浜у搧</span><span><font face="Times New Roman">B</font></span><span>鐨勫疄渚?/span><span><font face="Times New Roman">2</font></span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>瀹炰緥宸ュ巶</span><span><font face="Times New Roman">1</font></span></font></p> <p><font size=3><span><font face="Times New Roman">     class ConcreteFactory1 : public AbstractFactory<br></font></span><span>銆銆</span></font><font size=3><span><font face="Times New Roman">{<br></font></span><span>銆銆銆銆</span></font><font size=3><span><font face="Times New Roman">virtual AbstractProductA* CreateProductA() { return new ProductA1() ; }<br></font></span><span>銆銆銆銆</span></font><font size=3><span><font face="Times New Roman">virtual AbstractProductB* CreateProductB() { return new ProductB1() ; }<br></font></span><span>銆銆銆</span><span><font face="Times New Roman"><span>    </span>static ConcreteFactory1* Instance() { } </font></span><span>銆銆</span><span><font face="Times New Roman"><span>     </span>// </font></span><span>瀹炰緥宸ュ巶灝介噺浣跨敤鍗曚歡妯″紡</span></font><span><br></span><font size=3><span>銆銆</span><span><font face="Times New Roman">} ;</font></span></font></p> <p><span><font size=3 face="Times New Roman"> </font></span></p> <p><font size=3><span><font face="Times New Roman">// </font></span><span>瀹炰緥宸ュ巶</span><span><font face="Times New Roman">2</font></span></font></p> <p><span><font size=3>class ConcreteFactory2 : public AbstractFactory<br></font></span><span><font size=3>銆銆</font><font size=3><span>{<br></span>銆銆銆銆</font><font size=3><span>virtual AbstractProductA* CreateProductA() { return new ProductA2() ; }<br></span>銆銆銆銆</font><font size=3><span>virtual AbstractProductB* CreateProductB() { return new ProductB2() ; }<br></span>銆銆銆銆<span>static ConcreteFactory2* Instance() {} </span></font></span><font size=3><span><font face="Times New Roman"><span>       </span>// </font></span><span>瀹炰緥宸ュ巶灝介噺浣跨敤鍗曚歡妯″紡</span></font><span><br></span><span><font size=3>銆銆<span>} ;</span></font></span></p> <p><span><font size=3>}</font></span></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> <p><font size=3><strong><span>瀹㈡埛绔唬鐮?/span></strong><span>錛?/span></font></p> <p><span><font size=3>Void main()<br>{<br></font></span><span><font size=3>銆銆</font><font size=3><span>AbstractFactory *pFactory1 = ConcreteFactory1::Instance() ;<br></span>銆銆</font><font size=3><span>AbstractProductA *pProductA1 = pFactory1->CreateProductA() ;<br></span>銆銆</font><font size=3><span>AbstractProductB *pProductB1 = pFactory1->CreateProductB() ;<br></span>銆銆</font><font size=3><span>AbstractFactory *pFactory2 = ConcreteFactory2::Instance() ;<br></span>銆銆</font><font size=3><span>AbstractProductA *pProductA2 = pFactory2->CreateProductA() ;<br></span>銆銆</font><span><font size=3>AbstractProductB *pProductB2 = pFactory2->CreateProductB() ;<br>}</font></span></span></p> <p><span><font size=3 face="Times New Roman">//-------------------------------------------------------------------------------------------------------</font></span></p> </div> <SCRIPT type=text/javascript> //<![CDATA[ Sys.WebForms.PageRequestManager._initialize('AjaxHolder$scriptmanager1', document.getElementById('Form1')); Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tAjaxHolder$UpdatePanel1'], [], [], 90); //]]> </SCRIPT> <img src ="http://www.shnenglu.com/Leaf/aggbug/83227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2009-05-17 23:36 <a href="http://www.shnenglu.com/Leaf/archive/2009/05/17/83227.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍦╒S2005涓嬬紪璇慔GE渚嬪瓙 LIBC.lib闂http://www.shnenglu.com/Leaf/archive/2009/05/14/82985.htmlRender DonkeyRender DonkeyThu, 14 May 2009 12:04:00 GMThttp://www.shnenglu.com/Leaf/archive/2009/05/14/82985.htmlhttp://www.shnenglu.com/Leaf/comments/82985.htmlhttp://www.shnenglu.com/Leaf/archive/2009/05/14/82985.html#Feedback5http://www.shnenglu.com/Leaf/comments/commentRss/82985.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/82985.html鍐嶈浜?jiǎn)锛屼笉鏄鏄悜涓嬪吋瀹圭殑鍚楀Q熸庝箞浼?xì)鍑虹幇鏃犳硶缂栬瘧鍛?br>閭e氨鏄竴涓緢鍒虹溂鐨勯棶棰?br>鏃犳硶鎵懼埌 LIBC.lib

鎴戜篃鏌ヤ簡(jiǎn)涓涓嬪崍錛岀粓浜庤鎴戝彂鐜頒簡(jiǎn)涓浜涗笢瑗?br>鍙互璇?libc.lib鏄竴涓浜洪仐寮冪殑瀹朵紮錛孷S2005涓嶅啀鏀寔瀹冧簡(jiǎn)錛屼簬鏄細(xì)鎻愮ず浣犳壘涓嶅埌銆?br>璐村瓙鐪熷鍛錛岀炕涓N欏碉紝涔熸病瑙佷竴涓拡瀵規(guī)х殑銆?br>緇堜簬涓鍝ヤ滑鍎跨殑BLOG寮闂ㄨ灞卞氨璇翠簡(jiǎn)瑙e喅浠栫殑鏂規(guī)硶


鍙蹇界暐榪欎釜搴撳嵆鍙?br>


鍙戝湪榪欓噷錛屽彧涓哄啀嬈℃悳绱㈣繖涓笢瑗跨殑鍏勫紵澶氫竴涓叧閿瓧銆傘?br>

]]>
3DSNAKE-DEMOhttp://www.shnenglu.com/Leaf/archive/2009/05/02/81731.htmlRender DonkeyRender DonkeySat, 02 May 2009 14:27:00 GMThttp://www.shnenglu.com/Leaf/archive/2009/05/02/81731.htmlhttp://www.shnenglu.com/Leaf/comments/81731.htmlhttp://www.shnenglu.com/Leaf/archive/2009/05/02/81731.html#Feedback0http://www.shnenglu.com/Leaf/comments/commentRss/81731.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/81731.html
鎰熻涓嶇鎬庝箞瀛︼紝榪樻槸寰楄嚜宸卞仛涓滆タ鎵嶈兘鏈夋墍鎻愬崌錛屾瘯绔熶功涓婄殑闂鏄鐨勶紝鑷繁閬囧埌鐨勯棶棰樻槸媧葷殑銆?br>鎴浘鐣欏康涓涓嬶紒



瀵濆鍚屽璇翠笁緇寸殑鏈夌偣鏅曪紝鍝堝搱錛屾垜璋冭瘯鐨勬椂鍊欎篃鐜╂檿浜?jiǎn)锛屼笉杩囩幇鍦ㄤ範(fàn)鎯簡(jiǎn)锛屽懙鍛靛Q屾湁鍔╀簬娌葷枟鏅曡濺鍝︼紒

]]>
OGRE 涓殑 Terrianhttp://www.shnenglu.com/Leaf/archive/2009/04/27/81271.htmlRender DonkeyRender DonkeyMon, 27 Apr 2009 14:34:00 GMThttp://www.shnenglu.com/Leaf/archive/2009/04/27/81271.htmlhttp://www.shnenglu.com/Leaf/comments/81271.htmlhttp://www.shnenglu.com/Leaf/archive/2009/04/27/81271.html#Feedback2http://www.shnenglu.com/Leaf/comments/commentRss/81271.htmlhttp://www.shnenglu.com/Leaf/services/trackbacks/81271.html


]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              免费成人高清在线视频| 午夜精品在线看| 欧美日韩视频一区二区| 国产精品99久久久久久www| 亚洲精品免费看| 国产精品不卡在线| 香蕉久久夜色精品| 久久国产精品亚洲77777| 亚洲福利国产| 一区二区三区精品视频在线观看| 国产精品xxx在线观看www| 久久国产88| 欧美大学生性色视频| 亚洲一区二区三区在线| 亚洲人人精品| 一本久久综合亚洲鲁鲁| 国产真实精品久久二三区| 亚洲国产精品国自产拍av秋霞| 欧美日韩视频免费播放| 久久久99免费视频| 欧美老女人xx| 久久综合九色综合久99| 欧美精品系列| 久久久久久久久久久成人| 欧美激情国产精品| 久久久www成人免费精品| 免费亚洲电影在线| 久久er99精品| 欧美日韩亚洲视频一区| 久久亚洲精品欧美| 国产精品福利av| 欧美成人免费在线观看| 国产精品自拍小视频| 亚洲激情成人| 激情成人综合网| 亚洲一二三区在线| 99热这里只有成人精品国产| 久久免费午夜影院| 久久精品日产第一区二区| 欧美大片一区二区| 麻豆精品视频在线| 国产日韩欧美一区在线| 一本色道久久精品| 亚洲精品孕妇| 欧美mv日韩mv国产网站app| 久久久久久国产精品mv| 欧美色精品在线视频| 亚洲电影中文字幕| 在线精品福利| 久久国产免费看| 欧美中文字幕精品| 国产精品进线69影院| 99国产精品久久久久久久久久 | 欧美久久电影| 亚洲大胆视频| 亚洲精品免费一二三区| 麻豆久久婷婷| 欧美电影资源| 亚洲人成7777| 亚洲福利视频二区| 91久久久精品| 欧美激情按摩在线| 亚洲欧洲一区二区在线播放 | 国产午夜精品视频| 欧美一区二区| 久久蜜桃精品| 亚洲电影欧美电影有声小说| 六月丁香综合| 亚洲欧洲一区| 亚洲一区视频| 国产视频久久网| 久久九九电影| 亚洲丰满在线| 中日韩午夜理伦电影免费| 欧美日本一区| 亚洲综合电影| 久久久国产精品亚洲一区 | 欧美日韩国产色综合一二三四| 夜夜夜久久久| 久久精品国产2020观看福利| 精品91在线| 欧美好骚综合网| 亚洲婷婷在线| 久久天天躁狠狠躁夜夜av| 亚洲国产mv| 国产精品ⅴa在线观看h| 欧美一区亚洲二区| 亚洲第一免费播放区| 亚洲深夜福利网站| 国产日本欧美在线观看| 快she精品国产999| 99re热这里只有精品视频| 午夜精品理论片| 亚洲福利视频网| 欧美日韩一区视频| 欧美中文在线字幕| 亚洲精品日产精品乱码不卡| 久久av二区| 亚洲精品一区二区三| 国产精品无码专区在线观看| 久久综合网络一区二区| 9久re热视频在线精品| 老妇喷水一区二区三区| 亚洲视频福利| 亚洲黄色一区| 国产亚洲二区| 欧美三区不卡| 乱码第一页成人| 午夜精品久久久久99热蜜桃导演| 欧美激情一二三区| 久久久人成影片一区二区三区| 99精品欧美一区| 在线日韩成人| 国产亚洲激情在线| 国产精品二区二区三区| 欧美福利专区| 久久久亚洲成人| 性娇小13――14欧美| 日韩亚洲欧美高清| 亚洲国产老妈| 欧美电影资源| 免费在线成人| 亚洲国产精品成人综合| 国产日韩欧美日韩大片| 欧美日韩影院| 欧美久久久久久久久| 久热这里只精品99re8久| 欧美一区二区三区在| 亚洲男人av电影| 亚洲一区二区三区午夜| 日韩视频专区| 香蕉av福利精品导航| 制服诱惑一区二区| 一区二区欧美在线观看| 日韩视频一区二区在线观看 | 亚洲国产mv| 欧美激情一区| 亚洲第一伊人| 亚洲国产视频a| 亚洲高清视频中文字幕| 欧美91精品| 另类成人小视频在线| 久久免费观看视频| 久久久久久久一区二区| 久久久久久久久久看片| 久久精品国产久精国产一老狼| 欧美在线国产| 久久久久免费视频| 老司机午夜精品| 亚洲第一页在线| 亚洲免费观看高清在线观看| 一区二区三区日韩在线观看| 亚洲尤物视频在线| 久久大香伊蕉在人线观看热2| 久久久99国产精品免费| 久久日韩精品| 欧美日韩99| 国产精品综合色区在线观看| 国产有码在线一区二区视频| 精品成人一区二区| 亚洲精品中文字幕在线| 亚洲影院在线| 另类av导航| 亚洲精品一区二区三区婷婷月 | 午夜精品美女久久久久av福利| 欧美在线视频播放| 免费中文字幕日韩欧美| 欧美系列亚洲系列| 国产亚洲欧美另类中文| 亚洲欧洲在线视频| 亚洲欧美在线x视频| 久久久夜夜夜| 日韩写真视频在线观看| 欧美伊人久久大香线蕉综合69| 另类天堂av| 国产精品美女www爽爽爽视频| 尤物九九久久国产精品的分类| 日韩一区二区久久| 久久久久久69| 日韩午夜高潮| 久久在线观看视频| 国产精品一区在线观看| 亚洲人成小说网站色在线| 欧美一区二区视频在线观看2020| 欧美福利视频一区| 亚洲欧美三级伦理| 欧美另类久久久品| 影院欧美亚洲| 午夜日韩在线观看| 91久久久在线| 老巨人导航500精品| 国产欧美一区二区色老头 | 亚洲专区欧美专区| 欧美福利电影网| 久久激情综合| 国产日韩欧美另类| 亚洲女女做受ⅹxx高潮| 亚洲黄页视频免费观看| 久久综合狠狠综合久久综合88| 国产欧美一区二区三区久久 |