概念页
Godot 常见着色技巧对照
Common Godot Shader Techniques
把社区与教程里反复出现的 2D/3D 技巧对照到图形学概念:溶解、描边、风摆、水面、后处理边缘——实现细节以 raw 抽样与官方为准,公式见图形学页。
技巧对照表
| 技巧 | 常见做法(Godot) | 图形学/数学锚点 |
|---|---|---|
| 溶解 | noise/random(uv) + step/smoothstep 改 alpha;像素风先 floor UV | 伪随机、阈值阈值 |
| 描边 | 邻域采样 alpha;或深度/法线差分后处理 | 边缘检测、后处理 |
| 风摆 | vertex 位移或 fragment UV 偏移;像素风 round 到 texel | 顶点动画、植被 |
| 软形状/环 | distance + smoothstep 遮罩相减 | SDF 思维 |
| 水面/传送门 | 时间周期函数 + 噪声扰动 UV/距离 | 程序噪声、折射近似 |
| 屏幕特效 | hint_screen_texture 等读屏(随版本 API) | 全屏 pass |
应用建议
- 先在 canvas_item 小精灵验证,再移植 spatial。
- 像素艺术:所有效果优先「按 texel 吸附」,避免在显示像素上溶解。
取舍
- 一种效果多种实现:选可维护、可调 uniform 者,而非最短代码。
- 后处理依赖渲染器与深度预通道——Compatibility 上可能不可用。
参见
出处
相关页面
游戏开发 · GodotGodot 着色器入门Godot Shading LanguageGDShader 是面向 Godot 的 GLSL 简化方言。shadertype 决定用途:canvasitem(2D)、spatial(3D)、particles、sky、fog。材质引用 Shader;uniform 暴露参数。理论公式见图形学页;此处只谈引擎形态与入门路径。游戏开发 · GodotGodot Shaders 社区库索引Godot Shaders Library Indexgodotshaders.com 是社区驱动的 Godot 着色器库:按 Canvas Item / Spatial / Particle / Sky 等浏览与下载片段。本 wiki 只建索引与抽样要点,不镜像上千源码。图形学着色器伪随机Shader Pseudorandom片元着色器里没有真正的「每次调用都不同」的随机:rand(x) 必须是确定性伪随机——同一输入永远同一输出。常用手法是 fract(sin(x)大数);二维则用 dot 把 vec2 压成标量再喂给同一套路。把空间 floor 成格子后,格子共享一个随机值,就能在秩序与混沌之间做生成设计。图形学着色器纹理采样Shader Texture SamplingGPU 把图像存成 sampler2D:一张浮点向量的「表」,坐标连续时硬件做插值。片元里用 texture2D(sampler, uv)(现代 GLSL 为 texture)按归一化 UV 取色。BoS 强调:通道是 [0,1] 连续域、可越界重复、可用噪声扭曲 UV——图像变成可拉伸的「数码软垫」,为后处理与光学玩具式特效铺路。图形学透明渲染与 Alpha 混合Transparency & Alpha Blending本页讲最简单的"视角相关"透明:半透明物体只衰减其后方物体的颜色。z-buffer 每像素只存一个表面,所以透明物体通常要从后往前用 over 运算符混合;顺序无关透明 (OIT) 方法用多遍渲染、逐像素链表或近似公式避免排序,各有内存、性能或准确性代价。预乘 alpha 让过滤、混合和合成更正确高效。图形学植被程序动画与着色Vegetation Procedural Animation & Shading游戏里大片草木不能靠蒙皮关键帧模拟。实用做法是在 GPU 上用风场做程序弯曲,并把叶片着色拆成廉价的透光近似与环境遮蔽。CryENGINE 2 /《Crysis》把主弯曲、叶缘细节波与次表面贴图组合成可上万实例的管线。