使用 glUniform 并同时绑定 UBO

Using glUniform and binding an UBO at the same time

据我了解,用户定义的制服块中的制服仍然是常规制服。如果我使用 glUniform* 直接访问它并同时将 UBO 绑定到它的绑定点,会发生什么情况?这是定义的行为吗?

那是不可能的。虽然统一块中的制服在某种意义上是 "uniforms",但这并不意味着块制服在所有方面都与非块制服相同。

块中的制服没有位置。如果您尝试将 glGetUniformLocation 与该制服的名称一起使用,它将 return -1 (除非有一些具有该名称的非块制服)。因此,没有办法使用glUniform*来设置它们的值。