2012-08-14 153 views
0

3D形狀我有一個質地是更小的紋理和我不能在此應用程序分割成單個文件的網格。我需要在模型上平鋪這些子文本。平鋪subtexture在OpenGL中

分割幾何能正常工作,但會增加場景複雜度和潛在如果產生薄的三角形引入視覺假象。

在運行時間從原來的複製分配新的紋理可以工作,但會增加紋理內存的使用情況,並會涉及陳舊的數據,如果主要結構的變化(這是我不能在此應用程序檢測)。

如果真的是沒有辦法直接綁定subtexture允許OpenGL的平鋪工作,什麼是做下一個最好的方法是什麼?

+0

您可以使用片段着色器程序將紋理座標轉換爲子紋理的查找。 – MvG 2012-08-14 21:25:22

+0

這似乎是大規模的矯枉過正,並可能干擾應用程序的現有渲染管道,除非有一種簡單的方法來孤立地執行這個特定的事情。 – JAKJ 2012-08-14 21:32:56

回答

1

如果你需要做到這一點,正確的方法是使用一個片段着色器平鋪你的紋理座標直接。

這似乎是巨大的矯枉過正,可能與應用程序的現有渲染管線

它會干擾的唯一方式干擾是,如果你不使用片段着色。如果你不是......你應該。

現代硬件設計通常不會再增加固定功能;這完全是爲了給shader更多的功能和選擇。如果你需要一個功能,「在着色器中編碼」通常是正確的解決方案。

但是,如果你不能使用着色器,唯一的辦法是修改你的幾何圖形,如你所說。

+0

我想這是值得的,然後,看看這樣的東西是否可以添加到應用程序中,而不會弄壞作品。如果您能夠提供比Google更直接的出發點,我將不勝感激,因爲我懷疑我現在真的有足夠的時間和資源來學習整個着色器子系統來解決這個問題。 – JAKJ 2012-08-15 02:33:52

+0

@JAKJ,有一個名爲[ShaderGen](http://www.mew.cx/glsl/shadergen/)的工具,它自動生成着色器代碼以複製固定功能管道的工作。缺乏合適的Windows安裝,我從來沒有真正使用它,但它可能是值得一試的起點。 – MvG 2012-08-15 08:08:38