通过统一属性将float3 / vec3传递给着色器

时间:2016-05-16 07:31:42

标签: opengl unity3d glsl

我正在写一个着色器,我想将vec3传递给输入。 但是我能找到的所有东西总是传递一个浮点数vec4,纹理或数字范围。是否有可能将香草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

这感觉不对。还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

看起来当您将属性标记为Vector时,它必须包含4个组件。即使documentation说: "矢量属性显示为四个数字字段。"

这真的不像它看起来那么糟糕,只需将最后的组件设置为零。

请注意,令人讨厌的是匹配变量不是" vector",它" float4"。

完整列表:

https://stackoverflow.com/a/37749687/294884