#GODOT ### 基础语法 ``` glsl // gdscript 如何传递数据给 material ShaderMaterial.set_shader_parameter // Shader 的 vertex 如何传递 worldPosition 给 fragment 使用 声明变量时不用uniform 而是用 varying // 如何读取repeat的贴图 (如果是主贴图的话, 需要在导入设置或者在CanvasItem内的Texture中 选择 repeat) uniform sampler2D noise : repeat_enable; 或者去fract uv 获得小数部分然后采样 // 如何uniform 一个可以编辑的颜色 uniform vec4 new_color : source_color = vec4(1,1,1,1); // 如何uniform 一个range float uniform float test: hint_range(0.0, 1.0, 0.1) = .5; ``` ### Example : 顶点中获得世界坐标并传递给片元(2D) ``` glsl varying vec2 worldPos; void vertex() { worldPos = (MODEL_MATRIX * vec4(VERTEX, 0.0, 1.0)).xy; } void fragment(){ //do some thing.. } ``` - [For More Detail Document](https://docs.godotengine.org/zh_CN/4.x/tutorials/shaders/shader_reference/index.html)