簡體   English   中英

我該如何正確將其繪制到UV貼圖?

[英]How would I get this to UV map correctly?

好了,所以我有了我的代碼,可以使用C ++和DirectX繪制一個廣闊的前景。 我用一種紋理對其進行了紋理處理,然后需要添加更多紋理。 我看到人們在有1個紋理圖像且圖像包含2個紋理的地方這樣做。 那就是我所做的,這是一個256x128的圖片。 現在的問題是,由於地形自動生成了UV貼圖1紋理的坐標,因此它同時顯示了兩個紋理。 我需要做的是,當世界的高度足夠高時,它是1紋理,下面的所有東西都是另一紋理。 我的UV坐標代碼,

頂點[y *寬度* x] .U = x / 1.28;

頂點[y *寬度* x] .V = y / 1.28;

這些是我的貼圖坐標,X是它正在繪制的頂點的當前X值,Y值是其當前y位置。 高度圖為128x128,因此我將其除以1.28,以使每個多邊形上都具有UV貼圖。 高度也是計算得出的,因為我正在加載一個高度圖並嘗試獲取它,因此當高度足夠高時,UV會映射圖像的一半,如果另一高度,則UV會映射圖像的另一側。 有人請幫忙!

bool topTexture = height[x][y] > threshold;
float u = x / 1.28;
float v = y / 1.28;
Vertices[y * WIDTH * x].U = (u - (int)u) / 2 + (topTexture ? 0.5 : 0);
Vertices[y * WIDTH * x].V = (v - (int)v) / 2 + (topTexture ? 0.5 : 0);

您可能需要在閾值級別混合兩個紋理。 然后,您必須在PixelShader中執行此操作。

暫無
暫無

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

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