美文网首页
【Godot】教你实现完美的3D模型描边

【Godot】教你实现完美的3D模型描边

作者: Hi小胡 | 来源:发表于2020-11-15 23:34 被阅读0次
shader_type canvas_item;

uniform float width: hint_range(0.0, 10.0);
uniform vec4 color: hint_color;

void fragment() {
    vec4 textureColor = texture(TEXTURE, SCREEN_UV, 0.0);
    if (textureColor.a == 0.0){
        bool isFinish = false;
        vec2 screen = width * SCREEN_PIXEL_SIZE;
        for (float x = -screen.x; x <= screen.x && !isFinish; x += SCREEN_PIXEL_SIZE.x) {
            for (float y = -screen.y; y <= screen.y && !isFinish; y += SCREEN_PIXEL_SIZE.y) {
                vec4 textureOutline = texture(TEXTURE, SCREEN_UV + vec2(x, y), 0.0);
                if ( textureOutline.a != 0.0) {
                    COLOR = color;
                    isFinish = true;
                }
            }
        }
        if (!isFinish) {
            COLOR = vec4(0, 0, 0, 0);
        }
    } else {
        COLOR = vec4(0, 0, 0, 0);
    }
}

相关文章

网友评论

      本文标题:【Godot】教你实现完美的3D模型描边

      本文链接:https://www.haomeiwen.com/subject/zooobktx.html