我希望能够通过着色器中的实际名称设置制服
myProgram.uniform3fv("uniformVector", 0.0f, 0.1f, 1.0f);
我是否必须以某种形式的地图缓存位置?
std::map<std::string, unsigned int> // or unordered_map
或者也许OpenGL(在桌面上)无论如何都会缓存这个,所以我不会有任何性能差异?
OpenGL 规范定义的是功能,而不是性能。因此,没有办法知道任何特定的 OpenGL 实现将如何存储活动制服列表或多快glGetUniformLocation
将是,相对于std::map
表现。
所以说真的,这取决于你。如果你想保持一致,known性能,自己做。如果您想尝试一下 OpenGL 实现的变幻莫测,请随时查询它。就我个人而言,我会说放弃名字并选择地点。这样你就能获得最大的性能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)