锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品综合,欧美大片在线看免费观看,欧美精品一区二区在线播放http://www.shnenglu.com/jack-wang/category/10929.html灝忕帇zh-cnSat, 23 Mar 2013 06:28:57 GMTSat, 23 Mar 2013 06:28:57 GMT60鍚戦噺鐨勭偣縐拰鍙夌Н瀹氫箟http://www.shnenglu.com/jack-wang/archive/2010/08/11/123123.html灝忕帇灝忕帇Wed, 11 Aug 2010 15:26:00 GMThttp://www.shnenglu.com/jack-wang/archive/2010/08/11/123123.htmlhttp://www.shnenglu.com/jack-wang/comments/123123.htmlhttp://www.shnenglu.com/jack-wang/archive/2010/08/11/123123.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/123123.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/123123.html 

杞細(xì)http://www.shnenglu.com/lovedday/archive/2008/07/01/22890.html

鍚戦噺鐨勭偣縐細(xì)

鍋囪鍚戦噺u(ux, uy)鍜?strong>v(vx, vy)錛?strong>u鍜?strong>v涔嬮棿鐨勫す瑙掍負(fù)α錛屼粠涓夎褰㈢殑杈硅鍏崇郴絳夊紡鍑哄彂錛屽彲浣滃嚭濡備笅綆鍗曟帹瀵鹼細(xì)

  |u - v||u - v| = |u||u| + |v||v| - 2|u||v|cosα  

===>
 
  錛?strong>ux - vx錛?sup>2 + (uy - vy)= ux2 + uy2 +vx2+vy2- 2|u||v|cosα

===>
  
   -2uxvx - 2uyvy = -2|u||v|cosα

===>

   cosα = (uxvx + uyvy) / (|u||v|)

榪欐牱錛屽氨鍙互鏍規(guī)嵁鍚戦噺u鍜?strong>v鐨勫潗鏍囧艱綆楀嚭瀹冧滑涔嬮棿鐨勫す瑙掋?br>
瀹氫箟u鍜?strong>v鐨勭偣縐繍綆楋細(xì) u . v = (uxvx + uyvy)錛?/p>

涓婇潰鐨刢osα鍙畝鍐欐垚錛?nbsp;cosα = u . v / (|u||v|)

褰?strong>u . v = 0鏃訛紙鍗?strong>uxvx + uyvy = 0錛夛紝鍚戦噺u鍜?strong>v鍨傜洿錛涘綋u . v > 0鏃訛紝u鍜?strong>v涔嬮棿鐨勫す瑙掍負(fù)閿愯錛涘綋u . v < 0鏃訛紝u鍜?strong>v涔嬮棿鐨勫す瑙掍負(fù)閽濊銆?br>
鍙互灝嗚繍綆椾粠2緇存帹騫垮埌3緇淬?/p>



鍚戦噺鐨勫弶縐細(xì)

鍋囪瀛樺湪鍚戦噺u(ux, uy, uz), v(vx, vy, vz), 姹傚悓鏃跺瀭鐩翠簬鍚戦噺u, v鐨勫悜閲?strong>w(wx, wy, wz).

鍥犱負(fù)w涓?strong>u鍨傜洿錛屽悓鏃?strong>w涓?strong>v鍨傜洿錛屾墍浠?strong>w . u = 0, w . v = 0; 鍗?br>
uxwx + uywy + uzwz = 0;
vxwx + vywy + vzwz = 0;

鍒嗗埆鍓婂幓鏂圭▼緇勭殑wy鍜?strong>wx鍙橀噺鐨勭郴鏁幫紝寰楀埌濡備笅涓や釜絳変環(huán)鏂圭▼寮忥細(xì)

(uxvy - uyvx)wx = (uyvz - uzvy)wz
(uxvy - uyvx)wy = (uzvx - uxvz)wz

浜庢槸鍚戦噺w鐨勪竴鑸В褰㈠紡涓猴細(xì)

w = (wx, wy, wz) = ((uyvz - uzvy)wz / (uxvy - uyvx), (uzvx - uxvz)wz / (uxvy - uyvx), wz)
  = (wz / (uxvy - uyvx) * (uyvz - uzvy, uzvx - uxvz, uxvy - uyvx))

鍥犱負(fù)錛?br>
   ux(uyvz - uzvy) + uy(uzvx - uxvz) + uz(uxvy - uyvx)
 = uxuyvz - uxuzvy + uyuzvx - uyuxvz + uzuxvy - uzuyvx
 = (uxuyvz - uyuxvz) + (uyuzvx - uzuyvx) + (uzuxvy - uxuzvy)  
 = 0 + 0 + 0 = 0

   vx(uyvz - uzvy) + vy(uzvx - uxvz) + vz(uxvy - uyvx)  
 = vxuyvz - vxuzvy + vyuzvx - vyuxvz + vzuxvy - vzuyvx
 = (vxuyvz - vzuyvx) + (vyuzvx - vxuzvy) + (vzuxvy - vyuxvz)
 = 0 + 0 + 0 = 0

鐢辨鍙煡錛屽悜閲?uyvz - uzvy, uzvx - uxvz, uxvy - uyvx)鏄悓鏃跺瀭鐩翠簬鍚戦噺u鍜?strong>v鐨勩?br>
涓烘錛屽畾涔夊悜閲?strong>u = (ux, uy, uz)鍜屽悜閲?v = (vx, vy, vz)鐨勫弶縐繍綆椾負(fù)錛?strong>u x v = (uyvz - uzvy, uzvx - uxvz, uxvy - uyvx)

涓婇潰璁$畻鐨勭粨鏋滃彲綆鍗曟鎷負(fù)錛氬悜閲?strong>u x v鍨傜洿浜庡悜閲?strong>u鍜?strong>v銆?/p>


鏍規(guī)嵁鍙夌Н鐨勫畾涔夛紝娌縳鍧愭爣杞寸殑鍚戦噺i = (1, 0, 0)鍜屾部y鍧愭爣杞寸殑鍚戦噺j = (0, 1, 0)鐨勫弶縐負(fù)錛?br>
 i x j = (1, 0, 0) x (0, 1, 0) = (0 * 0 - 0 * 1, 0 * 0 - 1 * 0, 1 * 1 - 0 * 0) = (0, 0, 1) = k

鍚岀悊鍙綆?strong>j x k:
 
 j x k = (0, 1, 0) x (0, 0, 1) = (1 * 1 - 0 * 0, 0 * 0 - 0 * 1, 0 * 0 - 0 * 0) = (1, 0, 0) = i

浠ュ強(qiáng)k x i:

 k x i = (0, 0, 1) x (1, 0, 0) = (0 * 0 - 1 * 0, 1 * 1 - 0 * 0, 0 * 0 - 0 * 0) = (0, 1, 0) = j

鐢卞弶縐殑瀹氫箟錛屽彲鐭ワ細(xì)

 v x u = (vyuz - vzuy, vzux - vxuz, vxuy - vyux) = - (u x v)



灝忕帇 2010-08-11 23:26 鍙戣〃璇勮
]]>
杞細(xì)銆怬GRE浜洪棬鏁欑▼銆慜GRE婧愮爜鎴愬姛緙栬瘧璁?81227http://www.shnenglu.com/jack-wang/archive/2009/11/27/102026.html灝忕帇灝忕帇Thu, 26 Nov 2009 19:15:00 GMThttp://www.shnenglu.com/jack-wang/archive/2009/11/27/102026.htmlhttp://www.shnenglu.com/jack-wang/comments/102026.htmlhttp://www.shnenglu.com/jack-wang/archive/2009/11/27/102026.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/102026.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/102026.html

銆愬師鍒涖戙怬GRE浜洪棬鏁欑▼銆慜GRE婧愮爜鎴愬姛緙栬瘧璁?81227

Posted on 2008-12-28 17:54 鍒樻枃宄?/a> 闃呰(1814) 璇勮(7)  緙栬緫 鏀惰棌 寮曠敤

鍘熷笘錛?a href="http://www.shnenglu.com/welflau/archive/2009/02/24/70570.html">http://www.shnenglu.com/welflau/archive/2009/02/24/70570.html
 

OGRE婧愮爜鎴愬姛緙栬瘧璁?/span>081227

Made by welflau

1 涓嬭澆鏈鏂扮殑OGRE婧愮爜鍖?/span>1.6.0

 

 2 鐩存帴瑙e帇鍒?/span>D鐩樻牴鐩綍涓?br>

 

3 鎵撳紑sln 鎴戣鏄殑VS2005

 

鎵撳紑鍚?/span>

4 緙栬瘧鐢熸垚OgreMain


   

5 浼?xì)鍑洪敊锛寴q樻病涓?/span>Dependencies

鍥犱負(fù)閾炬帴鍣ㄤ腑鏄劇ず浜嗘湁闄勫姞搴?/strong>



 

6 涓嬭澆ogre-dependencies 娉ㄦ剰瑕佷笅杞芥渶鏂扮増

涓嬭澆鍦板潃錛?/strong>

http://sourceforge.net/project/showfiles.php?group_id=2997




涓嬩竴涓〉闈㈤夋嫨


 

7 瑙e帇鍒?/span>D:\ogre-l.6.0\ogre




 

瑙e帇瀹屽悗錛屽啀閲嶆柊緙栬瘧鐢熸垚

OgreMain緙栬瘧寰楄涓孌墊椂闂?/span>

鑰屼笖緙栬瘧鍚?/span>Obj鏂囦歡鏈?/span>1.6G宸﹀彸鐨勫ぇ灝忥紝鎵浠ョ紪璇戜箣鍓嶈淇濊瘉浣犵殑紜洏鏈夎凍澶熺殑絀洪棿

銆愭敞鎰忋戣繕鏈変竴涓?/span>Samples鏂囦歡澶逛篃瑕佽鐩栧埌Ogre鐩綍涓?/span>



 

閲岄潰鏄墽琛屾椂鎵闇鐨?/span>dll鏂囦歡

緇堜簬緙栬瘧瀹屽悗錛屼笉榪囪繕鏄湁閿欙紝灝戞枃浠?/span>

 

鎴戝幓 Dependencies\include\zzip 鐩綍涓嬬湅鐨勭‘娌¤繖涓枃浠?/span>

鎴戝張涓嬩簡Dependencies鍏朵粬鐗堟湰OgreDependencies_VC8SP1_Eihort_20070323

鍙戠幇鏈夎鏂囦歡



8
鍙兘鏄増鏈笉瀵瑰啀鍒?/span>OGRE瀹樻柟緗戠珯
http://www.ogre3d.org/index.php?option=com_content&task=view&id=412&Itemid=132


 

涓嬭澆綰㈡鎵紺洪偅涓寘錛?/span>OgreDependencies_VC8SP1_Eihort_20071227.zip

瑙e帇鍒?/span>OGRE鐩綍D:\ogre-l.6.0\ogre涓嬪埌閲嶆柊瑕嗙洊涓閬?/span>

鍐嶇紪璇戠敓鎴?/span>

緇堜簬鎴愬姛鐢熸垚



鐢熸垚鐨?/span>lib鍜?/span>dll濡備笅鍥?/span>



 

鍏朵腑OgreMain鐢熸垚鐨勭洰鏍囨枃浠舵湁1.53G


 

銆愭父鎴忓紑鍙戙戙愬師鍒涙暀紼嬭繛杞姐慦elfGame銆愮7璁層?08120803鎸夐挳棰滆壊鍙帶)

銆愭父鎴忓紑鍙戙戙愬師鍒涙暀紼嬭繛杞姐慦elfGame銆愮6璁層?08120702鍔犲叆鐨偆瀵硅瘽妗?

銆愭父鎴忓紑鍙戙戙愬師鍒涙暀紼嬭繛杞姐慦elfGame銆愮5璁層?WelfGame(08120302涓夌淮鎿嶄綔)

銆愭父鎴忓紑鍙戙戙愬師鍒涙暀紼嬭繛杞姐慦elfGame銆愮4璁層?08120301瀵煎叆涓夌淮鏁版嵁鏂囦歡 .x錛?/font>

銆愭父鎴忓紑鍙戙慦elfGame銆愮3璁層?08120203鍥懼儚閫忔槑鍙?qiáng)棰滆?

銆愭父鎴忓紑鍙戙慦elfGame銆愮2璁層?08120202緇樺埗鏂囧瓧鍜屽浘鍍忥級

銆愭父鎴忓紑鍙戙戝師鍒涳細(xì)鎴戠殑娓告垙寮鍙戝涔?fàn)杩嚱E嬶紙榪炶澆涓?..錛?絎竴璁?



灝忕帇 2009-11-27 03:15 鍙戣〃璇勮
]]>
鍦∣GRE涓嬌鐢–EGUI鐨勭瑪璁?錛堣漿鑷竻婧愭父姘戠殑緗戠粶絎旇鏈級http://www.shnenglu.com/jack-wang/archive/2009/11/27/102025.html灝忕帇灝忕帇Thu, 26 Nov 2009 19:09:00 GMThttp://www.shnenglu.com/jack-wang/archive/2009/11/27/102025.htmlhttp://www.shnenglu.com/jack-wang/comments/102025.htmlhttp://www.shnenglu.com/jack-wang/archive/2009/11/27/102025.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/102025.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/102025.html杞細(xì)http://www.shnenglu.com/yuanyajie/archive/2006/11/01/14485.html

浣跨敤 cegui 鏉ュ埗浣滅晫闈?, 涓嶈鍦ㄤ綍縐嶅鉤鍙頒笅 , 鏈夊熀鏈殑涓夊ぇ姝ラ瑕佸仛 :
1, 鍒涘緩涓涓?CEGUI::Render 瀹炰緥
2, 鍒涘緩 CEGUI::System 瀵硅薄
3, 璋冪敤鍚勭鏂規(guī)硶鏉ユ覆鏌撶敤鎴風(fēng)晫闈?
絎竴姝?, 鍦ㄦ垜浣跨敤鐨?ogre 鐜涓嬩嬌鐢ㄤ互涓嬩唬鐮佹潵鍒涘緩 CEGUI::Render 瀹炰緥
Ogre3D
CEGUI::OgreCEGUIRenderer* myRenderer =
       new CEGUI::OgreCEGUIRenderer(myRenderWindow);
絎簩姝ョ浉褰撶畝鍗?, 鍙嬌鐢?
new CEGUI::System(myRenderer);
絎笁姝ワ紝鍩烘湰涓婃潵璁詫紝澶ч儴鍒嗗鉤鍙頒笅錛屽 direct3D, OpenGL, 鎴戜滑鍦ㄦ覆鏌撳驚鐜殑灝鵑儴璋冪敤
CEGUI::System::renderGUI 鏉ュ紑濮嬬晫闈㈢殑娓叉煋銆傚鏋滄垜浠嬌鐢?ogre3d 寮曟搸錛岃繖涓姝ヤ笉闇瑕?
鎴戜滑鏄劇ず鐨勬墽琛屻傚洜涓?ogre 寮曟搸宸茬粡鑰冭檻浜嗐?
闄や簡榪欎笁澶ф涔嬪錛屾垜浠繕鏈変竴浜涘伐浣滆鍋氾紝棣栧厛錛屾垜浠渶瑕佸姞杞芥暟鎹枃浠訛紝騫朵笖瀹屾垚鍒濆鍖栧伐浣溿?
CEGUI 浣跨敤浜嗚澶氱被鍨嬬殑鏂囦歡銆?CEGUI 浣跨敤涓涓О涓?ResourceProvider 鐨勫府鍔╁璞★紝鐢ㄥ畠鏉ュ仛涓烘牳蹇?CEGUI 搴撲笌澶栭儴鏂囦歡鍔犺澆緋葷粺鐨勬帴鍙c傞氳繃瀹炵幇涓涓壒瀹氱殑 ResourceProvider 瀵硅薄錛?cegui 鐨勬覆鏌撴ā鍧楀氨鍙互涓庡閮ㄧ郴緇熺殑璧勬簮綆$悊鍣ㄣ佹枃浠跺姞杞藉瓙緋葷粺鏃犵紳鍦伴泦鎴愩?CEGUI 闇瑕佺殑鏁版嵁鏂囦歡渚垮彲浠ラ氳繃澶栭儴緋葷粺鎻愪緵鐨勫姛鑳芥潵榪涜鍔犺澆銆?CEGUI 涓殑澶ч儴鍒嗘枃浠舵槸浠?XML 鐨勬枃浠舵牸寮忔潵淇濆瓨鐨勩傜己鐪佹儏鍐典笅錛?CEGUI 鍦ㄥ唴閮ㄤ嬌鐢?Xerces-C++ 搴撴潵鍒嗘瀽 XML 鏂囦歡錛屼嬌鐢?schema 鏉ュ xml 榪涜鏍¢獙錛?schema 鏂囦歡浠ユ爣鍑嗙殑 .xsd 鎵╁睍鍚嶆潵淇濆瓨 . 璁稿鏂囦歡鏈川涓婇兘鏄?XML 鏍煎紡鐨勬枃浠訛紝浣嗘槸鏍規(guī)嵁鍏舵剰涔変笉鍚岋紝鍒嗗埆浣跨敤浜嗕笉鍚岀殑鏂囦歡鎵╁睍鍚嶃?
.Imageset 鏂囦歡鍙皢涓騫呭浘鍍忕湅鍋氳嫢騫插皬鍥懼儚鐨勯泦鍚堛傛崲鍚嶈瘽璇達(dá)紝灝辨槸灝嗕竴騫呭浘鍍忕殑鏌愪釜鍖哄煙鐪嬪仛涓騫呯嫭绔嬬殑鍥劇墖鏉ヤ嬌鐢ㄣ?
.Font 瀹氫箟浜嗗湪 CEGUI 涓墍浣跨敤鐨勫瓧浣撶被鍨嬨?
.scheme 銆鍙互灝嗚澶氭暟鎹粍鍚堝湪涓璧蜂嬌鐢紝瀹冧篃鏄杞戒笌娉ㄥ唽 widget 鏈鏂逛究鐨勬柟娉曘傚湪涓涓?.scheme 鏂囦歡涓彲浠ュ寘鎷笅鍒楀嚑縐嶆暟鎹細(xì)
Imagest,font, window Set, window Alias
window set 鎸囧畾浜嗚杞芥ā鍧楋紙 .dll 絳夛級鐨勫悕縐幫紝鍜屼竴緇勫彲浠ユ敞鍐屽埌緋葷粺涓殑 widget.
window alias 鎻愪緵浜嗗埆鍚嶇殑鍔熻兘錛屽疄鐜板凡緇忔敞鍐岀殑 window/widget 鐨勫艦寮忎笂鐨勯殣钘忋?
.Layout 銆鍖呭惈浜嗙獥鍙e竷灞鐨?xml 琛ㄧず銆傛瘡涓祵濂楃殑 'window' 鍏冪礌瀹氫箟浜嗚鍒涘緩鐨?window 鎴栨槸 widget."Property" 鍏冪礌瀹氫箟浜嗙獥鍙g殑璁劇疆涓庡睘鎬у箋?
.config 鏄彲渚涢夋嫨鐨勯厤緗枃浠訛紝浠栧彲鎸囧畾涓浜涚己鐪佺殑灞炴с?
鎴戜滑浣跨敤 CEGUI 鏉ュ埗浣滃浘褰㈢晫闈紝鑷沖皯瑕佷嬌鐢ㄤ互涓嬩笁縐嶆枃浠訛細(xì)
.imageset, .Font . Scheme;
褰撶劧錛屾垜浠煡閬撳湪涓涓?Scheme 涓槸鍙互鍖呮嫭 imageset 涓?Font 鐨勩?
CEGUI::SchemeManager::getSingleton().loadScheme(“../datafiles/schemes/TaharezLook.scheme”);
// load in a font.  The first font loaded automatically becomes the default font.
CEGUI::FontManager::getSingleton().createFont(“../datafiles/fonts/Commonwealth-10.font”);
瀵逛簬 ogre 鐨勪嬌鐢ㄨ呮潵璁詫紝搴旇鍦?resources.cfg 灝嗚繖浜涜祫婧愭墍鍦ㄧ殑鐩綍鍔犺繘鍘匯?
鎴戜滑鍙敤涓嬮潰鐨勮鍙ユ潵鎸囧畾 cegui 鎵闇瑕佺殑緙虹渷鐨?font 涓?cursor 璧勬簮銆?
鍦?cegui 鐨勬蹇甸噷錛屾瘡涓?widget 閮芥槸涓涓?window, 浠庣紪紼嬬殑瑙掑害鏉ヨ錛屾瘡涓?widget 綾婚兘鏄粠鍚屼竴涓浉鍚岀殑 window 鍩虹被緇ф壙鑰屾潵鐨?. 鍥犳錛?widget 涓?window 鏈夌潃鍩烘湰鐩稿悓鐨勮涓恒?
紿椾綋鐨勮澶氬睘鎬т笌璁劇疆鍦ㄧ獥鍙e眰鏍?wèi)涓婃槸鍙互閬椾紶鐨勩傞珮涓綰х獥鍙g殑灞炴т笌琛屼負(fù)浼?xì)濯勫搷鍒颁笅涓綰х獥鍙g殑灞炴т笌琛屼負(fù)銆備緥濡傞檮鐫鍦ㄦ煇涓?window 涓婄殑 window 涓?widget 浼?xì)琚?window 褰卞搷銆傚綋鐖剁獥鍙h destroy 鏃訛紝瀹冩墍闄勫睘鐨勬墍鏈夌殑瀛愮獥鍙d笌 widget 涔熼兘灝嗚 destroy.
鍒涘緩 CEGUI 紿楀彛錛屾垜浠彲浠ヤ嬌鐢ㄤ袱縐嶅艦寮忥紝涓鏄?C 錛嬶紜浠g爜錛屼簩鏄紪杈?XML layout 鏂囦歡銆?
娉ㄦ剰錛氬湪 CEGUI 涓紝鎵鏈夌殑 window 閮芥槸鐢?WindowManager singleton object 鏉ョ粺涓鍒涘緩鐨勩傛垜浠鍏堝緱鍒拌繖涓璞★細(xì)
using namespace CEGUI;
WindowManager& wmgr = WindowManager::getSingleton();
涓鑸潵璁詫紝鎴戜滑鎬繪槸鍒涘緩涓涓?DefaultWindow 鏉ュ仛涓烘垜浠皢浣跨敤鐨勭獥鍙g殑 Root, 鍦ㄨ繖縐嶆柟寮忎笅錛屾垜浠細(xì)鏈夋瘮杈冨ソ鐨勭伒媧繪с?
Window* myRoot = wmgr.createWindow(“DefaultWindow”, “root”);
System::getSingleton().setGUISheet(myRoot);
createwindows() 鍑芥暟鎵浣跨敤鐨勭涓涓弬鏁幫紝鎸囨槑浜嗗皢瑕佸垱寤虹殑紿楀彛綾誨瀷錛屽畠涓鑸槸鍦ㄦ垜浠嬌鐢ㄧ殑 .scheme 鏂囦歡涓墍娉ㄥ唽榪囩殑錛屽綋鐒惰繕鏈変竴浜涚郴緇熷畾涔夌殑錛屾繪槸鏈夋晥鐨勭獥鍙g被鍨嬪涓婇潰鎵鎻愬埌鐨?DefaultWindow.DefualtWindow 鏄笉鍙鐨勶紝瀹冨彧鏄仛涓烘墍鏈夌獥鍙g殑 root 鏉ヤ嬌鐢ㄣ?
涓鑸垜浠繪槸瑕佸垱寤轟竴涓?Framewindow, 瀹冨彲浠ュ寘鎷叾浠栫獥鍙d笌 widget 錛屾湰韜篃鏄彲瑙嗙殑銆?
FrameWindow* fWnd = (FrameWindow*)wmgr.createWindow(“TaharezLook/FrameWindow”, “testWindow”);
涔嬪悗錛屾垜浠皢鍒涘緩鐨勭獥鍙f寕鍒?root 涓婏紝褰㈡垚涓涓眰嬈″叧緋匯?
myRoot->addChildWindow(fWnd);
緙栬緫 xml layout 鏂囦歡錛屽彲浣跨敤涓撻棬鎻愪緵鐨勫埗浣滃伐鍏楓傚叿浣撶殑浣跨敤鏂規(guī)硶鍙互鍙傞槄鐩稿叧鏂囨。錛岃繖閲岃涓涓嬪浣曚嬌鐢ㄥ埗浣滃ソ鐨?xml layout 鏂囦歡銆?
using namespace CEGUI;
Window* myRoot = WindowManager::getSingleton().loadWindowLayout(“test.layout”);
System::getSingleton().setGUISheet(myRoot);
棣栧厛錛屽皢 layout 鏂囦歡瑁呰澆榪涙潵錛屽啀鎸囧畾鏍圭粨鐐廣?
CEGUI 鏈韓渚︽祴鐢ㄦ埛杈撳叆錛岃繖浜涗笉鏄?CEGUI 鐨勮矗浠伙紝鑰屾槸紼嬪簭鐨勫憳鐨勮矗浠匯傚綋鏈夌敤鎴峰閮ㄨ緭鍏ユ椂錛屾垜
浠彲浠ラ夋嫨灝嗚繖浜涙秷鎭憡鐭?CEGUI 錛岃繖鏍?CEGUI 鎵嶄細(xì)鍝嶅簲銆?
鍦?ceguir::System 綾諱腑瀹氫箟浜嗕竴緇勫嚱鏁幫紝瀹冧綔涓烘垜浠繘琛屾秷鎭紶閫掔殑鎺ュ彛銆?
bool injectMouseMove(float delta_x, float delta_y);
bool injectMousePosition(float x_pos, float y_pos);
bool injectMouseLeaves(void);
bool injectMouseButtonDown(MouseButton button);
bool injectMouseButtonUp(MouseButton button);
bool injectKeyDown(uint key_code);
bool injectKeyUp(uint key_code);
bool injectChar(utf32 code_point);
bool injectMouseWheelChange(float delta);
bool injectTimePulse(float timeElapsed);
榪欎簺鍑芥暟鐨勮繑鍥炲艱鏄庝簡 CEGUI 鏄惁宸茬粡灝嗕紶鍏ョ殑娑堟伅 consume 鎺変簡銆?
CEGUI 浣跨敤鍥炶皟鏈哄埗鏉ヨ繘琛屾秷鎭鐞嗐傚彲浠ヤ負(fù)鏌愪釜紿椾綋鐨勭壒瀹氫簨浠舵敞鍐屼竴涓嚱鏁幫紝褰撶獥浣撲簨浠跺彂鐢熸椂錛?CEGUI 浼?xì)鑷姩璋冪敤鎵娉ㄥ唽鐨勫嚱鏁般?
bool TutorialApplication::handlePopMenu(constCEGUI::EventArgs& e)
锝?
// 銆傘傘傘傘傝繘琛屼簨浠跺搷搴?
锝?
void setupEventHandlers(void)
    {
       CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();
       wmgr .getWindow((CEGUI::utf8*)"MyButton")->subscribeEvent(
       CEGUI ::PushButton::EventClicked, CEGUI::Event::Subscriber(&TutorialApplication::handlePopMenu, this));
   }

EventClicked :: 緋葷粺棰勫畾涔夌殑浜嬩歡 . subscribeEvent:: 娉ㄥ唽鍑芥暟錛屽畠浜嬩歡涓庡搷搴斿嚱鏁拌仈鎺ュ湪涓璧楓?
鍦?ogre 紼嬪簭涓紝褰撲睛鍚櫒鏀跺埌閿洏錛岄紶鏍囨秷鎭椂錛岄鍏堢粡榪囬傚綋鐨勮漿鎹紙 CEGUI 鍙互璇嗗埆錛夊啀浼犻掔粰 CEGUI 銆備笅闈㈣繖涓嚱鏁版墽琛岄紶鏍囬敭鏍囪瘑杞崲銆?
CEGUI::MouseButton convertOgreButtonToCegui(int buttonID)
{
       switch (buttonID)
       {
       case MouseEvent::BUTTON0_MASK:
              return CEGUI::LeftButton;
       case MouseEvent::BUTTON1_MASK:
              return CEGUI::RightButton;
       case MouseEvent::BUTTON2_MASK:
              return CEGUI::MiddleButton;
       case MouseEvent::BUTTON3_MASK:
              return CEGUI::X1Button;
       default:
              return CEGUI::LeftButton;
       }
}

灝?CEGUI 闇瑕佺煡閬撶殑閿洏錛岄紶鏍囨秷鎭憡鐭ュ畠銆傚嵆鍦?OGRE 澶勭悊榪欎簺娑堟伅鏃墮氱煡 CEGUI 銆備互涓嬭繖鍑芥暟璇存槑浜嗙敤娉曘?
       void mouseMoved (MouseEvent *e)// 榧犳爣縐誨姩
       {
              CEGUI::System::getSingleton().injectMouseMove(
                   e->getRelX() * mGUIRenderer->getWidth(),
                   e->getRelY() * mGUIRenderer->getHeight());
                   e->consume();
       }

       void mousePressed (MouseEvent *e)// 榧犳爣鎸変笅
       {
              CEGUI::System::getSingleton().injectMouseButtonDown(
               convertOgreButtonToCegui(e->getButtonID()));
             e->consume();
       }
       void mouseReleased (MouseEvent *e)// 榧犳爣寮硅搗
       {
              CEGUI::System::getSingleton().injectMouseButtonUp(
              convertOgreButtonToCegui(e->getButtonID()));
              e->consume();
       }

       void keyPressed(KeyEvent* e)// 閿寜涓?
       {
              CEGUI::System::getSingleton().injectKeyDown(e->getKey());
              CEGUI::System::getSingleton().injectChar(e->getKeyChar());
              e->consume();
       }
       void keyReleased(KeyEvent* e)// 閿脊璧?
       {
             CEGUI::System::getSingleton().injectKeyUp(e->getKey());
             e->consume();

       }
鍦?CEGUI 涓嬌鐢ㄤ腑鏂囩殑闂錛?nbsp;  鐜板湪鎬葷粨浜嗕竴涓嬪湪 CEGUI 涓樉紺轟腑鏂囬渶瑕佹敞鎰忕殑浜嬮」 :
    1 銆佸皢 simhei.ttf copy to \ogrenew\Samples\Media\gui
    2 銆佸皢 simhei-12.font  鎷峰埌涓婄洰褰曞唴瀹逛負(fù)
<?xml version="1.0"  ?>
<Font Name="SimHei-12" Filename="simhei.ttf" Type="Dynamic" Size="12" NativeHorzRes="800" NativeVertRes="600" 
AutoScaled="true">
<GlyphSet Glyphs=" 浣犲ソ涓栫晫閫鍑烘紨紺烘覆鏌撳埌鏂版潗璐ㄥ緩緙栬緫紿楀彛 " /> 錛?<---- 鑷繁瑕佺敤鍒扮殑姹夊瓧錛?
</Font>
娉ㄦ剰澶у皬鍐欙紒錛?GlyphSet Glyphs 鏄湪紼嬪簭涓鐢ㄥ埌鐨勬眽瀛楋紝瀹冩槸璁?cegui 棰勭敓鎴愪竴涓瓧絎﹀浘鍍忛泦鐢ㄧ殑錛堟兂褰撶劧鐨?:-P 錛夊鏋滀慨鏀逛簡榪欎釜鏂囦歡錛屾敞鎰忚鐢?Unicode 錛?UTF-8 錛夌殑緙栫爜鏉ヤ繚瀛橈紝鍦?vc7.1 涓細(xì)鏂囦歡 -> 楂樼駭淇濆瓨閫夐」   鐨?nbsp;  緙栫爜   鏍忎腑閫夋嫨銆?
    3 銆佸湪 TaharezLook.scheme 涓?
     <Font Name="Tahoma-12" Filename="tahoma-12.font" /> 鍚庡姞鍏?
     <Font Name="SimHei-12" Filename="simhei-12.font" />  娉ㄦ剰澶у皬鍐?
     浠ヤ笂鏄竴浜涘噯澶囧伐浣?
    4 銆佸湪鑷繁鐨勫簲鐢ㄤ腑璁劇疆榛樿瀛椾綋
    mGUISystem->setDefaultFont((CEGUI::utf8*)"Tahoma-12"); 鏀逛負(fù)
    mGUISystem->setDefaultFont((CEGUI::utf8*)"SimHei-12");
    5 銆佸湪鑷繁鐨勫簲鐢ㄧ▼搴忎腑灝卞彲浠ユ妸鐩稿叧鐨?Text 灞炴ц涓轟腑鏂囦簡錛屽錛?
    item = new CEGUI::ListboxTextItem((CEGUI::utf8*)" 閫鍑?", 6);
    鍚屾牱瑕佹敞鎰忕殑鏄淇濆瓨涓?Unicode 錛?UTF-8 錛夌殑緙栫爜銆傚悓鏃惰繖浜涘瓧瑕佹槸鍦?simhei-12.font 涓畾涔夎繃鐨勫瓧錛屽綋鐒朵篃鍙互璞¢偅涓?CEGUIChieseDemo
閭f牱鐢ㄥ姩鎬佺敓鎴愬錛?
    gfont->defineFontGlyphs(gfont->getAvailableGlyphs() + (utf8*)" 褰撳墠鏈浣?jīng)_潖騫沖潎鐨勬鏋剁巼涓夎 ");
    緙栬瘧鑷繁鐨勭▼搴忥紝搴旇灝卞彲浠ョ湅鍒頒腑鏂囦簡錛岀綏鍡︿竴涓嬶紝璁頒綇鍙鏈夋眽瀛楀嚭鐜扮殑鏂囦歡灝變繚瀛樹負(fù) Unicode 錛?UTF-8 錛夌紪鐮佺殑錛侊紒錛?



灝忕帇 2009-11-27 03:09 鍙戣〃璇勮
]]>
緙栬瘧榪愯Orzhttp://www.shnenglu.com/jack-wang/archive/2009/11/18/101270.html灝忕帇灝忕帇Wed, 18 Nov 2009 00:05:00 GMThttp://www.shnenglu.com/jack-wang/archive/2009/11/18/101270.htmlhttp://www.shnenglu.com/jack-wang/comments/101270.htmlhttp://www.shnenglu.com/jack-wang/archive/2009/11/18/101270.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/101270.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/101270.html2.娉ㄦ剰錛屼粠svn涓婁笅杞界殑浠g爜錛屽伐紼嬬殑榛樿褰撳墠璺緞涓篛rz\Scripts\vc8錛堝鏋滀嬌鐢╲c8緙栬瘧錛夈傚鎬紒
3.浠庡畼緗戜笂涓嬭澆渚濊禆鏂囦歡錛坉ependencies鏂囦歡澶癸級錛屽皢dependencies鏂囦歡澶規(guī)斁緗簬鍖呭惈Orz_vc8.sln鐨勭洰褰曚腑銆?br>鍚勪釜宸ョ▼鏂囦歡鐨?#8220;闄勫姞鍖呭惈鐩綍”涓仛濡傛淇敼錛?.\..\dependencies\dependencies\include
閾炬帴鍣ㄧ殑“闄勫姞鍖呭惈搴?#8221;涓仛濡傛淇敼錛?.\..\dependencies\dependencies\lib\debug

灝忕帇 2009-11-18 08:05 鍙戣〃璇勮
]]>
vs2005鐜涓婥ELayoutEditor婧愮爜緙栬瘧璇︾粏姝ラ http://www.shnenglu.com/jack-wang/archive/2009/06/18/88040.html灝忕帇灝忕帇Thu, 18 Jun 2009 14:51:00 GMThttp://www.shnenglu.com/jack-wang/archive/2009/06/18/88040.htmlhttp://www.shnenglu.com/jack-wang/comments/88040.htmlhttp://www.shnenglu.com/jack-wang/archive/2009/06/18/88040.html#Feedback1http://www.shnenglu.com/jack-wang/comments/commentRss/88040.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/88040.html浠婂ぉ鍒濊瘯浜嗕竴涓婥EGUI鐨勫畼鏂圭紪杈戝櫒鈥斺擟ELayoutEditor錛屽叾榪囩▼鐪熷彲璋?#8220;楗卞彈鎸姌”銆傜幇綆瑕佸啓涓嬪叾婧愮爜鐨勭紪璇戣繃紼嬶紝宸蹭嬌鍙兘浼?xì)鐢ㄥ埌鐨勬湅鍙嫗畱璧颁簺寮矾銆?br>1. 瑕佺紪璇慍ELayoutEditor錛岃嚜鐒墮渶瑕佸厛緙栬瘧CEGUI鐨勪笢涓滐紝鏈?縐嶉夋嫨錛?
1.1 瀹夎SDK錛岃繖鏄笅杞藉湴鍧錛歨ttp://jaist.dl.sourceforge.net/sourceforge/crayzedsgui/CEGUI-SDK-0.5.0b-vc8.exe錛屼笉榪囧茍涓嶆帹鑽愯繖縐嶆柟娉曪紝鍥犱負(fù)SDK閲岀殑debug鐗坉ll浼間箮鏈夐棶棰樸傘傘?
1.2 緙栬瘧鍏舵簮浠g爜銆備笅杞藉湴鍧錛歨ttp://jaist.dl.sourceforge.net/sourceforge/crayzedsgui/CEGUI-0.5.0b.zip錛屽彟澶栬繕闇瑕佷笅杞戒緷璧栨枃浠跺寘dependencies package 錛屼笅杞藉湴鍧鏄細(xì)http://jaist.dl.sourceforge.net/sourceforge/crayzedsgui/CEGUI-DEPS-0.5.0b-vc8.zip錛岀劧鍚庡皢渚濊禆鏂囦歡瑙e帇榪涙簮浠g爜鏂囦歡澶瑰氨O(jiān)K浜嗐?nbsp;
1.2.1 鍏堝埆鎬ョ潃鎵緎olution錛屾湁涓湴鏂歸渶瑕佹敞鎰忋侰EGUI榛樿鐨勬槸OPENGL娓叉煋錛屽鏋滄槸鐢―3D鐨勮瘽榪樺緱鏀逛竴涓湴鏂廣傝繘..\makefiles\premake鏂囦歡澶規(guī)壘鍒癱onfig.lua鏂囦歡錛岃浜嬫湰鎵撳紑銆傛敼鎴?#8220;OPENGL_RENDERER = false錛孌IRECTX9_RENDERER = true”錛屼繚瀛樸?
1.2.2 榪愯build_vs2005.bat鏂囦歡錛屾墽琛屽畬姣曞悗浼?xì)鐢熸垚CEGUI.sln鏂囦歡錛屾墦寮灝卞彲鐩存帴緙栬瘧浜?
1.3 寤虹珛鐜鍙橀噺錛氭垜鐨勭數(shù)鑴慭灞炴楂樼駭\鐜鍙橀噺錛岀劧鍚庡湪涓婇潰鐨勭敤鎴峰彉閲忓尯鏂板緩涓涓紝鍙橀噺鍚嶆槸CEGUI錛屽彉閲忓兼槸CEGUI鐨勮В鍘嬬洰褰曘傛敞鎰忚繖姝ヤ笉鑳界渷

2 鐢變簬CELayoutEditor浣跨敤浜唚xWidgets錛屾墍浠ュ湪緙栬瘧CELayoutEditor涔嬪墠榪橀渶瑕佷笅杞絯xWidgets銆傜洰鍓嶆渶鏂扮増鏈槸2.86錛岃繘鍏ュ畼鏂逛笅杞界綉欏礹ttp://www.wxwidgets.org/downloads/ 閫夋嫨WxAll涓嬭澆銆?
2.1 寤虹珛鐜鍙橀噺錛氭垜鐨勭數(shù)鑴慭灞炴楂樼駭\鐜鍙橀噺錛岀劧鍚庡湪涓婇潰鐨勭敤鎴峰彉閲忓尯鏂板緩涓涓紝鍙橀噺鍚嶆槸WXWIDGETS錛屽彉閲忓兼槸wxWidgets鐨勮В鍘嬬洰褰曘?2.2 榪泈xWidgets鐨勮В鍘嬬洰褰曟壘鍒皐x.dsw錛屾墦寮銆?#8220;Yes To All”杞崲銆傝漿鎹㈠畬姣曞悗鍏堝埆緙栬瘧錛岃繕闇瑕佹敼涓嬨?br>鍥犱負(fù)wxWidgets榛樿騫朵笉鏄疧PENGL Open $(WXWIDGETS)\include\wx\msw\setup.h and replace Code: #define wxUSE_GLCANVAS 0 WITH Code: #define wxUSE_GLCANVAS 1 7.2 Open $(WXWIDGETS)\include\wx\univ\setup.h and replace Code: #if defined(__WIN32__) #define wxUSE_GLCANVAS 1 else #define wxUSE_GLCANVAS 0 WITH Code: #define wxUSE_GLCANVAS 1
2.3 鐜板湪灝卞彲浠ュ紑濮嬬紪璇戜簡銆?br>娉ㄦ剰瑕侀夋嫨“Unicode Debug”鍜?#8220;'Unicode Release”鏂瑰紡

3 涓嬭澆CELayoutEditor銆?br>鎴戞槸鐢⊿VN鎺ョ殑錛屽湴鍧鏄?https://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/trunk
3.1 瑙e帇鍚庢墦寮宸ョ▼錛屽皢Include鍜孡ib璺緞鏀規(guī)垚鑷繁鐨勶紝鍏朵粬鐨勪笉鐢ㄦ敼銆?br>3.2 寤虹珛鐜鍙橀噺錛氭垜鐨勭數(shù)鑴慭灞炴楂樼駭\鐜鍙橀噺錛岀劧鍚庡湪涓婇潰鐨勭敤鎴峰彉閲忓尯鏂板緩涓涓紝鍙橀噺鍚嶆槸CE_LAYOUT_EDITOR 錛屽彉閲忓兼槸CELayoutEditor鐨勮В鍘嬬洰褰曘傛敞鎰忚繖姝ヤ笉鑳界渷銆?br>3.3 緇堜簬鍙互寮濮嬬紪璇戜簡銆傘傘?

4 4.1 緙栬瘧浼?xì)鍑虹庮C竴涓敊璇紝鏆傛椂鎴戣繕娌℃壘鍒拌В鍐蟲柟娉曪紝浠呬粎鏄粰閿欒鐨勫湴鏂規(guī)敞閲婃帀浜嗐傘傘傜劧鍚庡氨緙栬瘧鎴愬姛浜嗐?
4.2 鎷蜂竴浜涗笢瑗胯繃鏉?
TO $(CE_LAYOUT_EDITOR)\bin\debug (Debug configuration) - CEGUIBase_d.dll - CEGUIExpatParser_d.dll - CEGUIFalagardWRBase_d.dll - CEGUISILLYImageCodec_d.dll - CEGUITGAImageCodec_d.dll - OpenGLGUIRenderer_d.dll - SILLY_d.dll TO $(CE_LAYOUT_EDITOR)\bin\release (Release configuration) - CEGUIBase.dll - CEGUIExpatParser.dll - CEGUIFalagardWRBase.dll - CEGUISILLYImageCodec.dll - CEGUITGAImageCodec.dll - OpenGLGUIRenderer.dll - SILLY.dll 4.3 SILLY.dll鍜孲ILLY_d.dll鍦ㄤ緷璧栨枃浠跺す閲?
OK銆傘傘傚埌榪欓噷灝卞畬浜嗭紝铏界劧榪欎釜宸ュ叿鐨刡ug寰堝錛屼笉榪囦笉鎬曪紝緙栬瘧瀹冨氨鏄負(fù)浜嗚鏀歸犲畠錛屽懙鍛點(diǎn)?br>甯屾湜姝ゆ枃瀵逛綘鏈夋墍甯姪銆?

灝忕帇 2009-06-18 22:51 鍙戣〃璇勮
]]>
鐢∣greOde鍒涘緩涓涓細(xì)璧板姩鐨勮鑹?/title><link>http://www.shnenglu.com/jack-wang/archive/2009/01/02/70974.html</link><dc:creator>灝忕帇</dc:creator><author>灝忕帇</author><pubDate>Thu, 01 Jan 2009 20:56:00 GMT</pubDate><guid>http://www.shnenglu.com/jack-wang/archive/2009/01/02/70974.html</guid><wfw:comment>http://www.shnenglu.com/jack-wang/comments/70974.html</wfw:comment><comments>http://www.shnenglu.com/jack-wang/archive/2009/01/02/70974.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jack-wang/comments/commentRss/70974.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jack-wang/services/trackbacks/70974.html</trackback:ping><description><![CDATA[<div class="hvzpftn" id=content><strong><span>鐢?span>OgreOde</span>鍒涘緩涓涓細(xì)璧板姩鐨勮鑹?/span></strong> <br> <p align=left>鍘熸枃<a >http://www.game798.com/html/2007-12/5156.htm</a><br><span><br></span><span>絎竴鐗?span> by SuperMegaMau </span></span></p> <p align=left><span>榪欎釜鏁欑▼鍖呮嫭鐨勪唬鐮佸拰綆楁硶鏄綔鑰呰嚜宸辯殑緇忛獙<span>,</span>涔熻涓嶆紜垨涓嶆庝箞鍑嗙‘<span>,</span>濡傛灉鍙戠幇闂璇風(fēng)籂姝c?/span></p> <p align=left> </p> <table cellPadding=0 width=318 border=0> <tbody> <tr> <td> <p align=left><strong><span>鍐呭</span></strong></p> <ul type=disc> <li><u><span>1 </span></u><u><span>浠嬬粛</span></u> <li><span>2 <span><span>鍒涘緩鐗╃悊妯″瀷</span></span><span><span> </span></span> </span> <ul type=circle> <li><span>2.1 <span><span>鍒涘緩瑙掕壊</span></span><span><span> </span></span> </span> <li><u><span>2.2 </span></u><u><span>鑾峰彇<span> AABB</span></span></u><span> </span> <li><u><span>2.3 </span></u><u><span>鍒涘緩鏂扮┖闂?</span></u><span> </span> <li><u><span>2.4 </span></u><u><span>鍒涘緩鐞?</span></u><span> </span> <li><u><span>2.5 </span></u><u><span>鍒涘緩妞悆 </span></u><span> </span> <li><u><span>2.6 </span></u><u><span>鍒涘緩鍏寵妭 </span></u><span> </span> </li> </ul> <li><u><span>3 </span></u><u><span>縐誨姩瑙掕壊 </span></u><span> </span> <ul type=circle> <li><u><span>3.1 </span></u><u><span>鍓嶅悗縐誨姩</span></u><span> </span> <li><span>3.2 <span><span>宸﹀彸鏃嬭漿</span></span><span><span> </span></span> </span> </li> </ul> <li><u><span>4 </span></u><u><span>璁╄鑹茬埇璧鋒潵 </span></u> <li><u><span>5 </span></u><u><span>闂 </span></u></li> </ul> </td> </tr> </tbody> </table> <p align=left><strong><span>浠嬬粛</span></strong></p> <p align=left><span>鎴戠浉淇℃垜涓嶆槸絎竴浜鴻嚜闂浣曠敤<span>OgreOde</span>鍒涘緩涓涓繍鍔ㄨ鑹層傛悳绱㈣鍧涘拰<span>wiki</span>鍚庯紝鎴戞剰璇嗗埌榪欐槸涓涓緢鏈夌敤鐨勪俊鎭傝繖涓暀紼嬭В閲婁簡濡備綍鍒涘緩涓涓彲浠ュ湪鍦板艦涓婅璧扮殑榪愬姩瑙掕壊錛堝寘鎷叾瀹?span>meshes</span>錛屽鏍?wèi)鍜屾埧灞嬪Q夈?/span></p> <p align=left><strong><span>鍒涘緩鐗╃悊妯″瀷</span></strong></p> <p align=left><span>鎴戞寜鐓у湪<span>Monster</span>鐨勬柟娉曠敤涓嬪浘浠h〃涓涓鑹詫細(xì)</span></p> <p align=left><span></span></p> <p align=left><span>涓嬮潰<span>,</span>鎴戝亣璁句綘瀵?span>Ogre</span>鐨?span>SceneNodes, meshes </span>鍜?span>AlignedBoxes</span>閮芥湁鎵浜嗚В錛屽茍涓斾細(xì)鐢?span>SceneManager</span>鍒涘緩鍦板艦銆?/span></p> <p align=left><strong><span>鍒涘緩瑙掕壊</span></strong></p> <p align=left><span>棣栧厛鍒涘緩涓涓?span>SceneNode</span>鏉ユ斁瑙掕壊鐨?span>mesh</span>錛屽湪榪欎釜渚嬪瓙涓垜鐢ㄤ簡<span>Ogre</span>渚嬪瓙涓殑蹇嶈呮ā鍨嬨傚垱寤轟袱涓?span>SceneNode</span>騫舵妸瀹冧滑榪炲湪涓璧楓傚悗闈㈡垜浼?xì)瑙i噴湄?fù)浠涔堟槸涓や釜<span>Node</span>銆?/span></p> <p align=left><span>Entity* ninja = mSceneMgr->createEntity("ninja","ninja.mesh");</span></p> <p align=left><span>SceneNode* ninjaNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("ninja");</span></p> <p align=left><span>SceneNode* modelNode = ninjaNode->createChildSceneNode("ninja_model");</span></p> <p align=left><span>modelNode->attachObject(ninja);</span></p> <p align=left><span>ninjaNode->setScale(0.05,0.05,0.05);</span></p> <p align=left><span> <table cellSpacing=0 cellPadding=0 width="100%"> <tbody> <tr> <td> <div> <p><span>RootSceneNode</span></p> </div> </td> </tr> </tbody> </table> <table cellSpacing=0 cellPadding=0 width="100%"> <tbody> <tr> <td> <div> <p><span>ninjaNode</span></p> </div> </td> </tr> </tbody> </table> <table cellSpacing=0 cellPadding=0 width="100%"> <tbody> <tr> <td> <div> <p><span>modelNode</span></p> </div> </td> </tr> </tbody> </table> </span></p> <p align=left><span>涔熻浣犲凡緇忔敞鎰忓埌錛?span>ninjaNode</span>琚緝鏀懼緱寰堝皬錛岃繖鏄洜涓哄鏋?span>mesh</span>寰堝ぇ鐨勮瘽娓叉煋鐨勯熷害灝卞彉寰堟參錛堜笉鐭ラ亾涓轟粈涔堬級銆?/span></p> <p align=left><strong><span>鑾峰彇<span> AABB(</span></span></strong><strong><span>AxisAlignedBox, </span></strong><strong><span>杞村榻愬寘鍥寸洅</span></strong><strong><span>) </span></strong></p> <p align=left><span>鐜板湪鐢?span>AxisAlignedBox</span>鑾峰彇<span>mesh</span>鐨勫ぇ灝忋?/span></p> <p align=left><span>AxisAlignedBox aab = modelNode->getAttachedObject("ninja")->getBoundingBox(); </span></p> <p align=left><span>Ogre::Vector3 min = aab.getMinimum()*ninjaNode->getScale();</span></p> <p align=left><span>Ogre::Vector3 max = aab.getMaximum()*ninjaNode->getScale();</span></p> <p align=left><span>Ogre::Vector3 center = aab.getCenter()*ninjaNode->getScale();</span></p> <p align=left><span>Ogre::Vector3 size(fabs(max.x-min.x),fabs(max.y-min.y),fabs(max.z-min.z));</span></p> <p align=left><span>float radius = (size.x>size.z)?size.z/2.0f:size.x/2.0f; </span></p> <p align=left> </p> <p align=left><strong><span>鍒涘緩涓涓柊絀洪棿<span> </span></span></strong></p> <p align=left><span>鎴戜滑闇瑕佸垱寤轟竴涓柊絀洪棿鎶婅鑹叉斁鍦ㄥ叾涓紝騫朵笖鍙栨秷鍐呴儴紕版挒媯嫻嬨?/span></p> <p align=left><span>OgreOde::SimpleSpace* dollSpace = new OgreOde::SimpleSpace(_world->getDefaultSpace());</span></p> <p align=left><span>dollSpace->setInternalCollisions(false);</span></p> <p align=left><strong><span>鍒涘緩鐞冧綋<span>(</span><span>鑵塊儴<span>) </span></span></span></strong></p> <p align=left><span>鐜板湪鏈変簡涓や釜<span>SceneNodes</span>錛?span> "ninjaNode" </span>鍜?span> "modelNode"</span>銆?span>ninjaNode</span>鏄唬琛ㄤ綘瑙掕壊鐨勮妭鐐癸紝<span>modelNode</span>鏄綘鐪熸璐?span>mesh</span>鐨勫湴鏂廣傝繖涔堝仛鏄洜涓?span>mesh</span>鐨勪腑蹇冩繪槸鍦?span>OgreOde::Body</span>鐨勪腑蹇冿紝鎵浠ユ垜浠敤<span>ninjaNode</span>鏉ュ垱寤虹鎾炰綋鐨勪綅緗紝鐒跺悗鏍規(guī)嵁<span>ninjaNode</span>鍜?span>OgreOde::Body</span>鏉ヨ幏寰?span>mesh</span>鐨勬紜綅緗?/span></p> <p align=left><span></span></p> <p align=left><span>宸﹁竟鍥炬槸鐢ㄤ竴涓?span>SceneNode</span>鎵寰楀埌鐨勬晥鏋滐紝鍙寵竟鏄敤涓や釜<span>SceneNode</span>銆備綘鍙互娉ㄦ剰鍒幫紝宸﹁竟鐨勮鑹叉?zhèn)瑡巩鍦ㄥ崐绌轰腑銆備笅闈唬鐮佸垱寤轟簡涓涓悆浣撲唬琛ㄨ鑹茬殑鑴氶儴銆傛垜浠渶瑕佷竴涓?span>SphereGeometry</span>鍜屼竴涓?span>TransformGeometry </span>灝嗙悆浣撴斁鍒版紜綅緗?/span></p> <p align=left><strong><span>璇戞敞錛氭敞閲婁負(fù)鎴戠殑鐚滄兂錛屽叿浣撲笉鐭ラ亾姝ラ榪欎箞澶嶆潅錛屾榪庣籂姝c?span> </span></span></strong></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>鍒涘緩涓涓鎾炰綋錛屽懡鍚嶄負(fù)<span>feet</span></span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>璁劇疆紕版挒浣撲負(fù)鐞冨艦鐗╀綋錛屽崐寰勪負(fù)<span>AABB</span>鑾峰緱鐨勫崐寰?/span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>SphereGeometry</span><span>錛屽崐寰勪負(fù)<span>AABB</span>鑾峰緱鐨勫崐寰?/span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>TransformGeometry</span><span>錛岀┖闂翠負(fù)鍒氭墠鍒涘緩鐨勭┖闂?span>, TransformGeometry</span>浼間箮鏄負(fù)浜嗗寘鍚煇鐗瑰畾褰㈢姸鐨勫嚑浣曚綋</span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><u><span>鏀瑰彉<span>modelNode</span>鐩稿浜?span>ninjiaNode</span>鐨勪綅緗紝浠ヤ究璁╄剼鍗犲埌鍦頒笂</span></u></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>璁?span>TransformGeometry</span>鍖呭惈涓涓?span>OgreOde::Body</span>鍜屼竴涓嚑浣曚綋</span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>灝?span>Ogre::Body</span>綺樺埌<span>ninjaNode</span>涓?/span></p> <p align=left><span>鎬鐤戝垱寤?span>SphereGeometry</span>鏄惁鍙槸璁?span>Ogre::Body</span>鍏瘋薄鍖?/span></p> <p align=left> </p> <p align=left><span>OgreOde::Body* dollFeetBody = new OgreOde::Body("feet");<span>   </span></span></p> <p align=left><span>dollFeetBody->setMass(OgreOde::SphereMass(70*2.5,radius)); </span></p> <p align=left><span>OgreOde::SphereGeometry* feetGeom = new OgreOde::SphereGeometry(radius);</span></p> <p align=left><span>OgreOde::TransformGeometry* feetTrans = new OgreOde::TransformGeometry(dollSpace); </span></p> <p align=left><span>modelNode->translate(Vector3(0,-radius/ninjaNode->getScale().y,0));</span></p> <p align=left><span>feetTrans->setBody(dollFeetBody); </span></p> <p align=left><span>feetTrans->setEncapsulatedGeometry(feetGeom);</span></p> <p align=left><span>ninjaNode->attachObject(dollFeetBody);</span></p> <p align=left><strong><span>鍒涘緩妞悆浣?span> </span></span></strong></p> <p align=left><span>瀵逛簬瑙掕壊鐨勪笂鍗婅韓鐢ㄤ竴涓き鐞冧綋鏉ヨ〃紺恒?span> </span></span></p> <p align=left><strong><span>璇戞敞</span></strong><span>錛氬拰涓婇潰涓鏍楓?/span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>鍒涘緩<span>Ogre::Body</span></span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>璁劇疆<span>Ogre::Body</span>褰㈢姸錛屽彟澶栬緗笉琚噸鍔涘獎鍝嶏紝</span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>鍒涘緩<span>TransformGeometry</span>錛岀┖闂翠負(fù)鍒氭墠鍒涘緩鐨勭┖闂?/span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>鍒涘緩<span>CapsuleGeometry</span>錛屽崐寰勪負(fù)<span>AABB</span>鑾峰緱鍗婂緞</span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>璁劇疆<span>CapsuleGeometry</span>浣嶇疆鍜屾柟鍚戝拰闃誨凹</span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>璁?span>TransformGeometry</span>鍖呭惈<span>Ogre::body</span></span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>璁?span>TransformGeometry</span>鍖呭惈<span>CapsuleGeometry</span></span></p> <p align=left><span><span>錛?錛?span>        </span></span></span><span>灝?span>Ogre::Body</span>綺樺埌<span>ninjiaNode</span>涓?/span></p> <p align=left><span>OgreOde::Body* dollTorsoBody = new OgreOde::Body("torso"); </span></p> <p align=left><span>dollTorsoBody->setMass(OgreOde::CapsuleMass(70*2.5,radius,Vector3::UNIT_Y,radius)); </span></p> <p align=left><span>dollTorsoBody->setAffectedByGravity(false);</span></p> <p align=left><span>dollTorsoBody->setDamping(0,50000);</span></p> <p align=left><span>OgreOde::TransformGeometry* torsoTrans = new OgreOde::TransformGeometry(dollSpace); </span></p> <p align=left><span>OgreOde::CapsuleGeometry* torsoGeom = new OgreOde::CapsuleGeometry(radius,size.y-4*radius,dollSpace); </span></p> <p align=left><span>torsoGeom->setPosition(Ogre::Vector3(0,size.y-((size.y-4*radius)/2+2*radius),0)); //can't find a good way to explain this</span></p> <p align=left><span>torsoGeom->setOrientation(Quaternion(Degree(90),Vector3::UNIT_X));</span></p> <p align=left><span>torsoTrans->setBody(dollTorsoBody); </span></p> <p align=left><span>torsoTrans->setEncapsulatedGeometry(torsoGeom);</span></p> <p align=left><span>ninjaNode->attachObject(dollTorsoBody);</span></p> <p align=left><span>榪欎釜鍑犱綍浣撳拰鑴氱殑鍑犱綍浣撳湪鍚屼竴涓┖闂達(dá)紝鎵浠ユ垜浠鍙栨秷鍐呴儴紕版挒媯嫻嬨傝闃誨凹璁劇疆楂樹簺錛屽茍涓斿彇娑堥噸鍔涳紝涓嶇劧瀹冧細(xì)浠庨偅涓悆浣撲笂鎺変笅鏉ャ?/span></p> <p align=left><strong><span>鍒涘緩鍏寵妭<span> </span></span></strong></p> <p align=left><span>鍓╀笅鐨勪簨鎯呭氨鏄皢涓や釜紕版挒浣撹繛鍦ㄤ竴璧蜂簡銆備竴涓粸榪炶繛鎺ョ殑浠h〃鏄嚜琛岃濺鍓嶈疆銆?span> </span></span></p> <p align=left><span>OgreOde::HingeJoint* joint = new OgreOde::HingeJoint();</span></p> <p align=left><span>joint->attach(dollTorsoBody,dollFeetBody);</span></p> <p align=left><span>joint->setAxis(Ogre::Vector3::UNIT_X);<span>      </span>//set the rotation axis</span></p> <p align=left><strong><span>娉ㄦ剰錛?/span></strong><span>涓嶈蹇樿璁板綍鎵鏈夌鎾炰綋鍜岃繛鎺ョ殑浣嶇疆浠ヤ究浣犱箣鍚庤兘寰楀埌瀹冧滑銆備綘鍙互鐢?span>ogre</span>鍫嗘爤鎴栬呭垱寤轟綘鑷繁鐨勩?/span></p> <p align=left><strong><span>縐誨姩瑙掕壊<span> </span></span></strong></p> <p align=left><span>浣犲彲浠ラ氳繃涓嶅悓鏂規(guī)硶縐誨姩鎴栬呮棆杞綘鐨勮鑹詫紝鎴戝喅瀹氶氳繃鏀瑰彉紕版挒浣撴柟鍚戣屼笉鏄柦鍔犲姏鎴栬呭姏鐭┿?/span></p> <p align=left><strong><span>鍓嶅悗縐誨姩<span> </span></span></strong></p> <p align=left><span>涓嬮潰浠g爜鍙互鏀懼湪鎸夐敭鍝嶅簲閲屾墽琛岋紝璞?span>KC_UP</span>銆傜幇鍦ㄤ綘闇瑕佽幏鍙栫鎾炰綋錛屼粠鍫嗘爤鎴栬?span>hashTable</span>涓幏寰楋紝鐒跺悗鑾峰彇瀹冪殑鏂瑰悜銆傛垜鐢細(xì)</span></p> <p align=left><strong><span>璇戞敞錛氱寽鎯沖爢鏍堝氨鏄綘涓哄睆騫曚笂鎵鏈夌墿浣撴墍鍒涘緩鐨?span>Ogre::Body</span>鐨勪竴涓垪琛ㄣ?span> </span></span></strong></p> <p align=left><span>OgreOde::Body* torso = torsoBodies->getObject("ninja");</span></p> <p align=left><span>Quaternion q = torso->getOrientation();</span></p> <p align=left><span>鐒跺悗璧嬩簣鑴氫竴涓閫熷害銆?span> </span></span></p> <p align=left><span>OgreOde::Body* feet = feetBodies->getObject("ninja");</span></p> <p align=left><span>feet->wake();</span></p> <p align=left><span>feet->setAngularVelocity(q*Ogre::Vector3(10*cos(1),0,10*sin(1)));</span></p> <p align=left><span>10</span><span>鏄垜浠敤鐨勮閫熷害錛屽繀欏諱箻浠ヤ笁瑙掑嚱鏁頒互渚胯瑙掕壊鍚戞紜殑鏂瑰悜鍓嶈繘銆?/span></p> <p align=left><strong><span>宸﹀彸杞姩<span> </span></span></strong></p> <p align=left><span>涓嬮潰浠g爜鍚屾牱鏀懼湪鎸夐敭鍝嶅簲涓墽琛岋紝姣斿<span>KC_RIGHT</span>銆?span> </span></span></p> <p align=left><span>OgreOde::Body* torso = torsoBodies->getObject("ninja");</span></p> <p align=left><span>Quaternion q1 = torso->getOrientation();</span></p> <p align=left><span>Quaternion q2(Degree(-4),Ogre::Vector3::UNIT_Y);</span></p> <p align=left><span>torso->setOrientation(q1*q2);</span></p> <p align=left><span>鐢?span>Degree(-4)</span>璁╄鑹插悜鍙寵漿鍔紝鐢ㄦ鏁板悜宸﹁漿鍔ㄣ備篃璁鎬綘宸茬粡娉ㄦ剰鍒幫紝鎴戞繪槸浠庢き鐞冧綋鑾峰彇鎴栬呰緗柟鍚戙傛垜娌℃湁澶鎯籌紝鎴戞兂濡傛灉浣犱粠鑴氱殑鐞冧綋鏉ヨ幏鍙栧拰璁劇疆涔熷簲璇ユ病鏈変粈涔堥棶棰樸?/span></p> <p align=left><strong><span>娉ㄦ剰錛?/span></strong><span>濡傛灉浣犳澗寮鎸夐敭錛屼綘蹇呴』鎶婇熷害璁劇疆涓?span>0</span>鏉ュ仠姝㈣繍鍔ㄣ?/span></p> <p align=left><span>feetbody->setAngularVelocity(Vector3(0,0,0));</span></p> <p align=left><span>feetBody->setLinearVelocity(Vector3(0,feetBody->getLinearVelocity().y,0));</span></p> <p align=left><strong><span>璁╄鑹茬埇璧鋒潵<span> </span></span></strong></p> <p align=left><span>鏈鍚庯紝鎴戜滑瑕佺‘瀹氫綘鐨勮鑹蹭笉鎽斿掞紝鎵浠ユ垜浠渶瑕佷笉鏃墮噸鏂拌瀹氫粬鐨勫瀭鐩存柟鍚戙?span> </span></span></p> <p align=left><span>OgreOde::Body* torso = torsoBodies->getObject("ninja");</span></p> <p align=left><span>Quaternion q = torso->getOrientation();<span>                      </span></span></p> <p align=left> </p> <p align=left><span>Vector3 x = q.xAxis();</span></p> <p align=left><span>Vector3 y = q.yAxis();</span></p> <p align=left><span>Vector3 z = q.zAxis();</span></p> <p align=left> </p> <p align=left><span>torso->wake();</span></p> <p align=left><span>torso->setOrientation(Quaternion(x,Vector3::UNIT_Y,z));</span></p> <p align=left><strong><span>闂<span> </span></span></strong></p> <p align=left><span>閮ㄥ垎浠g爜娌℃湁鎴戞兂璞$殑閭d箞濂姐傛垜閲嶆柊璁懼畾鍨傜洿鏂瑰悜浼?xì)璁╄鑹叉湁濂囨殑琛屼負(fù)銆傝櫧鐒舵垜璁劇疆浜嗛熷害涓?span>0</span>錛屼絾鏄鑹插湪涓浜涗笉瑙勫垯鐨勮〃闈笂浠嶇劧鏃犳硶鍋滀笅鏉ャ?span> </span></span></p> </div> <img src ="http://www.shnenglu.com/jack-wang/aggbug/70974.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jack-wang/" target="_blank">灝忕帇</a> 2009-01-02 04:56 <a href="http://www.shnenglu.com/jack-wang/archive/2009/01/02/70974.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>DXUT榪涢樁(緲昏瘧)http://www.shnenglu.com/jack-wang/archive/2009/01/02/70964.html灝忕帇灝忕帇Thu, 01 Jan 2009 19:36:00 GMThttp://www.shnenglu.com/jack-wang/archive/2009/01/02/70964.htmlhttp://www.shnenglu.com/jack-wang/comments/70964.htmlhttp://www.shnenglu.com/jack-wang/archive/2009/01/02/70964.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/70964.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/70964.htmlDXUT榪涢樁(緲昏瘧)
DXUT榪涢樁

姒傝
榪欎釜鎸囧崡娑電洊浜嗘洿澶欴XUT鐨勯珮綰у簲鐢? 榪欎釜鎸囧崡閲岀殑澶ч儴鍒嗗姛鑳芥槸鍙夌殑, 涓轟簡浠ユ渶灝忕殑浠d環(huán)鏉ュ寮轟綘鐨勫簲鐢ㄧ▼搴? DXUT鎻愪緵浜嗕竴涓畝鍗曠殑鍩轟簬GUI緋葷粺鐨勭簿鐏靛拰涓涓澶囪緗璇濇. 鍙﹀, 瀹冭繕鎻愪緵浜嗕竴浜涙憚鍍忔満綾?
榪欎釜鎸囧崡鐨勭粨鏋滄槸涓涓叿鏈夊畬鍠勫姛鑳界殑GUI 鐢ㄤ簬鏇存敼璁懼鍜屽満鏅殑璁劇疆. 瀹冨皢鏈夋寜閽? 婊戝潡, 鍜屾枃鏈潵紺鴻寖榪欎簺鍔熻兘.
瀵艱埅
• DXUT鎽勫儚鏈?
• DXUT瀵硅瘽妗?
• 璧勬簮綆$悊紼嬪簭鍒濆鍖?
• 3D璁劇疆瀵硅瘽妗?
• 鏂囨湰娓叉煋
DXUT 鎽勫儚鏈?br>DXUT涓殑CModelViewerCamera 綾誨彲浠ョ畝鍗曠殑鐨勭鐞嗚鍥懼彉鎹㈠拰閫忚鍙樻崲, 灝卞儚GUI 鐨勫姛鑳戒竴鏍?
    CModelViewerCamera g_Camera;  // A model viewing camera
鎽勫儚鏈虹被鎻愪緵鐨勭涓涓姛鑳芥槸鍒涘緩瑙嗗浘鍜岄忚鐭╅樀. 鏈変簡榪欎釜鎽勫儚鏈?娌℃湁蹇呰鎷呭績榪欎簺鐭╅樀. 鍙嶈? 浣犲彲浠ユ寚瀹氫綘鍦ㄥ摢, 浣犵湅鐫浠涔?榪樻湁紿楀彛鐨勫ぇ灝? 鐒跺悗, 鎶婅繖浜涘弬鏁頒紶閫掔粰鎽勫儚鏈哄璞? 瀹冧細(xì)鍦ㄥ悗鍙板垱寤鴻繖浜涚煩闃?
榪欓噷鎴戜滑璁劇疆鎽勫儚鏈虹殑涓閮ㄥ垎瑙嗗浘鍙傛暟. 鎴戜滑鎸囧畾鎴戜滑鍦ㄥ摢,鍜屾垜浠湅鐫浠涔?
    // Initialize the camera
    D3DXVECTOR3 Eye( 0.0f, 0.0f, -800.0f );
    D3DXVECTOR3 At( 0.0f, 0.0f, 0.0f );
    g_Camera.SetViewParams( &Eye, &At );
鎺ヤ笅鏉?鎴戜滑鎸囧畾鎽勫儚鏈虹殑鎶曞獎鍙傛暟. 涔熷氨鏄, 鎴戜滑闇瑕佹彁渚涜瀵熻搴?綰墊í姣? 鍜岃鍥炬埅閿ョ殑榪戙佽繙瑁佸壀闈? 榪欎簺淇℃伅璺熶箣鍓嶇殑鎸囧崡鎻愪緵鐨勪竴鏍? 涓嶅悓鐨勬槸, 浣犱笉蹇呮媴蹇冩庝箞鍘誨垱寤虹煩闃?
    // Setup the camera's projection parameters
    float fAspectRatio = pBackBufferSurfaceDesc->Width / (FLOAT)pBackBufferSurfaceDesc->Height;
    g_Camera.SetProjParams( D3DX_PI/4, fAspectRatio, 0.1f, 5000.)0f );
    g_Camera.SetWindow( pBackBufferSurfaceDesc->Width, p00BackBufferSurfaceDesc->Height );
鍙﹀, 榪欎釜鎽勫儚鏈鴻繕灝佽浜嗙畝鍗曠殑榧犳爣鍙嶉. 鍦ㄨ繖閲? 鎴戜滑鎸囧畾涓変釜榧犳爣鎸夐敭緇欐彁渚涚殑榧犳爣鎿嶄綔: 妯″瀷鏃嬭漿, 鏀劇緝, 榪樻湁鎽勫儚鏈烘棆杞?璇曠潃緙栬瘧宸ョ▼騫剁敤姣忎釜鎸夐敭浣撲細(xì)涓涓嬪悇涓搷浣?
    g_Camera.SetButtonMasks( MOUSE_LEFT_BUTTON, MOUSE_WHEEL, MOUSE_MIDDLE_BUTTON );
鍦ㄨ繖涓寜閽粍鐨勫熀紜涓? 鎽勫儚鏈轟細(xì)鐩戝惉榪欎簺杈撳叆騫朵駭鐢熺浉搴旀晥鏋? 涓轟簡鍝嶅簲鐢ㄦ埛杈撳叆, 闇瑕佸姞鍏ヤ竴涓洃鍚埌MsgProc鍥炶皟鍑芥暟錛圖XUT娑堟伅澶勭悊鍑芥暟錛?
    // Pass all remaining windows messages to camera so it can respond to user input
    g_Camera.HandleMessages( hWnd, uMsg, wParam, lParam );
鏈鍚?鍦ㄦ妸鎵鏈夋暟鎹兘杈撳叆鎽勫儚鏈哄悗, 灝辨槸鍙栧嚭鐪熸鐨勫彉鎹㈢煩闃電殑鏃跺欎簡. 榪欓噷鎴戜滑鐢ㄧ浉鍏沖嚱鏁拌幏鍙栨姇褰辯煩闃靛拰瑙嗗浘鐭╅樀. 鎽勫儚鏈哄璞′細(xì)鑷繁璁$畻榪欎簺鐭╅樀.
    g_pProjectionVariable->SetMatrix( (float*)g_Camera.GetProjMatrix() );
    g_pViewVariable->SetMatrix( (float*)g_Camera.GetViewMatrix() );
DXUT 瀵硅瘽妗?br>鐢ㄦ埛浜や簰鍙互鐢–DXUTDialog鏉ュ疄鐜? 瀹冨湪涓涓寘鍚帶浠剁殑瀵硅瘽妗嗛噷鎺ュ彈鐢ㄦ埛杈撳叆,騫朵笖閫氳繃紼嬪簭鍙ユ焺浼犻掑畠浠? 棣栧厛, 瀵硅瘽妗嗙被瑕佸疄渚嬪寲, 鐒跺悗姣忎釜鍗曠嫭鐨勬帶浠舵墠鑳藉姞鍏?
澹版槑
鍦ㄨ繖涓寚鍗楅噷, 鏈変袱涓璇濇浼?xì)琚姞鍏? 涓涓彨 g_HUD璺烡3D10紺轟緥鍏變韓鐩稿悓鐨勪唬鐮? 鍙︿竴涓彨 g_SampleUI 鐢ㄤ簬鏄劇ず鍑芥暟緇嗚妭緇欒繖涓寚鍗? 絎簩涓璇濇鐢ㄦ潵鎺у埗妯″瀷鐨?鑳栫槮",灝辨槸璁劇疆涓涓彉閲忎紶閫掔粰shaders.
    CDXUTDialog g_HUD;      // manages the 3D UI
    CDXUTDialog g_SampleUI; // dialog for sample specific controls
榪欎簺瀵硅瘽妗嗚CDXUTDialogResourceManager鎺у埗鐫.榪欎釜綆$悊紼嬪簭浼?xì)鍦ㄥ璇濇涔嬮棿浼犻掓秷鎭茍澶勭悊鍏變韓璧勬簮.
    CDXUTDialogResourceManager g_DialogResourceManager; // manager for shared resources of dialogs
鏈鍚? 涓浜涘洖璋冨嚱鏁頒笌GUI澶勭悊鐨勫疄闄呮秷鎭浉鍏寵仈. 榪欎釜鍑芥暟鐢ㄤ簬澶勭悊鎺т歡闂寸殑浜や簰.
    void CALLBACK OnGUIEvent( UINT nEvent, int nControlID, CDXUTControl* pControl, void* pUserContext );
瀵硅瘽妗嗗垵濮嬪寲
鏃㈢劧宸茬粡浠嬬粛浜嗚澶氭湁鐢ㄧ殑涓滆タ, 閭d箞闇瑕佽鍒濆鍖? 榪欎釜鎸囧崡灝嗚繖浜涙ā鍧楃殑鐪熸鍒濆鍖栬漿縐誨埌涓涓崟鐙殑鍑芥暟, 鍙?InitApp().
姣忎釜瀵硅瘽妗嗙殑鎺т歡琚垵濮嬪寲灝辨槸鍦ㄨ繖涓嚱鏁伴噷. 姣忎釜瀵硅瘽妗嗛兘闇瑕佽皟鐢ㄥ畠鐨勫垵濮嬪寲鍑芥暟, 騫朵紶閫掔粰璧勬簮綆$悊鑰呮潵鎸囧畾鎶婃帶浠朵緵緇欒皝. 鍚屾牱, 瀹冧滑璁劇疆鍥炶皟鍑芥暟鏉ュ鐞咷UI 鍝嶅簲. 鏃㈢劧榪欐牱, 榪欎釜鐩稿叧鐨勫洖璋冨嚱鏁版槸 OnGUIEvent.
    g_HUD.Init( &g_DialogResourceManager );
    g_SampleUI.Init( &g_DialogResourceManager );
    g_HUD.SetCallback( OnGUIEvent );
    g_SampleUI.SetCallback( OnGUIEvent );
鍦ㄥ畠浠鍒濆鍖栧悗, 姣忎釜閮藉璇濇鍙互鍔犲叆瀹冧滑鎯寵浣跨敤鐨勬帶浠? 瀵硅瘽妗?HUD鍔犲叆浜?涓寜閽敤浜庡熀鏈姛鑳? 鍒囨崲鍏ㄥ睆, 鍒囨崲寮曠敤 (杞歡) 娓叉煋鍣? 鍜屾敼鍙樿澶?
瑕佸姞鍏ヤ竴涓寜閽? 浣犺鎸囧畾浣犳兂瑕佷嬌鐢ㄧ殑IDC 鏍囪瘑絎? 涓涓敤浜庢樉紺虹殑瀛楃涓? 鍧愭爣, 瀹藉拰楂? 榪樻湁鍙夌殑涓庡畠鍏寵仈鐨勭儹閿? 鐑敭鍙互鐢ㄩ敭鐩樺揩閫熷湴寮鍏寵繖浜涙寜閽?
娉ㄦ剰鎸囧畾鐨勫潗鏍囦笌瀵硅瘽妗嗙殑瀹氫綅鐩稿叧.
    int iY = 10;
    g_HUD.AddButton( IDC_TOGGLEFULLSCREEN, L"Toggle full screen", 35, iY, 125, 22 );
    g_HUD.AddButton( IDC_TOGGLEREF, L"Toggle REF (F3)", 35, iY += 24, 125, 22 );
    g_HUD.AddButton( IDC_CHANGEDEVICE, L"Change device (F2)", 35, iY += 24, 125, 22, VK_F2 );
鍚屾牱瀵逛簬sample UI, 鍔犲叆浜嗚繖浜涙帶浠?涓涓潤鎬佹枃鏈?涓涓粦鍧? 榪樻湁涓涓閫夋寜閽?
浼犻掔粰闈欐佹枃鏈殑鍙傛暟鏄疘DC 鏍囪瘑絎?瀛楃涓?鍧愭爣, 鍜屽楂?
婊戝潡鐨勫弬鏁版槸IDC 鏍囪瘑絎?瀛楃涓?鍧愭爣, 鍜屽楂? 榪樻湁婊戝潡鐨勬渶澶ф渶灝忓? 鏈鍚庢槸瀛樺偍緇撴灉鐨勫彉閲?
澶嶉夋寜閽寘鎷琁DC鏍囪瘑絎?涓涓瓧絎︿覆鏍囩,wf鍧愭爣, 瀹介珮,榪樻湁瀛樺偍緇撴灉鐨勫竷?yōu)當(dāng)鍊?
    iY = 10;
    WCHAR sz[100];
    iY += 24;
    StringCchPrintf( sz, 100, L"Puffiness: %0.2f", g_fModelPuffiness );
    g_SampleUI.AddStatic( IDC_PUFF_STATIC, sz, 35, iY += 24, 125, 22 );
    g_SampleUI.AddSlider( IDC_PUFF_SCALE, 50, iY += 24, 100, 22, 0, 2000, (int)(g_fModelPuffiness*100.0f) );
   
    iY += 24;
    g_SampleUI.AddCheckBox( IDC_TOGGLESPIN, L"Toggle Spinning", 35, iY += 24, 125, 22, g_bSpinning );
涓鏃﹀垵濮嬪寲浜? 榪欎釜瀵硅瘽妗嗚鏄劇ず鍦ㄥ睆騫曚笂. 榪欎釜鐢?OnD3D10ResizedSwapChain 璋冪敤鏉ュ畬鎴愭棦鐒跺睆騫曞潗鏍囨瘡嬈℃敼鍙樿繖涓氦鎹㈤摼浼?xì)閲嶅?(鍙兘鐢變簬紿楀彛澶у皬鐨勫彉鍖?.
    g_HUD.SetLocation( pBackBufferSurfaceDesc->Width-170, 0 );
    g_HUD.SetSize( 170, 170 );
    g_SampleUI.SetLocation( pBackBufferSurfaceDesc->Width-170, pBackBufferSurfaceDesc->Height-300 );
    g_SampleUI.SetSize( 170, 300 );
瀵硅瘽妗嗙殑鏈鍚庝竴姝ュ湪鍝渶瑕侀壌鍒畠浠嚜宸辨槸 OnD3D10FrameRender 鍑芥暟. 涓涓璇濇濡傛灉浣犱笉緇樺埗瀹冨茍涓旂敤鎴風(fēng)湅涓嶅埌涓嶅お濂藉惂?
    //
    // Render the UI
    //
    g_HUD.OnRender( fElapsedTime );
    g_SampleUI.OnRender( fElapsedTime );
璧勬簮綆$悊紼嬪簭鍒濆鍖?br>璧勬簮綆$悊紼嬪簭鍦ㄦ瘡嬈″洖璋冨垵濮嬪寲鍜岄攢姣佹椂闇瑕佽鍒濆鍖? 榪欐槸鍥犱負(fù)鍦ㄦ瘡嬈¤澶囪閲嶅緩鐨勬椂鍊?GUI闇琚噸寤? 鎴栬呬氦鎹㈤摼琚噸寤虹殑鏃跺? CDXUTDialogResourceManager 綾誨寘鍚鍚堟瘡涓繖鏍風(fēng)殑鍥炶皟鐨勫嚱鏁? 鍏鋒湁涓妯′竴鏍風(fēng)殑鍚嶅瓧. 鍥犳, 瀹冧粎浠呮槸鍦ㄥ悎閫傜殑鍦版柟鎻掑叆浠g爜鏉ヨ皟鐢ㄥ畠浠?
    V_RETURN( g_DialogResourceManager.OnD3D10CreateDevice( pd3dDevice ) );
    V_RETURN( g_DialogResourceManager.OnD3D10ResizedSwapChain( pd3dDevice, pBackBufferSurfaceDesc ) );
    g_DialogResourceManager.OnD3D10ReleasingSwapChain();
    g_DialogResourceManager.OnD3D10DestroyDevice();
鍝嶅簲GUI浜嬩歡
褰撳叏閮ㄥ垵濮嬪寲瀹屾垚鍚? 鎴戜滑鏈鍚庡彲浠ュ紑濮嬪啓浠g爜鏉ュ鐞咷UI浜や簰浜? 鍦ㄦ垜浠垵濮嬪寲瀵硅瘽妗嗙殑鏃跺?鎴戜滑璁劇疆榪欎簺瀵硅瘽妗嗙殑鍥炶皟鍑芥暟鍋氫負(fù)OnGUIEvent. 鐜板湪鎴戜滑灝嗚鍒涘緩 OnGUIEvent 鍑芥暟, 瀹冧細(xì)鐩戝惉騫跺鐞咷UI 鐩稿叧浜嬩歡(琚鏋惰皟鐢ㄧ殑).
榪欐槸涓涓畝鍗曠殑瀵規(guī)瘡涓狪DC鏍囪瘑絎﹀寘鍚竴涓猚ase浠g爜鍧楃殑鍑芥暟錛屽畠鍦ㄥ璇濇鍒涘緩鏃惰鐩戝惉. 鍦ㄦ瘡涓猚ase鍧椾腑浼?xì)鏄鐞嗕唬鐮?鍋囪鐢ㄦ埛浠ユ煇縐嶆柟寮忔帶鍒?榪欓噷鐨勫鐞嗘帶鍒剁殑浠g爜璺?Win32 浠g爜寰堝儚.
璺烪UD 鐩稿叧鐨勬帶鍒跺疄闄呬笂璋冪敤DXUT鍐呯疆鐨勫嚱鏁? 鏈変竴涓狣XUT 鍑芥暟鍏崇郴鍒板垏鎹㈠叏灞? 緇戝畾寮曠敤杞歡娓叉煋鍣? 騫朵笖鏇存敼璁懼璁劇疆(瀹冧細(xì)璋冪敤涓嬮潰鎻愬埌鐨?D璁劇疆瀵硅瘽妗?.
SampleUI 瀵硅瘽妗嗗寘鍚嚜瀹氫箟鐨勪唬鐮佹搷浣滆窡婊戝潡鐩稿叧鑱旂殑鍙橀噺. 瀹冧細(xì)鏀墮泦鏁板? 鏇存柊涓庡畠鐩稿叧鐨勬枃鏈? 騫舵妸鏁板間紶閫掔粰婊戝潡.
    void CALLBACK OnGUIEvent( UINT nEvent, int nControlID, CDXUTControl* pControl, void* pUserContext )
    {
       
        switch( nControlID )
        {
            case IDC_TOGGLEFULLSCREEN: DXUTToggleFullScreen(); break;
            case IDC_TOGGLEREF:        DXUTToggleREF(); break;
            case IDC_CHANGEDEVICE:    g_D3DSettingsDlg.SetActive( !g_D3DSettingsDlg.IsActive() ); break;
   
            case IDC_TOGGLESPIN:
            {
                g_bSpinning = g_SampleUI.GetCheckBox( IDC_TOGGLESPIN )->GetChecked();
                break;
            }
   
            case IDC_PUFF_SCALE:
            {
                g_fModelPuffiness = (float) (g_SampleUI.GetSlider( IDC_PUFF_SCALE )->Getvalue() * 0.01f);
   
                WCHAR sz[100];
                StringCchPrintf( sz, 100, L"Puffiness: %0.2f", g_fModelPuffiness );
                g_SampleUI.GetStatic( IDC_PUFF_STATIC )->SetText( sz );
   
                g_pPuffiness->SetFloat( g_fModelPuffiness );
                break;
            }
        }
       
    }
鏇存柊娑堟伅澶勭悊
鏃㈢劧鐜板湪鎴戜滑鏈夊璇濇娑堟伅鍜岀敤鎴蜂氦浜? 閭e氨浼?xì)鏈変紶閫掔粰搴旂敤紼嬪簭鐨勬秷鎭渶瑕佽瑙f瀽, 濡傛灉閫傜敤鐨勮瘽.閭d簺浠g爜浼?xì)鍦―XUT鎻愪緵鐨?MsgProc 鍥炶皟鍑芥暟涓澶勭悊. 鍦ㄤ箣鍓嶇殑鎸囧崡閲? 榪欐鏄┖鐧藉洜涓烘病鏈夋秷鎭渶瑕佽澶勭悊. 浣嗘槸鐜板湪,鎴戜滑瑕佺‘淇濆彂閫佺粰璧勬簮綆$悊紼嬪簭鍜屽璇濇鐨勬秷鎭閫傚綋鍦板彂閫?
涓嶉渶瑕佷笓闂ㄧ殑娑堟伅澶勭悊浠g爜; 鎴戜滑鍙渶瑕佸姣忎釜瀵硅瘽妗嗚皟鐢∕sgProcs鏉ョ‘淇濇秷鎭澶勭悊浜?榪欓氳繃璋冪敤姣忎釜鍗曠嫭鐨勭被鐨勭浉搴旂殑 MsgProc 鍑芥暟鏉ュ畬鎴? 搴旇娉ㄦ剰鍒拌繖涓嚱鏁版彁渚涗簡涓涓爣璁伴氭姤緇欐鏋訛紝涓嶉渶瑕佹洿澶氱殑澶勭悊, 鍥犳,鍙互閫鍑?
    LRESULT CALLBACK MsgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, bool* pbNoFurtherProcessing, void* pUserContext )
    {
        // Always allow dialog resource manager calls to handle global messages
        // so GUI state is updated correctly
        *pbNoFurtherProcessing = g_DialogResourceManager.MsgProc( hWnd, uMsg, wParam, lParam );
        if( *pbNoFurtherProcessing )
            return 0;
   
        if( g_D3DSettingsDlg.IsActive() )
        {
            g_D3DSettingsDlg.MsgProc( hWnd, uMsg, wParam, lParam );
            return 0;
        }
   
        // Give the dialogs a chance to handle the message first
        *pbNoFurtherProcessing = g_HUD.MsgProc( hWnd, uMsg, wParam, lParam );
        if( *pbNoFurtherProcessing )
            return 0;
        *pbNoFurtherProcessing = g_SampleUI.MsgProc( hWnd, uMsg, wParam, lParam );
        if( *pbNoFurtherProcessing )
            return 0;
   
        if( uMsg == WM_CHAR && wParam == '1' )
            DXUTToggleFullScreen();
   
        return 0;
    }
3D璁劇疆瀵硅瘽妗?br>鏈変竴涓笓闂ㄧ殑鍐呯疆瀵硅瘽妗嗙敤鏉ユ帶鍒禗3DDevice鐨勮緗? DXUT鎻愪緵鐨勮繖涓璇濇灝辨槸CD3DSettingsDlg. 瀹冪殑鍔熻兘鍍忎竴涓嚜瀹氫箟瀵硅瘽妗?浣嗘槸瀹冧細(xì)鎻愪緵緇欑敤鎴鋒墍鏈夌殑浠栦滑闇瑕佷慨鏀圭殑璁劇疆閫夐」.
    CD3DSettingsDlg        g_D3DSettingsDlg;      // Device settings dialog
鍒濆鍖栧氨鍍忓叾瀹冨璇濇涓鏍? 浣犲彲浠ヨ皟鐢ㄥ垵濮嬪寲鍑芥暟. 鐒惰? 姣忔Direct3D 鏀瑰彉瀹冪殑浜ゆ崲閾炬垨鑰呰澶?榪欎釜瀵硅瘽妗嗗繀欏昏鏇存柊.鍥犳, 瀹冨繀欏誨寘鍚竴涓皟鐢ㄥ湪OnD3D10CreateDevice 鍜孫nD3D10ResizedSwapChain閲? 鐩稿搴斿湴鍛藉悕, 鏉ュ弽鏄犺繖浜涙敼鍙? 鍚屾牱鍦?閿姣佸璞$殑鏀瑰彉蹇呴』琚氭姤, 鍥犺? 闇瑕佸湪 OnD3D10DestroyDevice閲岃皟鐢?
    g_D3DSettingsDlg.Init( &g_DialogResourceManager );
   
    V_RETURN( g_D3DSettingsDlg.OnD3D10CreateDevice( pd3dDevice ) );
    V_RETURN( g_D3DSettingsDlg.OnD3D10ResizedSwapChain( pd3dDevice, pBackBufferSurfaceDesc ) );
   
    g_D3DSettingsDlg.OnD3D10DestroyDevice();
鍦ㄦ覆鏌撶殑榪欎竴杈? 鍥犱負(fù)瀵硅瘽妗嗙殑鍑虹幇鍙互琚敼鍙?瀹冮氳繃涓涓彨 IsActive()鐨勬爣璁版潵杞崲. 濡傛灉榪欎釜鏍囪琚鎴恌alse, 閭d箞榪欎釜闈㈡澘灝嗕笉浼?xì)琚覆鏌?榪欎釜闈㈡澘鐨勬敼鍙樻槸鍙椾笂闈㈣榪囩殑HUD瀵硅瘽妗嗗鐞嗙殑. 鏍囪The IDC_CHANGEDEVICE涓嶩UD 鎺т歡鐩稿叧, 灝卞儚涓婇潰鎻愬埌鐨勯偅鏍?
    if( g_D3DSettingsDlg.IsActive() )
    {
        g_D3DSettingsDlg.MsgProc( hWnd, uMsg, wParam, lParam );
        return 0;
    }
涓鏃﹁繖浜涘垵濮嬫楠ら兘瀹屾垚浜? 浣犲氨鍙互鍦ㄤ綘鐨勭▼搴忎腑鍔犲叆榪欎釜瀵硅瘽妗? 璇曠潃緙栬瘧榪欎釜鎸囧崡騫朵笌鏇存敼璁劇疆鐨勯潰鏉胯繘琛屼氦浜掓潵瑙傚療瀹冪殑鏁堟灉. 鐪熸鐨凞3DDevice 鎴栦氦鎹㈤摼鐨勯噸鏋勫湪DXUT鍐呴儴瀹屾垚.
鏂囨湰娓叉煋
涓涓▼搴忎笉浼?xì)鏈壄懀濡傛灉鐢ㄦ埛涓嶇煡閬擈q蹭粈涔? 鎵浠ュ氨DXUT鍖呭惈浜嗕竴涓伐鍏風(fēng)被鐢ㄤ簬鍦ㄥ睆騫曚笂緇樺埗2D 鏂囨湰, 鐢ㄦ潵緇欑敤鎴峰弽棣? 榪欎釜綾? CDXUTD3D10TextHelper, 鍏佽浣犲湪灞忓箷鐨勪換鎰忎綅緗粯鍒朵竴琛岃鐨勬枃鏈? 騫舵湁綆鍗曠殑瀛楃涓茶緭鍏? 寮濮嬩箣鍓? 鎴戜滑瑕佸疄渚嬪寲榪欎釜綾? 鏃㈢劧鏂囨湰娓叉煋涓庡ぇ澶氭暟鍒濆鍖栬繃紼嬬嫭绔? 鍦ㄨ繖涓寚鍗楅噷鎴戜滑璁╁ぇ閮ㄥ垎浠g爜鍦≧enderText10閲?
    CDXUTD3D10TextHelper txtHelper( g_pFont, g_pSprite, 15 );
鍒濆鍖?br>鎴戜滑浼犲叆鐨勭涓涓弬鏁版槸鎴戜滑瑕佺粯鍒剁殑瀛椾綋. 瀛椾綋鐨勭被鍨嬫槸D3DX鎻愪緵鐨処D3DXFont. 瑕佸垵濮嬪寲榪欎釜瀛椾綋, 浣犺皟鐢―3DX10CreateFont, 騫朵笖浣犺浼犲叆璁懼, 楂樺害, 瀹藉害, 閲嶉噺, mip灞傛 (涓鑸彇 1), 鏂滀綋, 瀛楃闆? 綺懼害, 璐ㄩ噺, 鍊炬枩搴﹀拰瀹舵棌, 瀛椾綋鍚嶇О, 榪樻湁浣犵殑瀵硅薄鐨勬寚閽? 铏界劧瀹冪湅璧鋒潵鍍忓緢澶氬瓧絎? 鍙湁寮濮嬬殑4涓拰鏈鍚庣殑2涓湡姝f湁鎰忎箟.
    V_RETURN( D3DX10CreateFont( pd3dDevice, 15, 0, FW_BOLD, 1, FALSE, DEFAULT_CHARSET,
                                OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE,
                                L"Arial", &g_pFont ) );
絎?涓弬鏁伴渶瑕佹垜浠垵濮嬪寲涓涓狪D3DXSprite 綾? 瑕佸仛榪欎釜鐨勮瘽, 鎴戜滑鍙互璋冪敤 D3DX10CreateSprite (notice the trend here?). 榪欎釜鍑芥暟鍙渶瑕佽澶囧拰瀵硅薄鐨勬寚閽堝仛涓哄弬鏁?
    // Initialize the sprite
    V_RETURN( D3DX10CreateSprite( pd3dDevice, &g_pSprite ) );
褰撶劧, 鍍忓叾瀹冨璞′竴鏍? 瀛椾綋鍜岀簿鐏靛湪鎴戜滑瀹屾垚鏃跺繀欏昏閿姣? 榪欏彲浠ョ敤甯歌鐨?SAFE_RELEASE 瀹忓畬鎴?
    SAFE_RELEASE( g_pFont );
    SAFE_RELEASE( g_pSprite );
娓叉煋
鍦ㄨ繖涓ず渚嬮噷鍖呭惈鐨勬枃鏈噷鏈夋覆鏌撶殑緇熻淇℃伅. 鍙﹀, 榪樻湁涓涓尯鍩熸樉紺烘庢牱鐢ㄩ紶鏍囨搷浣滄ā鍨?
娓叉煋蹇呴』鍦∣nD3D10FrameRender閲岃皟鐢? 鑰屼笖鍦ㄨ繖涓寚鍗楅噷, 瀹冩槸鍦ㄥ撫娓叉煋璋冪敤閲岃皟鐢≧enderText10鏉ュ畬鎴愮殑.
絎竴涓尯鍩熶竴鐩村湪緇樺埗, 鍥犳, 瀹冩渶鍏堝畬鎴? 絎竴涓枃鏈覆鏌撹皟鐢ㄦ槸Begin(). 瀹冮氱煡寮曟搸鎴戣寮濮嬭緭鍑烘枃鏈埌灞忓箷. 鍦ㄩ偅涔嬪悗, 鎴戜滑璁劇疆濂?#8220;鎸囬拡”鐨勪綅緗? 鏂囨湰鐨勯鑹? 鎴戜滑灝卞噯澶囩粯鍒朵簡.
杈撳嚭涓涓瓧絎︿覆鏂囨湰瑕佽皟鐢―rawTextLine鏉ュ畬鎴? 浣犱紶鍏ュ瓧絎︿覆, 瀹冨氨浼?xì)鍦ㄥ綋鍓嶄綅缃緭鍑? 瀹冨湪鏂囨湰涔﹀啓鐨勫悓鏃跺鍔犳寚閽? 鍥犳, 濡傛灉q鍖呭惈浜嗕竴涓猏n, 瀹冧細(xì)鑷姩縐誨姩鎸囬拡鍒頒笅涓琛?
    // Output statistics
    txtHelper.Begin();
    txtHelper.SetInsertionPos( 2, 0 );
    txtHelper.SetForegroundColor( D3DXCOLOR( 1.0f, 1.0f, 0.0f, 1.0f ) );
    txtHelper.DrawTextLine( DXUTGetFrameStats() );
    txtHelper.DrawTextLine( DXUTGetDeviceStats() );
榪樻湁鍙︿竴涓柟娉曟潵杈撳嚭鏂囨湰, 灝卞ソ浼奸氬父浣跨敤鐨刾rintf. 浣犵敤鐗規(guī)畩鐨勫瓧絎︽潵鏍煎紡鍖栧瓧絎︿覆, 鐒跺悗鎻掑叆鍙橀噺鍒板瓧絎︿覆閲? 榪欓氳繃DrawFormattedTextLine鏉ュ疄鐜?
    txtHelper.SetForegroundColor( D3DXCOLOR( 1.0f, 1.0f, 1.0f, 1.0f ) );
    txtHelper.DrawFormattedTextLine( L"fTime: %0.1f  sin(fTime): %0.4f", fTime, sin(fTime) );
鏃㈢劧甯姪緇樺埗鐢ㄤ竴縐嶇浉浼肩殑鏂瑰紡, 鎵浠ヤ笉闇瑕佹兜鐩栭偅閮ㄥ垎浠g爜浜? 涓瀹氳娉ㄦ剰浣犺兘鍦ㄤ換浣曟椂鍊欓氳繃璋冪敤SetInsertionPos鏉ラ噸鏂拌緗寚閽堢殑浣嶇疆.
鏈鍚? 褰撲綘瀵規(guī)枃鏈緭鍑烘弧鎰忓悗, 璋冪敤 End() 鏉ラ氱煡寮曟搸浣犲畬鎴愪簡.
Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center
© 2005 Microsoft Corporation. All rights reserved.


灝忕帇 2009-01-02 03:36 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              亚洲黄色性网站| 欧美日韩精品在线视频| 欧美精品一区二区三| 亚洲国产一区二区精品专区| 久久综合精品国产一区二区三区| 欧美主播一区二区三区| 国产一区二区精品在线观看| 久久综合色8888| 猛男gaygay欧美视频| 99成人在线| 亚洲一区二区视频| 国一区二区在线观看| 欧美国产精品一区| 欧美人妖在线观看| 欧美影院在线播放| 免费不卡中文字幕视频| 夜夜爽夜夜爽精品视频| 亚洲欧美在线网| 亚洲国语精品自产拍在线观看| 亚洲人成亚洲人成在线观看| 欧美午夜视频在线| 久久影院亚洲| 欧美日韩综合久久| 老司机一区二区三区| 欧美国产一区在线| 欧美在线视频不卡| 欧美粗暴jizz性欧美20| 欧美一区二区在线看| 看片网站欧美日韩| 欧美一区午夜精品| 欧美福利视频一区| 久久久久久噜噜噜久久久精品| 欧美激情精品久久久久久大尺度 | 黄色欧美日韩| 亚洲理论电影网| 伊人久久综合97精品| 日韩小视频在线观看专区| 韩国女主播一区二区三区| 亚洲精品美女| 亚洲第一精品福利| 欧美亚洲尤物久久| 一区二区三欧美| 免费观看30秒视频久久| 欧美在线视频观看免费网站| 欧美黑人国产人伦爽爽爽| 久久精品中文字幕一区二区三区 | 亚洲资源av| 亚洲图片自拍偷拍| 欧美高清在线一区二区| 久久亚洲精品一区| 国产日韩欧美在线一区| 亚洲淫片在线视频| 亚洲网站在线| 欧美日韩天堂| 亚洲精品免费在线播放| 亚洲精品午夜精品| 免费看黄裸体一级大秀欧美| 免费久久99精品国产自| 亚洲黄色在线| 国产有码在线一区二区视频| 欧美第十八页| 国产精品高潮在线| 欧美一区二区在线免费观看| 欧美激情精品久久久久久免费印度| 久久噜噜亚洲综合| 黄色亚洲在线| 久久夜色精品国产亚洲aⅴ| 久久躁狠狠躁夜夜爽| 国产一区91| 久久久久久国产精品mv| 久久在线视频| 亚洲精品国产精品久久清纯直播| 久久在线免费观看视频| 欧美本精品男人aⅴ天堂| 亚洲国产cao| 欧美丰满少妇xxxbbb| 亚洲精品人人| 亚洲性视频h| 国产精品区免费视频| 午夜一区二区三区在线观看| 久久精品国产99国产精品澳门| 国产亚洲女人久久久久毛片| 久久久久久久成人| 亚洲国产成人精品久久久国产成人一区 | 99国产精品久久久久老师 | 欧美一激情一区二区三区| 久久国产精品72免费观看| 国内成人自拍视频| 蜜臀av性久久久久蜜臀aⅴ| 亚洲黄色尤物视频| 亚洲欧美中文字幕| 伊人精品成人久久综合软件| 麻豆freexxxx性91精品| 99热精品在线| 久久人人97超碰精品888| 亚洲欧洲日产国产网站| 欧美亚州在线观看| 久久黄色网页| 亚洲精品久久久久久一区二区| 亚洲自拍偷拍一区| 精品9999| 国产精品美女久久久久av超清| 久久国产视频网| 亚洲毛片av在线| 久久精品五月婷婷| 亚洲精品美女在线观看| 国产精品hd| 美女免费视频一区| 亚洲淫片在线视频| 亚洲欧洲在线观看| 老色鬼久久亚洲一区二区 | 亚洲大胆在线| 国产精品五月天| 欧美激情无毛| 久久久久久久欧美精品| 亚洲视频在线观看一区| 亚洲成人在线视频播放 | 狠狠色伊人亚洲综合网站色| 欧美日韩在线大尺度| 美女尤物久久精品| 午夜精品美女久久久久av福利| 亚洲国产免费| 免费在线观看一区二区| 欧美日韩一区二区三区免费| 亚洲精品午夜精品| 麻豆9191精品国产| 久久精品国产欧美激情| 99精品福利视频| 最新国产乱人伦偷精品免费网站 | 欧美欧美全黄| 欧美国产在线观看| 欧美11—12娇小xxxx| 久久久久久婷| 久久精品视频在线看| 欧美一区影院| 午夜精品久久久久久久蜜桃app| 亚洲最新在线| 一级日韩一区在线观看| 亚洲精品美女91| 亚洲激情第一页| 亚洲黄网站在线观看| 亚洲丶国产丶欧美一区二区三区| 久热这里只精品99re8久| 久久精品国产清自在天天线| 欧美一区二区三区久久精品| 午夜精品国产| 欧美一区日本一区韩国一区| 午夜日韩av| 久久爱另类一区二区小说| 欧美中文字幕在线播放| 久久精品国产96久久久香蕉| 久久精品国产久精国产思思| 久久精品视频播放| 久久久久欧美| 欧美好骚综合网| 亚洲三级色网| 国产精品99久久久久久久女警| 一本高清dvd不卡在线观看| 一区二区三区久久久| 亚洲欧美精品suv| 久久精品中文字幕一区| 蜜桃久久av| 欧美日韩免费一区二区三区视频| 欧美日韩免费观看一区二区三区| 国产精品美女久久久久久2018| 国产一区二区三区日韩欧美| 精品成人免费| 一区二区日韩欧美| 欧美中文字幕在线| 欧美激情a∨在线视频播放| 亚洲伦理在线观看| 欧美在线电影| 欧美—级高清免费播放| 国产精品美女午夜av| 亚洲第一精品福利| 中日韩高清电影网| 久久久91精品国产一区二区精品| 欧美黄色大片网站| 在线一区观看| 久久香蕉国产线看观看网| 欧美日韩在线观看一区二区三区| 国产精品一区二区久久| 亚洲黄色av| 久久爱www久久做| 亚洲精品国产拍免费91在线| 午夜在线一区二区| 欧美精品乱码久久久久久按摩| 国产日韩欧美一二三区| 91久久一区二区| 久久大综合网| 夜夜狂射影院欧美极品| 久久久免费精品视频| 国产精品久久网| 亚洲精品乱码久久久久久按摩观| 香蕉精品999视频一区二区 | 美女性感视频久久久| 亚洲欧美国产日韩天堂区| 欧美激情欧美狂野欧美精品| 国产亚洲第一区| 亚洲欧美在线播放|