我一直在使用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