【问题标题】:Comparing structs in GLSL比较 GLSL 中的结构
【发布时间】:2017-12-02 16:23:22
【问题描述】:

使用经典的相等运算符比较两个相同类型的结构是否安全?我还没有找到任何关于此的信息,并且没有选项可以在 GLSL 中重载此运算符。那么 GLSL 默认会比较两个结构组件吗?

struct sith
{
   int forceLevel;
   vec3 saberColor;
};
...
sith vader = sith(100,vec3(1.0,0.0,0.0));
sith anakin = sith(100,vec3(1.0,0.0,0.0));
...
if (vader == anakin)
   //is the force strong with this one?

【问题讨论】:

    标签: opengl glsl shader opengl-3 compute-shader


    【解决方案1】:

    当使用相等运算符时,两个结构相等当且仅当所有字段都相等 组件相等,两个数组相等当且仅当所有元素都相等

    -GLSL 1.30 Specification, Page 46, Section 5.7 "Structure and Array Operations"

    【讨论】:

    • 啊,非常感谢。我浏览了错误的部分,并没有注意到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    相关资源
    最近更新 更多