【逆向】 歐陸風雲4地形系統
Hello,大家好這次帶來第二篇遊戲的逆向,嗯這次是業餘抽空的時間做的一個關於歐陸風雲4的地形系統的逆向,做這個的原因呢是因為非常喜歡P社的遊戲和設定,其次是想在這個的基礎上,做一個關於門派經營和養成的策略遊戲,可以參考(天下霸圖),其基本設定大致想分為三個部分去做,一個是大地圖的勢力劃分(參考P社5萌),第二是門派建設和人物養成部分,可以參考開羅系列,最後的戰鬥系統容我做出來了再介紹給大家。現在的進度是正在進行第二部分的開發- -,這次的逆向是對歐陸風雲的整個地形和填色系統的簡單總結,希望能夠在某個方面幫助到大家。
首先,關於地形系統的基本原理,可以參考各種渲染的入門書籍,比如Introduction to 3D Game Programming with DirectX 11。其中有專門的章節關於地形系統的基礎入門,其基本原理都是通過使用一張高度圖,來描述地形的高度的差異。再通過這場高度圖,在CPU側生成對應的Mesh網格,或者使用曲面細分,或者LOD的方式,在GPU來採樣高度圖實現。我們這次的實現是採用CPU側的方式。接下來的文章大致描述以下幾個部分:
1.地形Mesh的生成
首先我們需要一個類似地球的大世界地圖的網路生成,來作為我們地形渲染的基礎,我們的目標就是研究如何生成一個高精度的地形Mesh,以及討論歐陸風雲4的做法。
2.地形的渲染
在擁有了地形的Mesh之後,我們第二步要做的就是,渲染出和歐陸風雲4類似的地形效果,這部分主要是參考歐陸風雲4的原始shader,以及研究歐陸風雲4是如何做到渲染一張至少效果還不差的(偽高精度)地形。
3.水面和河流
在擁有了基本的地形之後,我們還需要實現對應的水面和河流效果,這部分的效果也是參考歐陸風雲4的原始代碼, 問題是關於河流的程序生成,我們也繼續討論一下歐陸風雲4本身是如何做到可擴展和可Mod的。
4.省份填色
第4部分呢,我們討論一個比較難一點的話題,就是如何染色,以及如何高效率的染色。畢竟學習地理就靠這個遊戲了。- -
5.迷霧
最後呢,我們完成最後的一個步驟,那就是戰爭迷霧的實現。
總的來說,歐陸風雲4的地形系統還是做得很好的,兼顧了效率- - (一核有難,那個*核圍觀),並且我們可以通過逆向的過程學習到一些基本的渲染效果的實現方法。
1.地形Mesh的生成
我們使用一張高度圖來生成我們的大地圖的Mesh,可以通過一張圖來反映其基本思路