我对unity的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,我不确定它是如何实现的
发布于 2017-07-06 15:32:37
第四部分是'w‘,也称为反向拉伸因子。要将vec4转换为vec3,最好使用position.xyz / position.w,然后将其放回vec4中,您可以编写return fixed4(position, 1)
https://stackoverflow.com/questions/44865593
复制相似问题