微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HLSL:如何将无符号整数 RGBA 转换为 float4?

如何解决HLSL:如何将无符号整数 RGBA 转换为 float4?

我有一个 GLSL 顶点着色器。正在尝试转换为 HLSL。 verts 是这样输入的:

.WhereAnyLike(pattern,e => e.Property1,e => e.Property2,e => e.Property3);

所以,一个非常简单的顶点。在 GLSL 中,我将漫反射组件变成四个浮点,如下所示:

struct Vertex
{
    float x,y,z;
    unsigned int diffuse;
    float u,v;
};

老实说,我原以为这会在 HLSL 中以完全相同的方式工作。但是当我尝试这样做时(并且由于我的项目范围,我仅限于 vs_2_0)我被告知“&”是一个意外标记

这在带有 vs_2_0 的 HLSL 中是不可能的,还是我必须调用某种辅助函数才能做到这一点?

(进一步注意:我注意到在 HLSL 中我可以简单地将输入声明为 float4 而不是 int 并且它以某种方式正常工作......这太奇怪了,我不相信它,在着色器之前被转换发生了?谁能解释一下?)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。