2014-05-03 70 views

回答

1

通過掃描該頁面,我相信你可以在片段着色器中完成所有這些工作。您可以綁定多個紋理,在着色器中對其進行全部採樣,並將結果合併到您的心中。

它看起來類似於OpenGL在固定功能流水線中使用的功能。我舊版本的紅皮書(OpenGL編程指南)有關於「多紋理」和「紋理合並器功能」的章節。如果您使用兼容性配置文件,這仍然可用。但恕我直言,這是一個很好的例子,它將某些類型的功能壓縮到固定管道中看起來非常麻煩,而在着色器中做同樣的事情則更容易和更靈活。

+0

是的,它可能與glsl着色器,但除非我使用幾個開關語句和着色器內的循環(這不是很有效),我最終會有1000個着色器。爲了獲得相同的靈活性。 – user240713

+2

1000個着色器,因爲你想以多種不同的方式組合紋理?如果你用固定功能做同樣的事情,你也可能會得到很多着色器。你只是看不到它們。我不認爲有人已經制造出可以長時間直接實現固定管道的圖形硬件。當你使用固定管道時,你只需將它留給驅動程序來生成着色器。 –

+0

我想有可能是另一種解決方案,例如有某種混合函數'mix(srcColor,dstColor,alpha)+ mix(srcColor,dstColor,alpha)'來模擬glBlendFunc。哪些只會是浮點乘法而不是開關語句? – user240713