You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Godot空间顶点着色器中VERTEX变量的实际取值范围疑问

Godot空间着色器中VERTEX变量的取值说明

首先明确:VERTEX变量的取值范围和你使用的模型本身的尺寸直接相关,不是固定的-0.5到+0.5。

以你用的球体为例:

  • 默认创建的Godot球体,本地空间下的顶点范围是-1到+1(因为默认球体直径为2单位,半径1),所以VERTEX的x、y、z轴取值都会在-1到+1之间浮动。
  • 如果你在编辑器里缩放了球体(比如改成(2,2,2)),VERTEX的取值范围会同步变成-2到+2,顶点位置会跟着模型缩放变化。

关于2D和3D着色器原点的差异:

  • 2D着色器默认以左上角为原点,这是因为2D渲染通常基于屏幕/纹理坐标系,这类坐标系习惯采用左上角作为原点。
  • 3D空间着色器的VERTEX基于模型的本地空间,原点在模型的几何中心(也就是编辑器里看到的模型轴心点),所有顶点坐标都是相对于这个中心的位置值。

给你一个验证的小方法:
可以在顶点着色器里添加代码输出顶点值,直观查看实际范围:

shader_type spatial;

void vertex(){
    print(VERTEX.x);
    VERTEX.y -= VERTEX.x;
}

运行游戏后,控制台会输出球体顶点的x坐标,你就能直接确认VERTEX的实际取值区间。


内容的提问来源于stack exchange,提问作者Another_coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 00:39:54