shaderlab中的顶点失真

时间:2017-07-01 21:32:14

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

1 个答案:

答案 0 :(得分:0)

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