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 (将#修改为@)