我一直在使用DirectX(與XNA)一段時間,並且最近切換到了OpenGL。我真的很喜歡它,但有一件事讓我很煩惱。GLSL動態索引陣列
我一直在試圖實現一些需要在頂點着色器中進行動態索引的東西,但我被告知這需要SM 4.0的平等。但是我知道,即使使用SM 2.0,甚至可能使用1.0,DX也能工作。 XNA的實例化示例使用此示例在SM2.0唯一卡http://create.msdn.com/en-US/education/catalog/sample/mesh_instancing上進行實例化。
編譯器不能將其「展開」爲if語句的巨大列表,因爲這肯定會超過SM2上250個實例的指令限制。
所以DX做了一些我不能用OpenGL做的技巧,我可以操縱OpenGL來做同樣的事,還是OpenGL不公開的硬件功能?
我不知道答案,但出於好奇,什麼是SM? – LarsH 2010-12-06 17:14:42
[「着色器模型」](http://en.wikipedia.org/wiki/High_Level_Shader_Language#Shader_model_comparison) – genpfault 2010-12-06 17:17:30