上篇筆記《Godot Shader特效:3D描邊(outline)效果 原理篇》介紹了Godot實現3D描邊的原理,該文中是用Godot自帶的SpatialShader通過調整參數實現的,由於這個效果在3D遊戲中還是很常用的,所以乾脆自己寫了一個專用Shader,非常簡單。把它添加到材質上並作爲一個Next Pass,就可以實現描邊了。
shader_type spatial;
render_mode cull_front,unshaded;
uniform vec4 color : hint_color = vec4(1.0,0.0,0.0,1.0);
uniform float grow = 0.05;
void vertex() {
VERTEX+=NORMAL*grow;
}
void fragment() {
ALBEDO = color.rgb;
}