锘??xml version="1.0" encoding="utf-8" standalone="yes"?>一本大道久久东京热无码AV,久久综合九色综合久99,久久久久亚洲AV无码去区首http://m.shnenglu.com/winmain/category/12309.htmlProgramming is so coolzh-cnThu, 25 Feb 2010 20:40:38 GMTThu, 25 Feb 2010 20:40:38 GMT60[杞琞OGRE鏂版彃浠禤agedGeometry(嫻烽噺鍦烘櫙鍒嗛〉璋冨害)http://m.shnenglu.com/winmain/archive/2010/02/24/108371.htmlCode KnightCode KnightWed, 24 Feb 2010 13:31:00 GMThttp://m.shnenglu.com/winmain/archive/2010/02/24/108371.htmlhttp://m.shnenglu.com/winmain/comments/108371.htmlhttp://m.shnenglu.com/winmain/archive/2010/02/24/108371.html#Feedback0http://m.shnenglu.com/winmain/comments/commentRss/108371.htmlhttp://m.shnenglu.com/winmain/services/trackbacks/108371.html
1,浠嬬粛錛?/span>
         

 PagedGeometry鏄?/span>OGRE寮曟搸鐨勪竴涓彃浠訛紝瀹冨錛堟棤絀鳳級澶у尯鍩熺殑嫻烽噺緗戞牸鐨勬覆鏌撴彁渚涗紭鍖栫瓥鐣ャ傚畠闈炲父閫傚悎浜庣瀵嗙殑媯灄鍜屽澶栧満鏅紝閭i噷鏈夋搗閲忕殑鏍戯紝鑽夛紝宀╃煶錛岀亴鏈ㄤ笡絳夊満鏅璞°?/span>

 

2, PagedGeometry綆$悊

PagedGeometry class

 

      璇ョ被璐熻矗鍔犺澆閭d簺闇瑕佺珛鍗籌紙鎴栧緢蹇級鍙鐨勫満鏅嚑浣曪紝鑰屼笉鍔犺澆鍏朵粬鐨勫満鏅互鑺傜害鍐呭瓨絀洪棿銆?/span>PagedGeometry寮曟搸鍙互閫氳繃璇稿闈欐佸嚑浣曪紝imposters絳夋柟娉曞幓鏄劇ず瀹炰綋瀵硅薄錛?/span>Entities錛夈傝繖浜涙柟娉曟槸涓庡疄浣撳拰鍦烘櫙鐩告満鐨勮窛紱伙紝浠ュ強浣犵殑閰嶇疆鐩稿叧鐨勩?/span>

      瀵歸〉闈㈢殑鍔犺澆鏄氳繃鐢ㄦ埛瀹氫箟鐨?/span>PageLoader鏉ュ畬鎴愮殑銆傝繖鏍鳳紝鐢ㄦ埛鍙互緙栫▼瀹炵幇鍔犺澆欏甸潰錛屾棤璁哄畠鏄潵鑷‖鐩樹笂鐨勬枃浠訛紝紼嬪簭浜х敓鐨勬垨鏄叾浠栧湴鏂廣?/span>

 

     GeometryPageManager

     鍦?/span>PagedGeometry綾諱腑浣跨敤錛岀敤浜庣鐞嗗垎欏甸〉闈紝鍦ㄩ渶瑕佺殑鏃跺欏仛cacheing, deleting絳夊伐浣溿傚畠閫氳繃鍒嗘瀽鎽勫儚鏈鴻窛紱誨幓璁$畻欏甸潰cathe鐨勯熷害錛屽茍delete閭d簺宸茬粡緇忚繃浜嗚瀹氭椂闂寸殑涓嶅彲瑙侀〉闈€?/span>

璋冪敤PagedGeometry::addDetailLevel(), 鍒涘緩 GeometryPageManager 銆?/span>

addDetailLevel() returns a pointer to this page manager, allowing you access to some useful functions, documented below.

綾繪垚鍛樺嚱鏁頒腑鏈変簺娉ㄩ噴浜?/span>DO NOT USE鐨勶紝涓嶈兘琚敤鎴蜂嬌鐢紝瀹冧滑鏄湪PagedGeometry涓浣跨敤鐨勩?/span>

addDetailLevel()

Adds a detail level to the PagedGeometry object.

PageType 瀵硅detail level錛岀敤鎴鋒兂浣跨敤鐨勯〉闈㈢被鍨嬨傚畠涓嶆槸涓涓嚱鏁板弬鏁幫紝鑰屾槸涓涓ā鏉垮弬鏁般?/span>

 maxRange 榪欎釜detail level浣跨敤鐨勬渶澶ц窛紱伙紙鎽勫儚鏈虹殑瑙嗚窛錛?/span>

transitionLength 鏈熸湜鐨勮“鍑忚漿鍙橀暱搴?/span> - 錛堝彲閫夛級

紺轟緥錛?/font>

    pagedTrees->addDetailLevel<BatchPage>(100); //Use batched geometry from 0-100

    pagedTrees->addDetailLevel<ImpostorPage>(500); //Use impostors from 100-500

鍚嶅彨pagedTrees鐨?/span>PagedGeometry 鐨勫璞′細鍦?/span>0錛?/span>100鍗曚綅鎽勫儚鏈鴻窛紱葷殑鑼冨洿鍐呬嬌鐢?/span>batched錛堝垎鎵瑰嚑浣曪紝闈欐佸嚑浣曪級錛?/span>100錛?/span>500鍗曚綅璺濈鑼冨洿鍐呬嬌鐢?/span>imposters

濡傛灉宸叉湁鐨勯〉闈㈢被鍨嬩笉鍚堥傦紝鐢ㄦ埛鍙互寰堣交鏉劇殑娣誨姞鑷畾涔夌殑GeometryPage瀛愮被

transitionLength 鍙傛暟鍦ㄩ粯璁ゆ儏鍐典笅鏄病鏈夌殑錛屼絾鏄敤鎴峰彲浠ヨ嚜宸辨坊鍔狅紝瀹冪殑浣滅敤鏄嬌緇嗚妭灞傛杞彉鏇村鉤婊戙備絾鏄敞鎰忥紝浣跨敤鍙傛暟鍙兘浼氭槸娓叉煋鐨勬晥鐜囦笅闄?/span>10錛咃紞30錛呫?/span>

3,欏甸潰綾誨瀷

Class GeometryPage

濡備笂鎵璇達紝璇ョ被鏄竴涓櫄鍩虹被錛岀敤鎴峰彲浠ユ墿灞曠戶鎵胯綾誨幓瀹炵幇涓嶅悓鐨勬浛浠h娓叉煋瀹炰綋鐨勬柟寮忥紝濡?/span>batched錛?/span>imposters絳夈傚鏋滀綘闇瑕佸叾浠栫殑欏甸潰綾誨瀷錛屼綘鍙互鑷繁瀹炵幇涓浜涖?/span>

浠ヤ笅鏄敤鎴峰繀欏誨湪瀛愮被涓疄鐜扮殑铏氬嚱鏁幫細

virtual void init(SceneManager *mgr, Camera *cam) = 0;

virtual void setRegion(Real left, Real top, Real right, Real bottom) = 0;

virtual void addEntity(Entity *ent, const Vector3 &position, const Quaternion &rotation, const Vector3 &scale, const Ogre::ColourValue &color) = 0;

virtual void build() {}

virtual void removeEntities() = 0;

virtual void setVisible(bool visible) = 0;

virtual void setFade(bool enabled, Real visibleDist, Real invisibleDist) = 0;

virtual void update() {}

浠ヤ笅鏄〉闈㈢鐞嗗櫒錛?/span>page manager錛夊浣曞幓浣跨敤涓婇潰鐨勫嚱鏁幫細

1錛屽綋PagedGeometry棣栧厛create涓涓?/span>GeometryPage錛岄┈涓婅皟鐢ㄥ畠鐨?/span>init錛堬級錛岃鍑芥暟灝卞ソ鍍忔瀯閫犲嚱鏁頒竴鏍楓?/span>

2錛屽噯澶囦竴涓嚑浣曢〉闈㈢粰寰呮覆鏌撳疄浣擄紝璁劇疆欏甸潰鍖哄煙銆?/span>

3錛屾坊鍔犲疄浣撳璞″埌璇ラ〉闈紝騫跺垵濮嬪寲浣嶇疆錛屾柟鍚戠瓑銆?/span>

4錛屾坊鍔犲疄浣撳埌鍦烘櫙涓殑鏈鍚庝竴姝ャ傚湪娣誨姞瀹屾墍鏈夊疄浣撳璞″悗鑷姩璋冪敤銆?/span>

5錛屼粠欏甸潰瀹屽叏鍒犻櫎瀹炰綋瀵硅薄銆?/span>

6錛屼嬌鏁翠釜欏甸潰鍙樹負鍙銆?/span>

7錛岃緗〉闈㈢殑娑堝噺灞炴с?/span>

8錛屽湪甯у驚鐜腑淇濊瘉欏甸潰鍑犱綍鐨勬洿鏂般?/span>

class BatchPage

The BatchPage class鎶婂疄浣撳綋浣滈潤鎬佸嚑浣曚綋鏉ユ覆鏌撱?/span>

 

闈欐佸嚑浣曚綋錛?/span>StaticGeometry錛夛細鍦ㄥ満鏅腑鏈夎澶氬疄浣撴槸浠庡畠浠姞鍏ュ満鏅紑濮嬪氨涓嶄細縐誨姩鐨勶紝濡傛埧灞嬶紝鏍戠瓑錛?/span>Ogre涓鴻繖縐嶆儏鍐墊彁渚涗簡StaticGeometry綾?/span>,瀹冨厑璁鎬綘鎵規覆鏌?/strong>寰堝鐗╀綋.榪欎釜閫氬父瑕佹瘮鎵嬪姩鍦?/span>SceneNodes娣誨姞瑕佸揩澶氫簡銆?/span>

 

class ImposterPage

the ImpostorPage class.鎶婂疄浣撳綋浣?/span>impostors錛堜竴縐嶅竷鍛婄増鍥懼儚錛岀湅璧鋒潵鍍忕湡瀹炵殑瀹炰綋錛夋潵娓叉煋

鎵鏈?/span>page綾誨瀷涓紝榪欎釜鏄渶蹇殑錛屽畠浣跨敤Impostors鍘諱唬鏇胯娓叉煋鐨?/span>entities錛岃繖鏍鳳紝鏄懼崱鍙鍘繪覆鏌撲竴緋誨垪鐨?/span>2d image錛岃屼笉鏄?/span>3d mesh

 

 

class GrassPage

A custom page type designed specifically for use with GrassLoader.

GrassPage欏甸潰綾誨瀷鏄璁捐鏉ラ厤鍚?/span>GrassLoader浣跨敤鐨?/span>

榪欑綾誨瀷鏄病鏈夊仛榪囦紭鍖栫殑錛屽畠鍙槸瀵規墍緇欑殑entity榪涜鍏嬮殕錛岀劧鍚庣粦瀹氬埌涓涓柊鐨勫満鏅妭鐐逛箣涓娿傝繖鎰忓懗鐫鎬ц兘寰堝樊銆?/span>

4錛?/span>BatchedGeometry錛嶄竴縐嶉潤鎬佸嚑浣曠殑鐗堟湰

class BatchedGeometry

瀹冩槸Ogre::StaticGeometry鐨勪竴涓交閲忕駭鐗堟湰銆?/span>

staticGeometry鏄?/span>ogre鎻愪緵緇欑敤鎴風殑鎵規覆鏌撶殑綾伙紝瀹冨彲浠ヤ竴嬈℃ф覆鏌撻偅浜涘湪鍦烘櫙涓繚鎸?#8220;闈欐佺殑”瀹炰綋錛?/span>entities錛夛紝濡傦紝鎴垮眿錛屾爲絳夈?/span>

瀹冪粰鐢ㄦ埛鎻愪緵澶氫竴浜涚殑瀵?/span>batch鏉愯川絳夌殑鎺у埗銆?/span>

class SubBatch: public Ogre::Renderable

subBatch緇ф壙浜?/span>Renderable錛屾槸BatchedGeometry鐨勫唴閮ㄧ被錛屽畠鐨勬瀯閫犲嚱鏁頒腑浼犲叆BatchedGeometry鎸囬拡鍜?/span>submesh鐨勬寚閽堬紝璇ョ被鍖呭惈鍦?/span>BatchedGeometry涓?/span>

5錛?/span>Loading Entities

class PageLoader

铏氬熀綾匯傜敤鎴峰彲浠ユ墿灞曞畠鍘繪彁渚涜礋璐e姞杞介〉闈紙Page錛夌殑鍥炶皟鍑芥暟銆?/span>

PagedGeometry棰勮浜嗗嚑縐嶄笉鍚岀殑Loader錛岀戶鎵夸簬PageLoader錛岃窡寰堝瀹炰綋綆$悊鍣ㄤ笉鍚岀殑鏄紝PagedGeometry涓嶅厑璁哥敤鎴蜂竴嬈℃у悜object娣誨姞鎵鏈夌殑entities錛岀敱浜庡畠鏄敤浜庡ぇ瑙勬ā鐨勬父鎴忓満鏅紝鎵浠ュ畠浼氬涓栫晫鍑犱綍榪涜鍒嗛〉錛岀劧鍚庤皟搴︼紝鍙姞杞介渶瑕佺粯鍒剁殑欏甸潰銆?/span>

鍙寮曟搸闇瑕佺‘瀹氫笘鐣屽嚑浣曠殑閭d竴鍧楀尯鍩熼渶瑕佽鍔犺澆錛屽氨瑕佽皟鐢?/span>PageLoader鐨勬垚鍛?/span>loadPage()銆傚湪鍑芥暟涓殑PageInfo緇撴瀯浣擄紝鎻愪緵浜嗛〉闈㈢殑鍖呭洿浣撲俊鎭傚湪鍑芥暟涓紝鐢ㄦ埛閫氳繃

addEntity錛堬級鏉ユ坊鍔犲疄浣撳埌璇ラ〉闈腑錛岃繕鍙互瀹氫箟瀹炰綋鐨勫昂搴︼紝浣嶇疆錛屾棆杞瓑灞炴с?/span>

褰撶敤鎴峰垱寤轟簡鑷繁鐨?/span>loader瀵硅薄鍚庯紝蹇呴』灝嗗叾attatch鍒?/span>PagedGeometry瀵硅薄涓婂幓銆傚涓嬶細

pagedGeometry->setPageLoader(yourPageLoader);

 

PageInfo: 緇撴瀯浣撱傛彁渚涚粰PageLoader鐨勬湁鐢ㄧ殑欏甸潰淇℃伅銆傚熀鏈殑淇℃伅鏄畾涔夎鍔犺澆鐨勫尯鍩燂紝榪樻湁涓浜涜鍖哄煙鐨勫叾浠栦俊鎭?/span>

緇撴瀯浣撳唴鍖呭惈浜嗕竴涓?/span>TBound錛?/span>typedef Ogre::TRect<Ogre::Real> TBounds錛夛紝鎵鏈夊湪璇ラ〉闈㈠唴鐨勫疄浣撻兘蹇呴』鏀劇疆鍦ㄨ繖涓煩褰㈠寘鍥翠綋涔嬩腑銆?/span>

鍏蜂綋鐨?/span>loaders錛?/span>

錛?/span>1錛?/span>GrassLoader 緇ф壙浜?/span>PageLoader錛岀敤浜庡拰PagedGeometry涓璧蜂駭鐢熺湡瀹炵殑鑽夊湴鍦烘櫙銆傛墍璋撶湡瀹炵殑鑽夊湴妯℃嫙錛屼嬌鐢?/span>GrassLoader鎴愬憳鍑芥暟addLayer錛堬級鏉ユ坊鍔犺崏錛屼嬌鐢?/span>updateAnimation()鏉ラ┍鍔ㄥ姩鐢匯?/span>

     褰撶敤鎴峰垱寤轟簡Grassloader瀵硅薄鍚庯紝蹇呴』灝嗗叾attatch鍒?/span>PagedGeometry瀵硅薄涓婂幓銆傚涓嬶細

pagedGeometry->setPageLoader(GrassLoader);

     鑽夊湴loader鍦ㄤ嬌鐢ㄥ嚑浣曢〉闈㈢被鍨嬬殑鏃跺欙紝琚帹鑽愪負浣跨敤GrassPage錛岃繖鏍風殑娓叉煋鏁堢巼杈冮珮錛岃岄噰鐢ㄥ叾浠栫被鍨嬪垯鏁堢巼寰堜綆銆?/span>

     鍚屾椂鎻愪緵浜嗕竴涓暟鎹粨鏋勬潵瀹屽叏鎺у埗Grass鐨勫睘鎬?/span> class GrassLayer錛屽畠鏄氳繃addLayer錛堬級鏉ユ坊鍔犵殑錛岃綾繪彁渚涗簡涓緋誨垪鐨?#8220;set”鏂規硶錛岀敤浜庣敤鎴烽厤緗崏鍦扮殑鏉愯川錛屽瘑搴︼紝澶у皬絳夊睘鎬т俊鎭?/span>

 

錛?/span>2錛?/span>TreeLoader2D緇ф壙浜?/span>PageLoader錛岀敤浜庡拰PagedGeometry涓璧瘋交鏄撶殑瀹炵幇鍦ㄥ湴褰笂鏀劇疆鏍戞湪鐨勫姛鑳姐?/span>

     浣跨敤鏂規硶鍜屽墠榪頒竴鑷達紝浣跨敤鏃訛紝addTrees錛堬級鏂規硶鍚戝満鏅腑娣誨姞鏍戞湪銆傞渶瑕佹敞鎰忕殑鏄紝loader鍔犺澆鏍戞湪鏃跺茍涓嶇煡閬撹鍦板艦鐨勯珮搴︼紝鑰屾槸鍋囪楂樺害涓?/span>0錛岃繖灝遍渶瑕佽瀹氳幏寰楀綋鍓嶏紙鍗崇粰瀹?/span>x錛?/span>z鍊兼椂錛夌殑鍦板艦楂樺害銆?/span>Loader鎻愪緵浜嗚繖浜涙柟娉曘?/span>

 

錛?/span>3錛?/span>TreeLoader3D鍚?/span>2D鐨勬儏鍐靛樊涓嶅錛屽彧鏄晥鐜囧ぇ姒備綆40錛呭乏鍙熾?/span>TreeLoader3D灝嗘爲鍦ㄥ唴瀛樹腑鎵撳寘鐨勬晥鐜囧緢楂橈紝澶х害10Bytes涓媯墊爲錛岀浉褰撲簬100涓囨5鏍戝彧瑕?/span>9.53m鍐呭瓨絀洪棿銆傝繖灝卞緢閫傜敤浜庡ぇ瑙勬ā媯灄鐨勬覆鏌撱?/span>

     寮曟搸涓?/span>2D錛?/span>3Dloader鎻愪緵浜嗕竴浜涘叕鐢ㄧ殑宸ュ叿綾伙紝濡?/span>class TreeRef錛屼互鍐呰仈鍑芥暟鐨勬ц川涓?/span>loader鎻愪緵浜嗕綅緗紝鏃嬭漿錛屽昂瀵革紝鏂瑰悜絳夌殑“get”鏁板榪愮畻銆傝?/span>TreeIterator2D錛?span>TreeIterator3D鍒欎負loader鎻愪緵浜嗘爲鎸囬拡鐨勬搷浣溿?/span>



]]>
[杞琞 OGRE鍦板艦閰嶇疆鏂囦歡瑙f瀽http://m.shnenglu.com/winmain/archive/2010/02/24/108369.htmlCode KnightCode KnightWed, 24 Feb 2010 13:30:00 GMThttp://m.shnenglu.com/winmain/archive/2010/02/24/108369.htmlhttp://m.shnenglu.com/winmain/comments/108369.htmlhttp://m.shnenglu.com/winmain/archive/2010/02/24/108369.html#Feedback0http://m.shnenglu.com/winmain/comments/commentRss/108369.htmlhttp://m.shnenglu.com/winmain/services/trackbacks/108369.htmlOGRE閫氳繃閰嶇疆鏂囦歡鐢熸垚鍦板艦錛屾瀬澶ф彁楂樹簡鍦板艦鐢熸垚鐨勭伒媧繪с備笅闈㈠鍦板艦閰嶇疆鏂囦歡(terrain.cfg)鍚勯厤緗」鐨勬剰涔夎繘琛岀畝瑕佸垎鏋愩?/p>

WorldTexture=terrain_texture.jpg  //鍦板艦綰圭悊
DetailTexture=terrain_detail.jpg  //鍦板艦緇嗚妭綰圭悊(鐩告満璺濈鍦伴潰寰堣繎鏃墮噰鐢ㄧ粏鑺傜汗鐞?
DetailTile=3                      //緇嗚妭綰圭悊鍦ㄤ竴涓湴褰㈠皬鍧椾腑鐨勫鉤閾烘暟
PageSource=Heightmap              //楂樺害鍥炬暟鎹簮
Heightmap.image=terrain.png       //楂樺害鍥懼悕縐?鐏板害鍥炬枃浠跺悕),絎﹀悎2^n+1
PageSize=513                      //楂樺害鍥懼ぇ灝?br>TileSize=65                       //鍦板艦灝忓潡澶у皬
MaxPixelError=3                   //鍐沖畾浣跨敤灞傛緇嗚妭鏃跺厖璁歌宸?br>PageWorldX=1500                   //鍦板艦鍦ㄤ笘鐣屼腑鐨勮寖鍥磝鏂瑰悜
PageWorldZ=1500                   //z鏂瑰悜
MaxHeight=100                     //涓栫晫涓湴褰㈡渶澶ф槧灝勯珮搴?br>MaxMipMapLevel=5                  //灞傛緇嗚妭涓婇檺
#VertexNormals=yes                //鍦ㄧ紦鍐蹭腑璁$畻欏剁偣娉曠嚎錛岃綆楁満鍏夌収鎴朑PU紼嬪簭鐢ㄥ埌鏃舵墦寮
#VertexColors=yes銆銆銆銆銆銆銆銆 //鍦ㄧ紦鍐蹭腑璁劇疆欏剁偣棰滆壊錛屽亣濡傛湁GPU紼嬪簭闇瑕佹椂鎵撳紑
#UseTriStrips=yes                 //瀵逛簬鐜板湪鐨勭‖浠訛紝寤鴻鍏蟲帀
VertexProgramMorph=yes銆銆銆      //浣跨敤欏剁偣紼嬪簭榪涜LOD铻嶅悎澶勭悊
LODMorphStart=0.2                 //LOD铻嶅悎寮濮嬬偣錛氶珮錛屼綆LOD涔嬮棿璺濈涔嬫瘮

涓嬪垪鍙傛暟鐢ㄤ簬鎻愪緵鑷繁鐨勭潃鑹茬▼搴忔椂浣跨敤錛岃繖浼氭彁渚涜嚜宸卞畾涔夌殑material錛岄偅涔堝厛鍓嶅畾涔夌殑
WorldTexture 涓?DetailTexture鐨勮緗笉鍐嶇敤鍒般?/p>

MorphLODFactorParamName=morphFactor銆
//鍋囪VertexProgramMorph琚涓簓es,瀹氬埗鐨刴aterial涓寘鎷竴涓珮綰ч《鐐圭▼搴忋傚畠鎸囧畾浜嗕竴涓《鐐?br>//紼嬪簭鐨勫弬鏁板悕錛岃繖涓弬鏁扮敤浜庤瀺鍚圠OD,鍙傛暟鍊間粠0錛?錛?琛ㄧず涓嶈皟鏁達紝1琛ㄧず瀹屽叏璋冩暣鍒頒笅涓綰OD
MorphLODFactorParamIndex         //鐢ㄤ簬materail涓寘鍚綆綰ч《鐐圭▼搴忕殑鎯呭喌錛屾剰涔夊悓涓?br>CustomMaterialName               //鎸囧畾鐨刴aterail鍚嶅瓧

涓婅堪閰嶇疆鏂囦歡瀹氫箟浜嗗熀浜庨珮搴﹀浘鐨勫湴褰€?/p>

榪欎簺鍙傛暟瀹氫箟鍙鎷負涓ょ被錛歄gre浣跨敤絎竴綾諱粠楂樺害鍥句駭鐢熷湴褰?br>mesh涓庢潗璐ㄣ?/p>

絎簩綾繪槸瀹氬埗鏉愯川涓嶨PU欏剁偣紼嬪簭錛岃繖鍙互浠f浛ogre鑷姩浜х敓鐨勭潃鑹茬▼搴忋?br>鍙﹀鐨勮鏄庯細
TerrainScenceManager浼氭妸楂樺害鍥懼垎涓哄涓猵age,姣忎釜page鐢卞嚑涓猼ile緇勬垚.瀹冧滑閮藉畾涔変簡鍦ㄤ駭鐢熺殑mesh涓竴緇勬瀯鎴愭鏂瑰艦鐨勯《鐐歸泦銆?br>WorldTexture瀹氫箟鐨勭汗鐞嗕笉蹇呬笌鐩爣鍦板艦涓鏍峰ぇ銆?br>PageWorldX錛孭ageWorldZ鍙互緙╂斁涓栫晫涓殑鍦板艦銆?br>MaxHeight 鍦╕鏂瑰悜緙╂斁鍦板艦銆?br>DetailTexture 鍙嬌鐢ㄤ竴涓汗鐞嗭紝濡備嬌鐢ㄥ灞傜汗鐞嗭紝搴旇浣跨敤鑷畾涔塵aterail銆?br>
浠庣▼搴忓姞杞藉湴褰?/span>
setWorldGeometry()鏈夐噸杞藉艦寮忥紝涓縐嶇敤浜庡姞杞介厤緗枃浠訛紝鍙︿竴縐嶆垜浠彲鍦ㄧ▼搴忎腑浣跨敤錛屼互
杈懼埌鎵嬪伐鍔犺澆鐨勫姛鑳姐傝繖閲岋紝SceneData琚?typedef 涓簊td:map,瀹冨瓨鍌ㄤ簡濡傛垜浠湪terrain.cfg
涓湅鍒伴偅浜涘煎銆傚亣璁炬垜浠凡緇忎粠鏌愪釜浜岃繘鍒舵枃浠惰鍏ユ垜浠兂瑕佺殑鍐呭鍒癝ceneData涓傛垜浠鍋?br>鐨勫氨鏄妸璇誨叆鐨勫唴瀹硅漿鎹㈡垚setWorldGeometry()闇瑕佺殑綾誨瀷銆?/p>

]]>
[杞琞OGRE鏍規嵁楂樺害鍥懼垱寤篢errain鍦板艦嫻佺▼鍒嗘瀽http://m.shnenglu.com/winmain/archive/2010/02/24/108370.htmlCode KnightCode KnightWed, 24 Feb 2010 13:30:00 GMThttp://m.shnenglu.com/winmain/archive/2010/02/24/108370.htmlhttp://m.shnenglu.com/winmain/comments/108370.htmlhttp://m.shnenglu.com/winmain/archive/2010/02/24/108370.html#Feedback0http://m.shnenglu.com/winmain/comments/commentRss/108370.htmlhttp://m.shnenglu.com/winmain/services/trackbacks/108370.htmlOGRE鍙互閫氳繃涓や釜鎺ュ彛鏉ョ敓鎴愬湴褰紝鍒嗗埆鏄痸oid TerrainSceneManager::setWorldGeometry( const String& filename )浠ュ強void TerrainSceneManager::setWorldGeometry(DataStreamPtr& stream, const String& typeName )錛屼袱鑰呯殑鏍規湰鍖哄埆灝辨槸涓涓槸浼犻掑湴褰俊鎭枃浠跺悕涓涓槸浼犻掑湴褰俊鎭暟鎹祦錛岃璁′袱涓帴鍙g殑鐩殑鏄彲浠ヨ鐢ㄦ埛浣跨敤鑷繁鐨勫湴褰俊鎭厤緗枃浠訛紝鑰屼笉蹇呭眬闄愪簬 OGRE瀹氫箟鐨勫湴褰俊鎭厤緗枃浠舵牸寮忋傚湪鍒嗘瀽嫻佺▼涔嬪墠錛屽厛璇存槑涓鐐癸紝涓轟簡鎻愰珮娓叉煋鎬ц兘浠ュ強鍦板艦鏌ユ壘鎬ц兘錛孫GRE鎶婃暣涓湴褰㈠垎鎴愯嫢騫蹭釜鍦板艦欏碉紝姣忎釜鍦板艦欏靛張鍒嗘垚浜嗗涓湴褰㈠皬鍧楋紝鍒版渶鍚庝細鎶婂湴褰㈤〉鍙婂湴褰㈠皬鍧梩ile鎸傛帴鍒板満鏅妭鐐逛笂銆備互涓嬫槸鐢熸垚鍦板艦鐨勪富瑕佹祦紼嬶細

涓錛氭竻闄ゅ湴褰㈠垎綰х儲寮曠紦鍐插強鍦板艦鍒嗛〉錛屾牴鎹湴褰俊鎭暟鎹祦鍔犺澆鍦板艦淇℃伅閰嶇疆鏂囦歡錛?/span>

void TerrainSceneManager::loadConfig(DataStreamPtr& stream)錛屽叾鍏堝皢鍦板艦閰嶇疆淇℃伅浠庢暟鎹祦涓愪竴璇誨嚭鍒癿ap涓紝鐒跺悗閫氳繃void TerrainSceneManager::selectPageSource(const String& typeName,  TerrainPageSourceOptionList& optionList)璁劇疆鍦板艦鏁版嵁婧?鐩墠鍙湁楂樺害鍥炬暟鎹簮)銆傚湪鍦板艦淇℃伅閰嶇疆鏂囦歡涓彲浠ラ厤緗涓湴褰㈡暟鎹簮錛岀劧鍚庢牴鎹竴縐嶆暟鎹簮綾誨瀷鐢熸垚鍦板艦錛屽弬鏁?typeName灝辯敤鏉ユ寚瀹氭暟鎹簮綾誨瀷錛岀洰鍓嶅氨鏄疕eightMap錛屾壘鍒版寚瀹氱殑鏁版嵁婧愬悗錛屽鎸囧畾鐨勬暟鎹簮榪涜鍒濆鍖栵紝

 void HeightmapTerrainPageSource::initialise(TerrainSceneManager* tsm,  ushort tileSize, ushort pageSize, bool asyncLoading, TerrainPageSourceOptionList& optionList)銆傚垵濮嬪寲鐨勮繃紼嬩富瑕佹槸璋冪敤void HeightmapTerrainPageSource::loadHeightmap(void)灝嗛珮搴﹀浘鐏板害鍥懼儚鏁版嵁鍔犺澆鍒板唴瀛樹腑錛屽鏋滄槸Raw鏁版嵁錛屽氨鍔犺澆鍒癿RawData涓紝鍚﹀垯鍔犺澆鍒癿Image涓傛暣涓姞杞借繃紼嬪叾瀹炲畬鎴愪簡涓ゅぇ宸ヤ綔錛岄鍏堝姞杞藉湴褰㈤厤緗俊鎭紝鐒跺悗鍔犺澆楂樺害鍥炬暟鎹?

浜岋細鍒濆鍖栧垎綰х儲寮曠紦鍐詫紝void TerrainSceneManager::initLevelIndexes()錛?

涓夛細void OctreeSceneManager::resize( const AxisAlignedBox &box )

鍥涳細璁劇疆鍦板艦鏉愯川錛寁oid TerrainSceneManager::setupTerrainMaterial(void)錛?

浜旓細璁劇疆鍦板艦鍒嗛〉錛?void TerrainSceneManager::setupTerrainPages(void)

棣栧厛鍒涘緩涓涓悕涓篢errain鐨勫満鏅牴鑺傜偣鐨勫瓙鑺傜偣

mTerrainRoot = getRootSceneNode() -> createChildSceneNode( "Terrain" );

鐒跺悗鍒濆鍖朤errainPage2D mTerrainPages錛?/span>

鏈鍚庤皟鐢?void HeightmapTerrainPageSource::requestPage(ushort x, ushort y)requestPage鍙敮鎸佷竴涓狿age錛岄鍏堝皢鍥懼儚鏁版嵁榪涜緙╂斁

鐒跺悗璋冪敤 “TerrainPageSource::firePageConstructed錛堬級”閫氱煡Listener錛涚劧鍚庤皟鐢?#8220;TerrainPage* TerrainPageSource::buildPage(Real*heightData, const MaterialPtr& pMaterial)”鍒涘緩涓涓柊鐨凾errainPage瀵硅薄銆?/span>

buildPage()鏄竴涓瘮杈冩牳蹇冪殑鍑芥暟銆傚畠棣栧厛鏋勯犱竴涓?TerrainPage瀵硅薄錛岀劧鍚庡垱寤轟竴涓敤浜庡綰寵TerrainPage瀵硅薄鐨勫満鏅妭鐐癸細“page->pageSceneNode = mSceneManager->createSceneNode(name);”錛岀劧鍚庢牴鎹鍦板艦鐨勫垎鍓詫紝寰幆鍒涘緩瀛怱ceneNode錛屽茍涓斿垱寤哄瓙鍦烘櫙鑺傜偣瀵瑰簲鐨勫彲娓叉煋浣揟errainRenderable錛屽皢璇ュ彲娓叉煋浣揳ttach鍒拌繖涓瓙鑺傜偣涓娿傞氳繃 “TerrainRenderable::initialise錛堬級”鏉ュ垱寤洪《鐐規暟鎹佹覆鏌撴柟寮忕瓑銆?

鐒跺悗璋冪敤void TerrainSceneManager::attachPage(ushort pageX, ushort pageZ, TerrainPage* page)鍔犲叆鍒癿TerrainPages涓紱

鐒跺悗鍦╝ttachPage涓皟鐢?#8220;mTerrainRoot->addChild(page->pageSceneNode);”鍔犲叆鍒癝ceneGraph涓?

娉細褰撳墠鍙敮鎸佷竴涓狿age錛岃鍒嗛〉琚寕鎺ュ埌涓涓О璋揟errain鐨勫満鏅妭鐐逛笂錛岃鍦烘櫙鑺傜偣涓嬮潰鍙堝垱寤轟簡寰堝瀛愬満鏅妭鐐癸紝姣忎竴涓瓙鍦烘櫙鑺傜偣瀵瑰簲涓涓猼ile錛屼篃灝辨槸涓涓嫭绔嬬殑鍙覆鏌撲綋TerrainRenderable



]]>
鍦板艦鏄劇ず浜?/title><link>http://m.shnenglu.com/winmain/archive/2010/02/05/107307.html</link><dc:creator>Code Knight</dc:creator><author>Code Knight</author><pubDate>Fri, 05 Feb 2010 13:27:00 GMT</pubDate><guid>http://m.shnenglu.com/winmain/archive/2010/02/05/107307.html</guid><wfw:comment>http://m.shnenglu.com/winmain/comments/107307.html</wfw:comment><comments>http://m.shnenglu.com/winmain/archive/2010/02/05/107307.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/winmain/comments/commentRss/107307.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/winmain/services/trackbacks/107307.html</trackback:ping><description><![CDATA[  <img border=0 src="http://m.shnenglu.com/images/cppblog_com/winmain/tlscene.jpg"> <img src ="http://m.shnenglu.com/winmain/aggbug/107307.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/winmain/" target="_blank">Code Knight</a> 2010-02-05 21:27 <a href="http://m.shnenglu.com/winmain/archive/2010/02/05/107307.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>絎竴涓満鏅?/title><link>http://m.shnenglu.com/winmain/archive/2010/01/15/105785.html</link><dc:creator>Code Knight</dc:creator><author>Code Knight</author><pubDate>Fri, 15 Jan 2010 15:51:00 GMT</pubDate><guid>http://m.shnenglu.com/winmain/archive/2010/01/15/105785.html</guid><wfw:comment>http://m.shnenglu.com/winmain/comments/105785.html</wfw:comment><comments>http://m.shnenglu.com/winmain/archive/2010/01/15/105785.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/winmain/comments/commentRss/105785.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/winmain/services/trackbacks/105785.html</trackback:ping><description><![CDATA[<p>           騫詫紝鏁翠簡鍗婁釜鏈堟葷畻鍑轟簡澶╅緳鐨勭涓涓満鏅細灝戞灄銆傚ぉ涓嬫鍔熷嚭灝戞灄... <br></p> <p><img src="http://m.shnenglu.com/images/cppblog_com/winmain/tianlong1.JPG" border=0><br></p> <p><img src="http://m.shnenglu.com/images/cppblog_com/winmain/tianlong2.JPG" border=0><br></p> <p><br>綰圭悊濂藉儚榪樻湁浜涢棶棰?...<br><br></p> <img src ="http://m.shnenglu.com/winmain/aggbug/105785.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/winmain/" target="_blank">Code Knight</a> 2010-01-15 23:51 <a href="http://m.shnenglu.com/winmain/archive/2010/01/15/105785.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>OGRE璐磋姳鍒嗙被http://m.shnenglu.com/winmain/archive/2010/01/14/105618.htmlCode KnightCode KnightWed, 13 Jan 2010 16:03:00 GMThttp://m.shnenglu.com/winmain/archive/2010/01/14/105618.htmlhttp://m.shnenglu.com/winmain/comments/105618.htmlhttp://m.shnenglu.com/winmain/archive/2010/01/14/105618.html#Feedback0http://m.shnenglu.com/winmain/comments/commentRss/105618.htmlhttp://m.shnenglu.com/winmain/services/trackbacks/105618.html娉曠嚎璐磋姳錛屾牴鎹墍鍦ㄤ綅緗殑娉曠嚎鑷姩璋冩暣璐磋姳鏈濆悜錛堜笉瑕佹眰绱ц創錛?/p>

妯″瀷璐磋姳錛屾牴鎹創鑺辨墍鍦ㄧ殑緗戞牸鑷姩鐢熸垚妯″瀷錛堜竴鑸創鍥撅級

鎶曞獎璐磋姳錛屽埄鐢ㄦ姇褰辯汗鐞嗙殑鏂瑰紡瀹炵幇鐨勮創鑺憋紙frustum錛?/p>

緗戞牸璐磋姳錛屽垱寤烘寚瀹氬ぇ灝忕殑緗戞牸璐磋姳錛岀劧鍚庤嚜鍔ㄨ皟鏁寸綉鏍肩殑浣嶇疆錛坢esh錛岃創鍥撅級




]]>
璐?/title><link>http://m.shnenglu.com/winmain/archive/2009/12/29/104407.html</link><dc:creator>Code Knight</dc:creator><author>Code Knight</author><pubDate>Tue, 29 Dec 2009 13:54:00 GMT</pubDate><guid>http://m.shnenglu.com/winmain/archive/2009/12/29/104407.html</guid><wfw:comment>http://m.shnenglu.com/winmain/comments/104407.html</wfw:comment><comments>http://m.shnenglu.com/winmain/archive/2009/12/29/104407.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/winmain/comments/commentRss/104407.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/winmain/services/trackbacks/104407.html</trackback:ping><description><![CDATA[<img src="http://m.shnenglu.com/images/cppblog_com/winmain/screenshot_2.png" border="0"><img src="http://m.shnenglu.com/images/cppblog_com/winmain/screenshot_1.png" border="0"><br> <img src ="http://m.shnenglu.com/winmain/aggbug/104407.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/winmain/" target="_blank">Code Knight</a> 2009-12-29 21:54 <a href="http://m.shnenglu.com/winmain/archive/2009/12/29/104407.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>OGRE灝忚http://m.shnenglu.com/winmain/archive/2009/12/28/104319.htmlCode KnightCode KnightMon, 28 Dec 2009 15:15:00 GMThttp://m.shnenglu.com/winmain/archive/2009/12/28/104319.htmlhttp://m.shnenglu.com/winmain/comments/104319.htmlhttp://m.shnenglu.com/winmain/archive/2009/12/28/104319.html#Feedback0http://m.shnenglu.com/winmain/comments/commentRss/104319.htmlhttp://m.shnenglu.com/winmain/services/trackbacks/104319.html2,node鐨勯粯璁osition鏄師鐐?br>3,鏉愯川鑴氭湰涓畾涔夌殑紼嬪簭孌典腑鐨剆ource鏂囦歡鍚嶅悗緙蹇呴』涓庡畾涔夌殑shader鏂囦歡綾誨瀷鍖歸厤銆?br>濡傦細
vertex_program Ogre/CelShadingVP1 hlsl
{
    source Example_CelShading1.hlsl
    entry_point main_vp
    target vs_2_0
}
娉ㄦ剰target鏄痟lsl涓嫭鍗?cg涓槸profile,涓斿弬鏁頒笉鍚?br>4錛孭lugin_CgProgramManager_d.dll 鎻掍歡涓瀹氳鏈塩g.dll閰嶅悎
5錛孫GRE涓嶆敮鎸佺殑涓枃璺緞鐢ㄤ笅闈㈣В鍐籌細
setlocale(LC_ALL, "chinese-simplified");
璁板緱璇誨彇瀹岃祫婧愯榪樺師
6錛?nbsp;   Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups()涓瀹氳鍦╮endersystem鍒濆鍖栧畬姣曟墠鑳借皟鐢ㄣ備篃灝辨槸鍦╮oot鐨刢reateRenderWindow 涔嬪悗
7錛屾兂瑕佷綘鐨凮IS涓殑mouse浣昸eboard鍝嶅簲浣犲緱璁板緱鍦╢rameStarted 涓瘡嬈″幓capture;
璁板緱鍦?nbsp;          
mKeyboard = static_cast<OIS::Keyboard*>(mInputManager->createInputObject(OIS::OISKeyboard, true));
mMouse = static_cast<OIS::Mouse*>(mInputManager->createInputObject(OIS::OISMouse, true));
涔嬪悗
mMouse->setEventCallback(this);
mKeyboard->setEventCallback(this);






]]>
OGRE瀛︿範涔嬪湴褰㈣窡韙?/title><link>http://m.shnenglu.com/winmain/archive/2009/12/16/103349.html</link><dc:creator>Code Knight</dc:creator><author>Code Knight</author><pubDate>Wed, 16 Dec 2009 13:15:00 GMT</pubDate><guid>http://m.shnenglu.com/winmain/archive/2009/12/16/103349.html</guid><wfw:comment>http://m.shnenglu.com/winmain/comments/103349.html</wfw:comment><comments>http://m.shnenglu.com/winmain/archive/2009/12/16/103349.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/winmain/comments/commentRss/103349.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/winmain/services/trackbacks/103349.html</trackback:ping><description><![CDATA[     鎽樿:           hey,guys,鍙堜笂鏉ヨ創浠g爜鍟︺?nbsp;         緇х畫OGRE鐨勫涔犮傚簾璇濆皯璇寸湅浠g爜銆?Code highlighting produced by Actipro CodeHighlighter...  <a href='http://m.shnenglu.com/winmain/archive/2009/12/16/103349.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/winmain/aggbug/103349.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/winmain/" target="_blank">Code Knight</a> 2009-12-16 21:15 <a href="http://m.shnenglu.com/winmain/archive/2009/12/16/103349.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>OGRE涔嬭緭鍏ョ郴緇熺瑪璁?/title><link>http://m.shnenglu.com/winmain/archive/2009/12/06/102659.html</link><dc:creator>Code Knight</dc:creator><author>Code Knight</author><pubDate>Sun, 06 Dec 2009 11:44:00 GMT</pubDate><guid>http://m.shnenglu.com/winmain/archive/2009/12/06/102659.html</guid><wfw:comment>http://m.shnenglu.com/winmain/comments/102659.html</wfw:comment><comments>http://m.shnenglu.com/winmain/archive/2009/12/06/102659.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/winmain/comments/commentRss/102659.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/winmain/services/trackbacks/102659.html</trackback:ping><description><![CDATA[     涓涓熀鏈殑渚嬪瓙錛?br>     <br> <pre>#include "ExampleApplication.h"<br><br>class TutorialFrameListener : public ExampleFrameListener, public OIS::MouseListener, public OIS::KeyListener<br>{<br>public:<br> TutorialFrameListener(RenderWindow* win, Camera* cam, SceneManager *sceneMgr)<br>  : ExampleFrameListener(win, cam, true, true)<br> {<br> // Populate the camera and scene manager containers<br> mCamNode = cam->getParentSceneNode();<br> mSceneMgr = sceneMgr;<br><br> // set the rotation and move speed<br> mRotate = 0.13;<br> mMove = 250;<br><br> // continue rendering<br> mContinue = true;<br><br> mMouse->setEventCallback(this);<br> mKeyboard->setEventCallback(this);<br><br> mDirection = Vector3::ZERO;<br> }<br><br> bool frameStarted(const FrameEvent &evt)<br> {<br> if(mMouse)<br> mMouse->capture();<br> if(mKeyboard) <br> mKeyboard->capture();<br><br> mCamNode->translate(mDirection * evt.timeSinceLastFrame, Node::TS_LOCAL);<br> return mContinue;<br> }<br><br> // MouseListener<br> bool mouseMoved(const OIS::MouseEvent &e)<br> {<br> if (e.state.buttonDown(OIS::MB_Right))<br> {<br> mCamNode->yaw(Degree(-mRotate * e.state.X.rel), Node::TS_WORLD);<br> mCamNode->pitch(Degree(-mRotate * e.state.Y.rel), Node::TS_LOCAL);<br> }<br> return true;<br> }<br><br> bool mousePressed(const OIS::MouseEvent &e, OIS::MouseButtonID id)<br> {<br> Light *light = mSceneMgr->getLight("Light1");<br> switch (id)<br> {<br> case OIS::MB_Left:<br> light->setVisible(! light->isVisible());<br> break;<br> }<br> return true;<br> }<br><br> bool mouseReleased(const OIS::MouseEvent &e, OIS::MouseButtonID id) { return true; }<br><br> // KeyListener<br> bool keyPressed(const OIS::KeyEvent &e)<br> {<br> switch (e.key)<br> {<br> case OIS::KC_ESCAPE: <br> mContinue = false;<br> break;<br><br> case OIS::KC_1:<br> mCamera->getParentSceneNode()->detachObject(mCamera);<br> mCamNode = mSceneMgr->getSceneNode("CamNode1");<br> mCamNode->attachObject(mCamera);<br> break;<br><br> case OIS::KC_2:<br> mCamera->getParentSceneNode()->detachObject(mCamera);<br> mCamNode = mSceneMgr->getSceneNode("CamNode2");<br> mCamNode->attachObject(mCamera);<br> break;<br><br> case OIS::KC_UP:<br> case OIS::KC_W:<br> mDirection.z -= mMove;<br> break;<br><br> case OIS::KC_DOWN:<br> case OIS::KC_S:<br> mDirection.z += mMove;<br> break;<br><br> case OIS::KC_LEFT:<br> case OIS::KC_A:<br> mDirection.x -= mMove;<br> break;<br><br> case OIS::KC_RIGHT:<br> case OIS::KC_D:<br> mDirection.x += mMove;<br> break;<br><br> case OIS::KC_PGDOWN:<br> case OIS::KC_E:<br> mDirection.y -= mMove;<br> break;<br><br> case OIS::KC_PGUP:<br> case OIS::KC_Q:<br> mDirection.y += mMove;<br> break;<br> }<br> return true;<br> }<br><br> bool keyReleased(const OIS::KeyEvent &e)<br> {<br> switch (e.key)<br> {<br> case OIS::KC_UP:<br> case OIS::KC_W:<br> mDirection.z += mMove;<br> break;<br><br> case OIS::KC_DOWN:<br> case OIS::KC_S:<br> mDirection.z -= mMove;<br> break;<br><br> case OIS::KC_LEFT:<br> case OIS::KC_A:<br> mDirection.x += mMove;<br> break;<br><br> case OIS::KC_RIGHT:<br> case OIS::KC_D:<br> mDirection.x -= mMove;<br> break;<br><br> case OIS::KC_PGDOWN:<br> case OIS::KC_E:<br> mDirection.y += mMove;<br> break;<br><br> case OIS::KC_PGUP:<br> case OIS::KC_Q:<br> mDirection.y -= mMove;<br> break;<br> } // switch<br> return true;<br> }<br>protected:<br> Real mRotate; // The rotate constant<br> Real mMove; // The movement constant<br><br> SceneManager *mSceneMgr; // The current SceneManager<br> SceneNode *mCamNode; // The SceneNode the camera is currently attached to<br><br> bool mContinue; // Whether to continue rendering or not<br> Vector3 mDirection; // Value to move in the correct direction<br>};<br><br>class TutorialApplication : public ExampleApplication<br>{<br>public:<br> void createCamera(void)<br> {<br> // create camera, but leave at default position<br> mCamera = mSceneMgr->createCamera("PlayerCam"); <br> mCamera->setNearClipDistance(5);<br> }<br><br> void createScene(void)<br> {<br> mSceneMgr->setAmbientLight(ColourValue(0.25, 0.25, 0.25));<br><br> // add the ninja<br> Entity *ent = mSceneMgr->createEntity("Ninja", "ninja.mesh");<br> SceneNode *node = mSceneMgr->getRootSceneNode()->createChildSceneNode("NinjaNode");<br> node->attachObject(ent);<br><br> // create the light<br> Light *light = mSceneMgr->createLight("Light1");<br> light->setType(Light::LT_POINT);<br> light->setPosition(Vector3(250, 150, 250));<br> light->setDiffuseColour(ColourValue::White);<br> light->setSpecularColour(ColourValue::White);<br><br> // Create the scene node<br> node = mSceneMgr->getRootSceneNode()->createChildSceneNode("CamNode1", Vector3(-400, 200, 400));<br> node->yaw(Degree(-45));<br> node->attachObject(mCamera);<br><br> // create the second camera node/pitch node<br> node = mSceneMgr->getRootSceneNode()->createChildSceneNode("CamNode2", Vector3(0, 200, 400));<br> }<br><br> void createFrameListener(void)<br> {<br> // Create the FrameListener<br> mFrameListener = new TutorialFrameListener(mWindow, mCamera, mSceneMgr);<br> mRoot->addFrameListener(mFrameListener);<br><br> // Show the frame stats overlay<br> mFrameListener->showDebugOverlay(true);<br> }<br>};<br><br>#if OGRE_PLATFORM == PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WIN32<br>#define WIN32_LEAN_AND_MEAN<br>#include "windows.h"<br><br>INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)<br>#else<br>int main(int argc, char **argv)<br>#endif<br>{<br> // Create application object<br> TutorialApplication app;<br><br> try {<br> app.go();<br> } catch(Exception& e) {<br>#if OGRE_PLATFORM == PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WIN32<br> MessageBox(NULL, e.getFullDescription().c_str(), "An exception has occurred!", MB_OK | MB_ICONERROR | MB_TASKMODAL);<br>#else<br> fprintf(stderr, "An exception has occurred: %s\n",<br> e.getFullDescription().c_str());<br>#endif<br> }<br><br> return 0;<br>}<br><br>鎸夌収鐞嗚鏉ヨ<br><font size="3">unbuffered錛氫笉鏂殑鍝嶅簲鎸夐敭淇℃伅錛岀洿鍒版寜閿斁寮銆備緥濡傦紝鎸変笅涓婁笅宸﹀彸錛屼嬌寰楄鑹叉寔緇Щ鍔ㄣ?<br>               涓鑸潵璁查傚悎浜?D鍦烘櫙婕父榪囩▼錛屽綋鍦ㄦ瘡甯ф覆鏌撲箣鍓嶏紝緋葷粺鎹曡幏杈撳叆璁懼鐘舵侊紝騫舵牴鎹繖浜涚姸鎬佸鍦烘櫙涓殑鐗╀綋鍜屾憚璞℃満榪涜鎺у埗銆?<br>buffered錛氬湪涓涓寜閿斁寮涔嬪墠錛屽彧澶勭悊涓嬈¤緭鍏ヤ俊鎭?<br>             渚嬪鍛煎嚭涓昏彍鍗曘傞傚悎浜嶨UI鐣岄潰鐨勬儏鍐碉紙濡傝緗彍鍗曪級錛岃緭鍏ヨ澶囩姸鎬佸彲浠ヨ鍙戦佸埌鍚凣UI鍏冪礌榪涜澶勭悊錛堝鎸夐挳琚寜涓嬶級銆?br><br></font>榪欎釜渚嬪瓙璇曞浘璇存槑緙撳啿杈撳叆鍜岄潪緙撳啿杈撳叆鐨勫尯鍒紝浣嗘槸璁╂垜鍥版儜鐨勬槸涓轟粈涔堥噰鐢ㄤ簡緙撳啿杈撳叆緋葷粺榪樿兘鍝嶅簲鎸佺畫鎸夐敭鍛紵緙栬瘧鍚庤繍琛屾寜浣廤SAD鐓ф牱縐誨姩鎽勫儚鏈恒?/pre> <br> <img src ="http://m.shnenglu.com/winmain/aggbug/102659.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/winmain/" target="_blank">Code Knight</a> 2009-12-06 19:44 <a href="http://m.shnenglu.com/winmain/archive/2009/12/06/102659.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.gzjrbs.cn" target="_blank">看久久久久久a级毛片</a>| <a href="http://www.geyr.cn" target="_blank">久久精品无码一区二区三区</a>| <a href="http://www.zhouyangla.cn" target="_blank">国产精品内射久久久久欢欢</a>| <a href="http://www.liuy88.cn" target="_blank">韩国三级大全久久网站</a>| <a href="http://www.710p.cn" target="_blank">精品久久人人妻人人做精品</a>| <a href="http://www.sifaguojinb.cn" target="_blank">日韩欧美亚洲综合久久</a>| <a href="http://www.6159vs.cn" target="_blank">久久久久久狠狠丁香</a>| <a href="http://www.ptmei.cn" target="_blank">一级a性色生活片久久无少妇一级婬片免费放</a>| <a href="http://www.t8s.com.cn" target="_blank">国产成人综合久久久久久</a>| <a href="http://www.v711.cn" target="_blank">久久久国产精华液</a>| <a href="http://www.otraveler.cn" target="_blank">久久国产精品无码HDAV</a>| <a href="http://www.mb71.cn" target="_blank">亚洲国产小视频精品久久久三级</a>| <a href="http://www.yy1122.cn" target="_blank">久久久久久国产精品免费无码</a>| <a href="http://www.zhoupeng520.cn" target="_blank">久久久99精品一区二区</a>| <a href="http://www.kingvit.com.cn" target="_blank">国产精品99久久99久久久</a>| <a href="http://www.6wx.com.cn" target="_blank">中文字幕久久精品</a>| <a href="http://www.hhyskj.com.cn" target="_blank">国产免费久久精品丫丫</a>| <a href="http://www.gallery2.cn" target="_blank">久久99精品久久久久久动态图</a>| <a href="http://www.e-ben.cn" target="_blank">久久精品国产色蜜蜜麻豆</a>| <a href="http://www.15961662156.cn" target="_blank">婷婷久久综合九色综合98</a>| <a href="http://www.hcpyr.cn" target="_blank">亚洲狠狠婷婷综合久久蜜芽</a>| <a href="http://www.nbblack.cn" target="_blank">日本欧美国产精品第一页久久</a>| <a href="http://www.ihi7113575.cn" target="_blank">国产人久久人人人人爽</a>| <a href="http://www.y7114.cn" target="_blank">麻豆一区二区99久久久久</a>| <a href="http://www.jijijian.cn" target="_blank">久久久久这里只有精品</a>| <a href="http://www.phatmedia.cn" target="_blank">久久精品国产久精国产思思</a>| <a href="http://www.tmsystem888.cn" target="_blank">精品久久久中文字幕人妻</a>| <a href="http://www.xldgdq.cn" target="_blank">日本国产精品久久</a>| <a href="http://www.eagleinsky.com.cn" target="_blank">日日狠狠久久偷偷色综合免费</a>| <a href="http://www.ic-led.cn" target="_blank">国产农村妇女毛片精品久久</a>| <a href="http://www.diycook.cn" target="_blank">爱做久久久久久</a>| <a href="http://www.huanpou.cn" target="_blank">伊人热人久久中文字幕</a>| <a href="http://www.node-js.cn" target="_blank">久久久91精品国产一区二区三区 </a>| <a href="http://www.xinkecheng.net.cn" target="_blank">久久婷婷久久一区二区三区</a>| <a href="http://www.dxcheck.cn" target="_blank">亚洲欧美日韩中文久久</a>| <a href="http://www.schzjy.cn" target="_blank">久久久久久综合网天天</a>| <a href="http://www.sxzt888.cn" target="_blank">亚洲日本va中文字幕久久</a>| <a href="http://www.senbozulin.com.cn" target="_blank">久久精品一区二区三区AV</a>| <a href="http://www.jincheng365.cn" target="_blank">久久久这里只有精品加勒比 </a>| <a href="http://www.sa88.cn" target="_blank">久久综合噜噜激激的五月天</a>| <a href="http://www.uzhp.cn" target="_blank">亚洲香蕉网久久综合影视</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>