gpt4 book ai didi

opengl - 您能判断是否在顶点着色器中启用了顶点属性吗?

转载 作者:行者123 更新时间:2023-12-02 23:46:47 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以判断顶点着色器中是否启用了顶点属性?我知道如果禁用顶点属性,所有值都将被视为 0.0,因此我可以进行如下测试:

if (attribute == 0)
{
// Do something different to normal.
}
else
{
// Use the attribute.
}

但是,对于启用该属性且该值仅设置为 0 的情况,这有一个明显的问题(它将被视为禁用)!

另一个解决方案是只使用一个统一变量来说明是否使用该属性,但我想知道 GLSL 中是否有内置的东西可以做到这一点?

最佳答案

仅供引用:

I know that if the vertex attribute is disabled all the values will be treated as 0.0, so I could do a test like the following:

事实并非如此。如果禁用某个属性,则其值来自常规 OpenGL 状态。即glVertexAttrib设置的状态功能。因此,将这些类型的“常量属性”发送到着色器是完全合法的。

这就是为什么 API 没有办法让着色器判断某个属性是否“禁用”。 “禁用”属性可能仍然具有有意义的数据。

关于opengl - 您能判断是否在顶点着色器中启用了顶点属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9402457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com