我正在编写一个着色器,我想将 vec3 传递给输入。
然而,我能找到的一切总是传递一个浮点数,一个 vec4,纹理或数字范围。是否可以将 Vanilla vec3 统一发送到着色器?
Properties
{
offset ("formula Offset", Vector) = (0, 0, 0)
}
似乎没有像我希望的那样工作。
为了让它编译,我一直在这样做:
Properties
{
offset ("formula Offset", Vector) = (0, 0, 0, 0)
}
// offset.xyz //Extract relevant data from vector
这只是感觉不对。有没有更好的办法?
最佳答案
看起来当您将属性标记为 Vector 时,它必须具有 4 个组件。甚至 documentation说: “矢量属性显示为四个数字字段。”
这确实没有看起来那么糟糕,只需将最后一个组件设置为零即可。
请注意,令人讨厌的是,匹配变量不是“向量”,而是“float4”。
完整名单:
https://stackoverflow.com/a/37749687/294884
关于opengl - 通过统一属性将 float3/vec3 传递给着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37248834/