在遊戲製作中的地形渲染terrainrender(轉)
在遊戲製作中的地形渲染terrainrender(轉)[@more@] 地形渲染是個很有用的技巧。經常用來渲染顯示世外場景和地貌形態。在DX SDK裡有不少terrain render的運用。比如公告牌的例子和實時影子渲染的例子裡都用到了地形渲染。 其實地形渲染就是以一個數學函式生成地表的高度值。使得地面呈現出高低不平的樣子。使用不同的高度生成函式,就可能出現不同的地貌。比如生成高山的樣子,或者起伏的丘陵的樣子。 這裡我把一個terrain render的示例完整的分離出來。 下面是地形渲染的關鍵,一個行內函數。它的作用是根據x,z座標值來生成y值,即地表高度值。使用行內函數是為了程式執行取得更高的效率。 inline FLOAT HeightField( FLOAT x, FLOAT y ) { return 9*(cosf(x/20+0.2f)*cosf(y/15-0.2f)+1.0f); } 你可以用想象力自己改寫這個函式 :),可以生成千奇百怪的地形。 這是生成地表的過程。這裡用一個扁平mesh來做地表。然後按一定格式取出它的高度值,用我們的高度生成函式來改寫它。 if( FAILED( m_pTerrain->Create( m_pd3dDevice, _T("SeaFloor.x") ) ) ) return D3DAPPERR_MEDIANOTFOUND; // Add some "hilliness" to the terrain LPDIRECT3DVERTEXBUFFER8 pVB; if( SUCCEEDED( m_pTerrain->GetSysMemMesh()->GetVertexBuffer( &pVB ) ) ) { struct VERTEX { FLOAT x,y,z,tu,tv; }; VERTEX* pVertices; DWORD dwNumVertices = m_pTerrain->GetSysMemMesh()->GetNumVertices(); pVB->Lock( 0, 0, (BYTE**)&pVertices, 0 ); for( DWORD i=0; i pVertices[i].y = HeightField( pVertices[i].x, pVertices[i].z ); pVB->Unlock(); pVB->Release();
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-952136/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在遊戲製作中渲染公式推導(轉)遊戲公式
- 詳細介紹在遊戲製作中的分形演算法(轉)遊戲演算法
- 怎樣在遊戲設計製作中實現指令碼控制(轉)遊戲設計指令碼
- 電腦遊戲中的人工智慧製作 (轉)遊戲人工智慧
- 關於單機遊戲製作中的物件重用問題(轉)遊戲物件
- Unity製作遊戲中的場景Unity遊戲
- 《孤島驚魂5》中的地形渲染技術-網格生成
- Azure OpenAI在遊戲NPC和製作場景中的應用OpenAI遊戲
- 遊戲製作之我見:) (轉)遊戲
- 遊戲雜談:大製作遊戲和小製作遊戲,在開發思路方式上的差別遊戲
- 遊戲設計製作中對鎖定設定的應用(轉)遊戲設計
- 小遊戲的製作遊戲
- 在swoole中製作一款仿製laravel的框架Laravel框架
- 製作遊戲的遊戲:創作樂趣的樂趣遊戲
- 用GameAPI函式製作二維動作遊戲(轉)GAMAPI函式遊戲
- 精通RPM之--製作篇(中)(轉)
- 在Android中製作移動的漸變背景Android
- 在Excel中製作下拉選單的3種方法Excel
- 在製作遊戲的過程中,我都解決和改進了哪些問題遊戲
- 製作暴力遊戲的人平時在過什麼樣的日子?遊戲
- three.js 製作邏輯轉體遊戲(下)JS遊戲
- three.js 製作邏輯轉體遊戲(上)JS遊戲
- 日本遊戲製作學校探秘(原創) (轉)遊戲
- 手機遊戲製作揭秘遊戲
- 關於遊戲中的實時渲染遊戲
- Minecraft類遊戲地形生成機制Raft遊戲
- 在PowerPoint中製作3D圖形的方法3D
- Django form在模版中的渲染方式DjangoORM
- 遊戲製作詳解自----OpenGL入門教程(九)(轉)遊戲
- 遊戲製作詳解自----OpenGL入門教程(五)(轉)遊戲
- 遊戲製作詳解自----OpenGL入門教程(四)(轉)遊戲
- 遊戲製作相關---HAM教程翻譯本(五)(轉)遊戲
- 遊戲製作相關---HAM教程翻譯本(四)(轉)遊戲
- KeyShot Pro for mac(3D渲染動畫製作)Mac3D動畫
- 如何看待遊戲創作中,製作者與玩家的理念衝突?遊戲
- 怎樣在電子遊戲裡製作自然紀錄片?遊戲
- 在Unix系統下用shell製作通用介面(轉)
- 使用Unity製作遊戲AIUnity遊戲AI