簡體   English   中英

使用Directx11在基於Heightmap的地形上的孔

[英]Holes on Heightmap based terrain using Directx11

我目前正在研究由高度圖生成的圓柱狀地形。 程序中發生的事情很簡單,有一個地形顏色的紋理,具有我希望它不可見的區域的alpha值,另一個紋理ARGB,其中A是高度的灰度,而RGB是正常的光。 紋理是這樣的,A值從1到255,並且我為帶有孔的區域保留0,這意味着我不想再存在。 因此,從理論上講,沒問題,我會根據第一個紋理使這些區域不可見,但根據實際情況,程序會將0視為最小高度,即使頂部有紋理,也為此創建了一些線條0的區域,就像試圖使其三角形而不到那里,因為我通過使其不可見來切割了下一個頂點。 請注意直線到達圓柱體的中心這是我停止使那些頂點不可見時的結果

請注意到達圓柱中心的線,這是我停止使那些頂點不可見時的方式

因此,可以這么說,我在像素着色器上使用了功能Clip()使其不可見。

基本上,我需要幫助:是否可以用與在像素着色器上使用clip()相同的方式在頂點着色器上執行類似的操作,並消除不需要的頂點? 基本上可以說忽略值0嗎? 有任何解決辦法嗎? 我想使所有為0的頂點成為其鄰居的值,這樣這些線將不會到達中心,而是到達圓柱體本身所在的平面。 另一件事是,我們可以看到程序正在將值從一個頂點插入到下一個頂點,這就是為什么我在中間切入不可見頂點的原因

我正在使用帶有C ++的Directx11 API,並且該程序使用了Tessellation。

感謝您的寶貴時間,我們將為此感到非常高興!

好吧,我確實解決了這個問題。 我使具有高度值的紋理通過了一個修改器,該修改器創建了另一個紋理,該紋理的零值被側面像素替換,其值不同,然后為零或更改為128.0f。 這樣一來,怪異的線條方向就更准確了,而不是到達圓柱體的中心,而是沿着直線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM