2014-09-03 155 views
0

在OpenGL(lwjgl)中提供某種「厚度」的最簡單方法是什麼?當然,我可以以某種方式獲得紋理的邊界,並添加四邊形,由紋理繪製的四邊形的法線來控制,以相鄰紋理像素的顏色。但必須有一個更簡單的方法來做到這一點。我的世界也使用lwigl,並且有(新的)3D項目,它們在地面上旋轉下來,不會像性能問題那樣引起太多的影響,就像它們被繪製成多邊形的子節點一樣。同樣,當你手中拿着一件物品時,就會有那種「拉伸」的深度紋理,它也適用於高分辨率紋理。 有誰知道這是怎麼完成的?OpenGL 2D紋理的厚度

+1

紋理可以有明顯的厚度我知道的唯一方法是凹凸映射(甚至只是表觀厚度,它在極端角度觀看時會崩潰)。要創建真實的厚度,它必須是一些幾何圖形生成效果。 – Durandal 2014-09-03 15:29:53

+0

是的,幾何着色器在這裏可以很好地使用。 – Iggy 2014-09-03 15:47:28

回答

0

2D紋理總是無限薄。如果你想要實際的厚度(當你看到它的邊緣),你需要幾何。在Minecraft中,事物看起來很塊,因爲它們是以這種方式建模的。

如果你看一些角度而忽略邊緣,你可以使用視差映射來「僞造」紋理中的某個深度。或者,您可以使用深度貼圖並使用鑲嵌着色器和頂點着色器的組合來實現位移貼圖,該位圖貼圖會從貼圖生成幾何圖形。