着色器可以有很多不同的统一名称+属性。如何制作一个在一般情况下工作的系统,这样我就不必事先知道每个着色器制服的名称并将其硬编码为代码以获取其位置。我使用 OpenGL。
问问题
1499 次
2 回答
2
不幸的是,在某些时候,您需要知道着色器中的统一名称是什么,以及它们所指的内容......没有办法解决这个问题。
大多数图形/游戏引擎按惯例工作 - 某些制服由引擎设置,着色器根据需要使用它们。有些会添加配置,因此每个着色器都可以指定它需要的制服,但通常情况下,名称仍按约定完成。
于 2009-07-11T04:24:52.653 回答
1
使用命名约定,或自己解析着色器字符串以获取类型、符号和可选存储说明符。前一种选择将责任放在着色器程序员身上,而后一种解决方案将负担放在应用程序程序员身上。通过使用扩展GL_ARB_uniform_buffer_object可以使此类代码更加优雅和高效,该扩展在 OpenGL 3.1 中被提升为核心
于 2009-07-11T12:13:59.747 回答