# FaceSDF **Repository Path**: lxd_sun_admin/faceSDF ## Basic Information - **Project Name**: FaceSDF - **Description**: 以着色器研究为目的建立的Godot动漫阴影着色器。 - **Primary Language**: Unknown - **License**: CC0-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-23 - **Last Updated**: 2026-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

FACE-SDF

![Static Badge](https://img.shields.io/badge/Godot_Shader-blue?logo=godotengine&logoColor=white)
## 介绍
动漫脸部阴影着色器,使用参考案例/教程翻译至Godot着色器。
尝试将Unity的着色器代码/可视化着色器翻译至Godot着色器。
参考了一些示例,并且将可能遇到的问题进行改进。
1. https://youtu.be/WR_SP4LmOlw?si=lfh9Zi-sJM4t0VjC
2. https://youtu.be/LKR1ITdOeKM?si=Nh6wvRhcAA4_7p6M
尽管如此,这个着色器仍然有许多问题。 ## 问题
1.点光的阴影方向可能不太准确。(也有可能是准确的,需要反馈。)
2.目前暂无办法将阴影边缘平滑处理。
3.阴影的过渡速度稍快。
提示:如果必须应用到你的游戏项目,请仔细阅读该着色器目前遇到的问题。 ## 修改
1.转换了3D空间使其兼容。
2.颜色着色器方面进行了细微修改。 ## 使用提示
1.需要一个SDF图片和模型的颜色图片。
2.需要一个专门处理脸部的材质槽,并且带UV。
3.为了消除阴影边缘的锯齿感,可以在导入时设置以下选项: ``` 压缩 --> 模式 = lossless Mipmap --> 生成 = false(关闭) 检测3D --> 压缩至 = Disabled ```
4.为了阴影精准投射,需要加入以下代码: ```gdscript func physics_process(delta): body_mesh.get_surface_override_material(0).set("shader_parameter/forward", abs(Vector3.FORWARD * self.transform.origin.normalized())) body_mesh.get_surface_override_material(0).set("shader_parameter/right", -abs(Vector3.RIGHT * self.transform.origin.normalized())) # 建议添加Marker3D以辅助对准向量。 ```
5.如果出现阴影从相反的方向投射,请直接用减法反转,例如: ``` Vector3.RIGHT * -self.transform.origin ``` ## 着色器参数
`Base Texture` 彩色底图,即模型原来绘画的颜色
`Color` 颜色,混合彩色底图
`Shadow` 阴影颜色
`Forward` 向前向量,用于对准向前坐标,通常是 z = 1.0。
`Right` 向右向量,用于对准向右坐标,通常是 x = 1.0。
`SDF` SDF贴图,必须由自己在模型绘画并生成。

提示:`Forward` 和 `Right`通常无需手动设置,导出这两者的变量是为了可以在脚本上设置向前和向右的坐标,参见 “使用提示” 第四条。