抱起物品
This commit is contained in:
@@ -12,7 +12,7 @@ shader_type spatial;
|
||||
uniform vec2 face_center = vec2(0.0, 0.6);
|
||||
// 表情大小:.x 是左右宽度,.y 是上下高度
|
||||
uniform vec2 face_size = vec2(4.0, 4.0);
|
||||
// 只在身体正面出现:朝**模型本地 -Z**(模型自己的正面)的那面才画。
|
||||
// 只在身体正面出现:朝**模型本地 +Z**(尾巴在 -Z 那一侧,所以正面是 +Z)的那面才画。
|
||||
// 调大就只留最正面的一小块,调小会往侧面包过去。
|
||||
uniform float face_front_edge : hint_range(0.0, 1.0) = 0.0;
|
||||
// 上下颠倒了就改成 false
|
||||
@@ -55,8 +55,7 @@ void fragment() {
|
||||
float inside = step(0.0, face_uv.x) * step(face_uv.x, 1.0)
|
||||
* step(0.0, face_uv.y) * step(face_uv.y, 1.0);
|
||||
// 背面的点 (x, y) 和正面一样,也会落进矩形,所以要再按「朝不朝前」筛一遍。
|
||||
// 注意模型自己的正面是**本地 -Z**(预览和玩家场景里那层 Transform 都把它转了 180°),
|
||||
// 所以这里取 -normal.z;写成 +normal.z 表情就会跑到背上。
|
||||
// 模型正面是**本地 +Z**(尾巴在 -Z 那一侧),写成 -normal.z 表情就跑到背上去了。
|
||||
float front = smoothstep(face_front_edge, face_front_edge + 0.3,
|
||||
normalize(object_normal).z);
|
||||
float mask = inside * front;
|
||||
|
||||
Reference in New Issue
Block a user