shaderlab中的顶点变形

vertex distortion in shaderlab

我对统一的 shaderlab 比较陌生。我试图扭曲顶点,使它们向后推向相机,几乎就像从 45 度角看相机一样。为了好玩,我正在复制游戏的效果。 This是效果使用的代码

我试过像这样将代码植入着色器脚本:

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,我不确定它是如何实现的

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