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)
我对统一的 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)