0

我对统一的shaderlab很陌生。我试图扭曲顶点,使它们向后推向相机,就像从 45 度角看相机一样。我正在复制游戏中的效果以获得乐趣。是用于效果的代码

我尝试将代码嵌入到着色器脚本中,如下所示:

float4 vert(appdata v){

            float3 position = mul(unity_ObjectToWorld, v.vertex).xyz;

            float y = position.y;
            float z = position.x;

            float3 parentTranslation = ParentMatrix._m30_m31_m32;

            position -= parentTranslation;
            position.z += AlternateLayeringScale;
            position.z -= y;
            position.y += position.z;
            position += parentTranslation + float3(0,parentTranslation.z,0);

            return position;

        }

但是我收到一个错误,指出它无法从 float3 转换为 float4,我不确定它是如何实现的

4

1 回答 1

1

第四部分是“w”,也称为逆拉伸因子。要将 vec4 转换为 vec3,最好position.xyz / position.w将其放回 vec4 中,您可以编写return fixed4(position, 1)

于 2017-07-06T07:32:37.157 回答