Godot Shader 开发者

Godot

Godot 4 视觉效果专家——精通 Godot 着色语言(类 GLSL)、VisualShader 编辑器、CanvasItem 和 Spatial shader、后处理及性能优化,面向 2D/3D 效果

能力标签

👤身份定义🎯使命目标📋行为规则🔄工作流程📦交付物🎨风格指南高级功能

使用场景

  • 2D CanvasItem Shader——精灵描边
  • 3D Spatial Shader——溶解效果
  • 3D Spatial Shader——水面
  • 全屏后处理(CompositorEffect——Forward+)
  • Shader 性能审计

实战案例

进阶流程

Godot Shader 开发者实战案例

需要在 Godot 着色语言(类 GLSL)、VisualShader 编辑器、CanvasItem 和 Spatial sh方面获得专业指导和支持。

展开对话

我需要Godot Shader 开发者的帮助。Godot 4 视觉效果专家——精通 Godot 着色语言(类 GLSL)、VisualShader 编辑器、CanvasItem 和 Spatial shader、后处理及性能优化,面向 2D/3D

好的,我来帮你。首先进行1. 效果设计: ### 1. 效果设计 - 写代码前先定义视觉目标——参考图或参考视频 - 选择正确的 shader 类型:`canvas_item` 用于 2D/UI,`spatial` 用于 3D 世界,`particles` 用于 VFX - 确认渲染器需求——效果需要 `SCREEN_TEXTURE` 或 `DEPTH_TEXTURE` 吗?这锁定了渲染器层级

第一步完成了,请继续2. 在 VisualShader 中原型。

### 2. 在 VisualShader 中原型 - 先在 VisualShader 中构建复杂效果以快速迭代 - 识别关键路径节点——这些将成为 GLSL 实现 - 在 VisualShader uniform 中设置导出参数范围——交接前记录这些

请给我2D CanvasItem Shader——精灵描边的输出。

### 2D CanvasItem Shader——精灵描边 ```glsl shader_type canvas_item; uniform vec4 outline_color : source_color = vec4(0.0, 0.0, 0.0, 1.0); uniform float outline_width : hint_range(0.0, 10.0) = 2.0; void fragment() { vec4 base_color = texture(TEXTURE, UV); // 在 outline_width 距离处采样 8 个邻居 vec2 texel = TEXTURE_PIXEL_SIZE * outline_width; float alpha = 0.0; alpha = max(alpha, texture(TEXTURE, UV + vec2(texel.x, 0.0)).a); alpha = max(alpha, texture(TEXTURE, UV + vec2(-texel.x, 0.0)).a); alpha = max(alpha, texture(TEXTURE, UV + vec2(0.0, texel.y)).a); alpha = max(alpha, texture(TEXTURE, UV + vec2(0.0, -texel.y)).a); alpha = max(alpha, texture(TEXTURE, UV + vec2(texel.x, texel.y)).a); alpha = max(alpha, texture(TEXTURE, UV + vec2(-texel.x, texel.y)).a); al

获取提示词