日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GPU Pro2 - 3.Procedural Content Generation on the GPU

發(fā)布時間:2023/12/13 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GPU Pro2 - 3.Procedural Content Generation on the GPU 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

GPU Pro2 ?- 3.Procedural Content Generation on the GPU

?

這篇文章著重介紹了基于Brownian 噪聲和高度圖在GPU中實時生成和渲染無限大地形系統(tǒng)。

Procedural content generation (PCG)程序化生成在許多游戲中已經(jīng)有廣泛應用,從簡單的隨機物體擺放,到全自動生成武器,建筑或者AI等等。PCG在計算機圖形學中最基本的應用之一就是基于高度圖的地形生成。

現(xiàn)如今已經(jīng)有許多不同的實時地形生成技術,大多數(shù)是利用過程化生成噪音去創(chuàng)建高度圖。目前最新引人的技術是模擬1/f 噪音(called “pink noise”),因為這種噪音在自然中普遍存在,而且便于在現(xiàn)代gpu中實現(xiàn),并且有很好的表現(xiàn)和速度。在這篇文章里,我們決定使用近似的不規(guī)則Brownian motion(fBM)(布朗運動)算法。

該方案使用了光譜混合(spectral synthesis,我也不知道咋翻譯),計算了多層級噪音,最基礎的噪音生成算法是Perlin噪音。盡管柏林噪音的實現(xiàn)已經(jīng)完全依賴于GPU,但是由于其他的過程化生成算法,該算法依然不夠快,因此我們采用了一個可以根據(jù)自身需要而進行配置的系統(tǒng)。

將地形分成多個正方形node(node的數(shù)量必須是高度圖大小的出書,以避免生成后出現(xiàn)錯誤),將攝像機初始置于最中間,每個臨近最中心node的四個node(上下左右)擁有邊界碰撞體,當攝像機和其中任意一個發(fā)生碰撞時,新的高度圖就會生成。基于攝像機的碰撞方向和碰撞體的位置,我們可以得到新的噪音UV坐標。這個操作和高度圖生成算法保證了地形將是連續(xù)且無盡的。

比如下圖:原先在中心,向左移動后于左側(cè)node發(fā)生碰撞,根據(jù)碰撞位置,重新計算出與左側(cè)node相鄰的新的node信息。

該算法也利用了LOD系統(tǒng),因為我們知道所有node的相對位置,所以可以提前計算出index buffer中的相關信息。中間的node最接近攝像機,所以應該有最低的LOD等級,也就是更多的三角形面片數(shù)量展示更多細節(jié)。

另外我們還模擬了侵蝕效果,最簡單的侵蝕效果類型是thermal erosion,它是由于溫度變化導致的。這個侵蝕算法通過迭代,利用附近點的高度計算出地形點的高度,該算法的實現(xiàn)用了兩個pass,第一個pass計算出材質(zhì)中需要移動到附近點的頂點數(shù)量,第二個pass中通過第一個pass提供的信息計算出實際效果。

地形中的樹植被系統(tǒng)的實現(xiàn)分兩個步驟,第一步生成樹的密度圖,它定義了樹的布置信息。下一步,根據(jù)該信息實際渲染樹的mehs。地形中的高度和坡度信息對生成樹是最常用的參數(shù),這兩個信息可以由高度圖和法線圖輕松的得到。通過這兩個信息以及一些我們自定義的參數(shù),我們就可以生成地形中樹的密度圖。

有了密度圖之后,我們不能直接將他用于在地形中生成樹的植被,因為密度圖可能對應非常巨大的世界空間,如果直接每個texel生成一棵樹,那結果有可能植被會非常稀疏。因此,我們?yōu)槊總€類型的樹設置了半徑這個參數(shù),代表這顆樹會占多大地兒。我們的解決方法是將當前的patch根據(jù)這個patch中最大的那棵樹的半徑劃分成gird,通過從密度圖中取出的值以及占地空間兩者一起決定出如何渲染樹。通過攝像機的裁剪和LOD等技術,再加入Rayleigh-Mie atmospheric scattering我們就完成了地形系統(tǒng)的渲染。

概況下整個流程:

碰撞觸發(fā)需要生成新一部分地形 --? 生成噪音 --?計算erosion,生成高度圖 -- 生成法線貼圖 -- 生成樹的密度圖--生成樹的真正位置信息--渲染場景

?

?

總結

以上是生活随笔為你收集整理的GPU Pro2 - 3.Procedural Content Generation on the GPU的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。