VisualServer¶
Inherits: Object
任何可见的东西的服务器。
描述¶
任何可见对象的服务。VisualServer是所有可见对象的API后端。整个场景系统安装在它上面来显示。
VisualServer是完全不透明的,它的内部结构的完全的具体实现不能被访问。
VisualServer可以用来完全绕过场景系统。
可使用*_create
函数创建资源。
所有的对象都被绘制到视窗中。你可以使用附在SceneTree上的Viewport,或者用viewport_create自己创建一个。当使用自定义场景或画布时,需要使用viewport_set_scenario或viewport_attach_canvas将场景或画布附加到视窗上。
在3D中,所有的视觉对象都必须与一个场景相关联。场景是世界的一个视觉表现。如果从一个正在运行的游戏中访问视觉服务,场景可以通过Spatial.get_world从场景树中的任何Spatial节点访问。另外,可以用scenario_create创建一个场景。
相类似地,在2D中,需要一个画布来绘制所有的画布项目。
在3D中,所有可见的对象都是由资源和实例组成。资源可以是网格、粒子系统、光或任何其他3D对象。为了使资源可见,必须使用instance_set_base连接到一个实例。实例也必须使用instance_set_scenario附加到场景中,以便可见。
在2D中,所有可见对象都是某种形式的画布项目。为了可见,一个画布项需要是连接到视窗的画布的子项,或者它需要是最终连接到画布的另一个画布项的子项。
教程¶
属性¶
方法¶
信号¶
frame_post_draw ( )
在VisualServer完成更新所有视窗后,在帧的最后发出。
frame_pre_draw ( )
在VisualServer更新所有视窗之前,在帧的开始发出。
枚举¶
enum CubeMapSide:
CUBEMAP_LEFT = 0 --- 标记立方体贴图的左侧。
CUBEMAP_RIGHT = 1 --- 标记立方体贴图cubemap的右侧。
CUBEMAP_BOTTOM = 2 --- 标记立方体图cubemap的底部。
CUBEMAP_TOP = 3 --- 标记cubemap的顶面。
CUBEMAP_FRONT = 4 --- 标记立方体贴图的正面。
CUBEMAP_BACK = 5 --- 标记立方体贴图的背面。
enum TextureType:
TEXTURE_TYPE_2D = 0 --- 具有 2 个维度,宽度和高度的法线纹理。
TEXTURE_TYPE_CUBEMAP = 2 --- 由六个面组成的纹理,可以在着色器中使用
vec3
查找。TEXTURE_TYPE_2D_ARRAY = 3 --- 一组二维纹理。
TEXTURE_TYPE_3D = 4 --- 具有宽度、高度和深度的 3 维纹理。
enum TextureFlags:
TEXTURE_FLAG_MIPMAPS = 1 --- 生成多级渐远纹理,它是同一纹理的较小版本,在放大时使用,保持长宽比。
TEXTURE_FLAG_REPEAT = 2 --- 重复纹理,而不是限制在边缘。
TEXTURE_FLAG_FILTER = 4 --- 使用放大过滤器,以实现纹理的平滑放大。
TEXTURE_FLAG_ANISOTROPIC_FILTER = 8 --- 使用各向异性的多级渐远纹理过滤。生成具有不同长宽比的同一纹理的较小版本。
当从斜角观看时,这会产生更好看的纹理。
TEXTURE_FLAG_CONVERT_TO_LINEAR = 16 --- 将纹理转换为 sRGB 颜色空间。
TEXTURE_FLAG_MIRRORED_REPEAT = 32 --- 使用镜像的交替部分重复纹理。
TEXTURE_FLAG_USED_FOR_STREAMING = 2048 --- 纹理是视频表面。
TEXTURE_FLAGS_DEFAULT = 7 --- 默认标志。启用 TEXTURE_FLAG_MIPMAPS、TEXTURE_FLAG_REPEAT 和 TEXTURE_FLAG_FILTER 。
enum ShaderMode:
SHADER_SPATIAL = 0 --- 着色器是一个 3D 着色器。
SHADER_CANVAS_ITEM = 1 --- 着色器是一个 2D 着色器。
SHADER_PARTICLES = 2 --- 着色器是一个粒子着色器。
SHADER_MAX = 3 --- 代表ShaderMode枚举的大小。
enum ArrayType:
ARRAY_VERTEX = 0 --- 数组是一个顶点数组。
ARRAY_NORMAL = 1 --- 数组是普通数组。
ARRAY_TANGENT = 2 --- 数组是一个切线数组。
ARRAY_COLOR = 3 --- 数组是一个颜色数组。
ARRAY_TEX_UV = 4 --- 数组是一个 UV 坐标数组。
ARRAY_TEX_UV2 = 5 --- 数组是第二个 UV 坐标的 UV 坐标数组。
ARRAY_BONES = 6 --- 数组包含骨骼信息。
ARRAY_WEIGHTS = 7 --- 数组是重量信息。
ARRAY_INDEX = 8 --- 数组是索引数组。
ARRAY_MAX = 9 --- 表示ArrayType枚举的大小。
enum ArrayFormat:
ARRAY_FORMAT_VERTEX = 1 --- 用于标记顶点数组的标志。
ARRAY_FORMAT_NORMAL = 2 --- 用于标记正常数组的标志。
ARRAY_FORMAT_TANGENT = 4 --- 用于标记切线数组的标志。
ARRAY_FORMAT_COLOR = 8 --- 用于标记颜色数组的标记。
ARRAY_FORMAT_TEX_UV = 16 --- 用于标记 UV 坐标数组的标志。
ARRAY_FORMAT_TEX_UV2 = 32 --- 用于标记第二个UV坐标的UV坐标数组的标志。
ARRAY_FORMAT_BONES = 64 --- 用来标记骨骼信息数组的标志。
ARRAY_FORMAT_WEIGHTS = 128 --- 用于标记重量数组的标记。
ARRAY_FORMAT_INDEX = 256 --- 用于标记索引数组的标志。
ARRAY_COMPRESS_VERTEX = 512 --- 用于标记压缩(半精度浮点)顶点数组的标志。
ARRAY_COMPRESS_NORMAL = 1024 --- 曾经用于标记压缩(半精度浮点)法向数组的 Flag。
ARRAY_COMPRESS_TANGENT = 2048 --- 曾经用于标记压缩(半精度浮点)切向数组的Flag。
ARRAY_COMPRESS_COLOR = 4096 --- 曾用于标记压缩(半精度浮点)颜色数组的Flag。
ARRAY_COMPRESS_TEX_UV = 8192 --- 曾用于标记压缩(半精度浮点)UV 坐标数组的 Flag。
ARRAY_COMPRESS_TEX_UV2 = 16384 --- 曾用于标记第二套UV坐标的压缩(半精度浮点)UV坐标数组的Flag。
ARRAY_COMPRESS_BONES = 32768 --- 用于标记压缩骨骼数组的标志。
ARRAY_COMPRESS_WEIGHTS = 65536 --- 用于标记压缩(半精度浮点)权重数组的标志。
ARRAY_COMPRESS_INDEX = 131072 --- 曾用于标记压缩索引数组的Flag。
ARRAY_FLAG_USE_2D_VERTICES = 262144 --- 曾用于标记包含2D顶点的数组的Flag。
ARRAY_FLAG_USE_16_BIT_BONES = 524288 --- 用于标记数组使用16位骨骼而不是8位的标志。
ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION = 2097152 --- 标志用于标记数组使用法线和切线向量的八面表示法,而不是笛卡尔式。
ARRAY_COMPRESS_DEFAULT = 2194432 --- 用于快速设置标志ARRAY_COMPRESS_NORMAL、ARRAY_COMPRESS_TANGENT、ARRAY_COMPRESS_COLOR、ARRAY_COMPRESS_TEX_UV、ARRAY_COMPRESS_TEX_UV2、ARRAY_COMPRESS_WEIGHTS 和ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION 。
enum PrimitiveType:
PRIMITIVE_POINTS = 0 --- 基本网格绘制由点组成。
PRIMITIVE_LINES = 1 --- 基本网格绘制由线条组成。
PRIMITIVE_LINE_STRIP = 2 --- 基本网格的绘制由一条首尾闭合的线条组成。
PRIMITIVE_LINE_LOOP = 3 --- 绘制的图元包括一个线环,即在最后一个和第一个顶点之间有一条线的线条。
PRIMITIVE_TRIANGLES = 4 --- 基本网格的绘制由三角形组成。
PRIMITIVE_TRIANGLE_STRIP = 5 --- 基本网格绘制由一个三角形条组成(最后3个顶点总是组合成一个三角形)。
PRIMITIVE_TRIANGLE_FAN = 6 --- 图元绘制由三角形条组成,最后3个顶点总是组合成一个三角形。
PRIMITIVE_MAX = 7 --- 表示 PrimitiveType 枚举的大小。
enum BlendShapeMode:
BLEND_SHAPE_MODE_NORMALIZED = 0 --- 混合形状是被归一化了的。
BLEND_SHAPE_MODE_RELATIVE = 1 --- 混合形状相对于基础的权重。
enum LightType:
LIGHT_DIRECTIONAL = 0 --- 是定向(日光)灯。
LIGHT_OMNI = 1 --- 是泛光灯。
LIGHT_SPOT = 2 --- 是聚光灯。
enum LightParam:
LIGHT_PARAM_ENERGY = 0 --- 灯光的能量。
LIGHT_PARAM_INDIRECT_ENERGY = 1 --- 与间接光(光反射)一起使用的二次倍增器。
LIGHT_PARAM_SIZE = 2 --- 灯光的大小,目前仅用于烘焙光照贴图中的柔和阴影。
LIGHT_PARAM_SPECULAR = 3 --- 灯光对镜面反射的影响。
LIGHT_PARAM_RANGE = 4 --- 灯光的范围。
LIGHT_PARAM_ATTENUATION = 5 --- 光线的衰减。
LIGHT_PARAM_SPOT_ANGLE = 6 --- 聚光灯的角度。
LIGHT_PARAM_SPOT_ATTENUATION = 7 --- 聚光灯的衰减。
LIGHT_PARAM_CONTACT_SHADOW_SIZE = 8 --- 缩放阴影的颜色。
LIGHT_PARAM_SHADOW_MAX_DISTANCE = 9 --- 阴影被渲染的最大距离。
LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET = 10 --- 第一次拆分所占据的阴影图集的比例。
LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET = 11 --- 第二次拆分所占用的阴影图集的比例。
LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET = 12 --- 第三次拆分所占用的阴影图集的比例。第四个拆分占据了其余部分。
LIGHT_PARAM_SHADOW_NORMAL_BIAS = 13 --- 法线偏移,用于抵消物体法线的阴影查找。可以用来修复自阴影的伪影。
LIGHT_PARAM_SHADOW_BIAS = 14 --- 对阴影查找进行偏移,以修复自我阴影的假象。
LIGHT_PARAM_SHADOW_BIAS_SPLIT_SCALE = 15 --- 增加对进一步分割的偏差,以修复仅在远离相机的地方发生的自身阴影。
LIGHT_PARAM_MAX = 16 --- 代表LightParam枚举的大小。
enum LightBakeMode:
LIGHT_BAKE_DISABLED = 0
LIGHT_BAKE_INDIRECT = 1
LIGHT_BAKE_ALL = 2
enum LightOmniShadowMode:
LIGHT_OMNI_SHADOW_DUAL_PARABOLOID = 0 --- 对泛光灯使用双抛物面阴影贴图。
LIGHT_OMNI_SHADOW_CUBE = 1 --- 对泛光灯使用立方体贴图阴影贴图。比双抛物面更慢但质量更好。
enum LightOmniShadowDetail:
LIGHT_OMNI_SHADOW_DETAIL_VERTICAL = 0 --- 在计算阴影贴图时,在垂直方向上使用更多的细节。
LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL = 1 --- 在计算阴影贴图时,在水平方向上使用更多的细节。
enum LightDirectionalShadowMode:
LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL = 0 --- 对平行光使用正交阴影投影。
LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS = 1 --- 使用平行光时,使用 2 个分割进行阴影投影。
LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS = 2 --- 使用平行光时,使用 4 个分割进行阴影投影。
enum LightDirectionalShadowDepthRangeMode:
LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE = 0 --- 当相机移动时,保持阴影稳定,但有效分辨率较低。
LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_OPTIMIZED = 1 --- 优化阴影贴图的使用,提高有效分辨率。但可能会导致阴影轻微移动或闪烁。
enum ViewportUpdateMode:
VIEWPORT_UPDATE_DISABLED = 0 --- 不要更新视窗。
VIEWPORT_UPDATE_ONCE = 1 --- 更新一次视窗,然后设置为禁用。
VIEWPORT_UPDATE_WHEN_VISIBLE = 2 --- 只要视窗是可见的,就更新视窗。
VIEWPORT_UPDATE_ALWAYS = 3 --- 始终更新视窗。
enum ViewportClearMode:
VIEWPORT_CLEAR_ALWAYS = 0 --- 在绘图之前,视窗总是被清空。
VIEWPORT_CLEAR_NEVER = 1 --- 在绘图之前,视窗永远不会被清空。
VIEWPORT_CLEAR_ONLY_NEXT_FRAME = 2 --- 视窗被清除一次,然后清除模式设置为 VIEWPORT_CLEAR_NEVER。
enum ViewportMSAA:
VIEWPORT_MSAA_DISABLED = 0 --- 多重采样抗锯齿被禁用。
VIEWPORT_MSAA_2X = 1 --- 多重采样抗锯齿设置为 2×。
VIEWPORT_MSAA_4X = 2 --- 多重采样抗锯齿设置为 4×。
VIEWPORT_MSAA_8X = 3 --- 多重采样抗锯齿设置为 8×。
VIEWPORT_MSAA_16X = 4 --- 多采样抗锯齿设置为16×。
VIEWPORT_MSAA_EXT_2X = 5 --- 多重采样抗锯齿设置为外部纹理的2倍。为GLES2 Android VR(Oculus Quest和Go)提供的特殊模式。
VIEWPORT_MSAA_EXT_4X = 6 --- 多重采样抗锯齿在外部纹理上被设置为4倍。为GLES2 Android VR(Oculus Quest和Go)提供的特殊模式。
enum ViewportUsage:
VIEWPORT_USAGE_2D = 0 --- 视窗并不渲染3D,而是渲染采样。
VIEWPORT_USAGE_2D_NO_SAMPLING = 1 --- 视窗并不渲染3D,也不进行采样。
VIEWPORT_USAGE_3D = 2 --- 视窗渲染 3D 效果。
VIEWPORT_USAGE_3D_NO_EFFECTS = 3 --- 视窗渲染的是3D,但没有效果。
enum ViewportRenderInfo:
VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME = 0 --- 在单帧中绘制的对象的数量。
VIEWPORT_RENDER_INFO_VERTICES_IN_FRAME = 1 --- 在单个帧中绘制的顶点数。
VIEWPORT_RENDER_INFO_MATERIAL_CHANGES_IN_FRAME = 2 --- 此帧期间材质更改的数量。
VIEWPORT_RENDER_INFO_SHADER_CHANGES_IN_FRAME = 3 --- 这一帧中着色器变化的数量。
VIEWPORT_RENDER_INFO_SURFACE_CHANGES_IN_FRAME = 4 --- 这一帧中表面变化的数量。
VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME = 5 --- 此帧期间的绘制调用数。
VIEWPORT_RENDER_INFO_2D_ITEMS_IN_FRAME = 6 --- 此帧所绘制的2d项的数量。
VIEWPORT_RENDER_INFO_2D_DRAW_CALLS_IN_FRAME = 7 --- 在这一帧中,2d绘制所调用的数量。
VIEWPORT_RENDER_INFO_MAX = 8 --- 代表ViewportRenderInfo枚举的大小。
enum ViewportDebugDraw:
VIEWPORT_DEBUG_DRAW_DISABLED = 0 --- 调试绘制被禁用。默认设置。
VIEWPORT_DEBUG_DRAW_UNSHADED = 1 --- 调试绘制将对象设置为无阴影。
VIEWPORT_DEBUG_DRAW_OVERDRAW = 2 --- 将清除颜色覆盖为
(0,0,0,0)
。VIEWPORT_DEBUG_DRAW_WIREFRAME = 3 --- 调试绘制 在线框中绘制对象。
enum ScenarioDebugMode:
SCENARIO_DEBUG_DISABLED = 0 --- 不要使用调试模式。
SCENARIO_DEBUG_WIREFRAME = 1 --- 以线框模型绘制所有对象。
SCENARIO_DEBUG_OVERDRAW = 2 --- 以显示有多少过度绘制的方式绘制对象。当一个像素部分被绘制和着色,然后另一个物体将其覆盖时,就会发生过度绘制。为了优化一个场景,你应该减少过度绘制。
SCENARIO_DEBUG_SHADELESS = 3 --- 绘制没有阴影的所有物体。相当于将所有物体的着色器设置为
unshaded
。
enum InstanceType:
INSTANCE_NONE = 0 --- 实例没有类型。
INSTANCE_MESH = 1 --- 该实例是一个网格。
INSTANCE_MULTIMESH = 2 --- 该实例是一个多网格。
INSTANCE_IMMEDIATE = 3 --- 该实例是一个即时几何图形。
INSTANCE_PARTICLES = 4 --- 该实例是一个粒子发射器。
INSTANCE_LIGHT = 5 --- 该实例是一个灯。
INSTANCE_REFLECTION_PROBE = 6 --- 该实例是一个反射探针。
INSTANCE_GI_PROBE = 7 --- 该实例是一个GI探针。
INSTANCE_LIGHTMAP_CAPTURE = 8 --- 该实例是一个光照贴图捕获。
INSTANCE_MAX = 9 --- 代表InstanceType枚举的大小。
INSTANCE_GEOMETRY_MASK = 30 --- 几何体实例(网格、多网格、即时和粒子)的标志的组合。
enum InstanceFlags:
INSTANCE_FLAG_USE_BAKED_LIGHT = 0 --- 允许在烘焙照明中使用实例。
INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE = 1 --- 当设置时,手动请求在下一帧绘制几何图形。
INSTANCE_FLAG_MAX = 2 --- 代表InstanceFlags枚举的大小。
enum ShadowCastingSetting:
SHADOW_CASTING_SETTING_OFF = 0 --- 禁用这个实例的阴影。
SHADOW_CASTING_SETTING_ON = 1 --- 从此实例投下阴影。
SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2 --- 在渲染对象的阴影时禁用背面剔除。这会稍微慢一些,但可能会产生更正确的阴影。
SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3 --- 仅渲染对象的阴影。对象本身不会被绘制。
enum NinePatchAxisMode:
NINE_PATCH_STRETCH = 0 --- 九宫格在需要的地方被拉伸。
NINE_PATCH_TILE = 1 --- 九宫格在需要的地方填充瓷砖。
NINE_PATCH_TILE_FIT = 2 --- 九宫格在需要的地方填充瓷砖,并在需要时将它们拉伸一点。
enum CanvasLightMode:
CANVAS_LIGHT_MODE_ADD = 0 --- 向画布添加浅色。
CANVAS_LIGHT_MODE_SUB = 1 --- 从画布中减去浅色。
CANVAS_LIGHT_MODE_MIX = 2 --- 灯光根据透明度增加颜色。
CANVAS_LIGHT_MODE_MASK = 3 --- 灯光根据遮罩增加颜色。
enum CanvasLightShadowFilter:
CANVAS_LIGHT_FILTER_NONE = 0 --- 不要对画布上的光影应用滤镜。
CANVAS_LIGHT_FILTER_PCF3 = 1 --- 使用PCF3过滤法来过滤画布的光影。
CANVAS_LIGHT_FILTER_PCF5 = 2 --- 使用PCF5过滤法来过滤画布的光影。
CANVAS_LIGHT_FILTER_PCF7 = 3 --- 使用PCF7过滤法来过滤画布的光影。
CANVAS_LIGHT_FILTER_PCF9 = 4 --- 使用PCF9过滤法来过滤画布的光影。
CANVAS_LIGHT_FILTER_PCF13 = 5 --- 使用PCF13过滤法来过滤画布的光影。
enum CanvasOccluderPolygonCullMode:
CANVAS_OCCLUDER_POLYGON_CULL_DISABLED = 0 --- 禁用画布遮挡物的剔除。
CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE = 1 --- 画布遮挡器的剔除是顺时针的。
CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE = 2 --- 画布遮挡物的剔除是逆时针的。
enum RenderInfo:
INFO_OBJECTS_IN_FRAME = 0 --- 框架中的对象数量。
INFO_VERTICES_IN_FRAME = 1 --- 框架中顶点的数量。
INFO_MATERIAL_CHANGES_IN_FRAME = 2 --- 框架中修改材质的数量。
INFO_SHADER_CHANGES_IN_FRAME = 3 --- 帧中重新绑定的着色器数量。
INFO_SURFACE_CHANGES_IN_FRAME = 4 --- 帧中的表面更改量。
INFO_DRAW_CALLS_IN_FRAME = 5 --- 帧中绘制调用的数量。
INFO_2D_ITEMS_IN_FRAME = 6 --- 帧中2d项的数量。
INFO_2D_DRAW_CALLS_IN_FRAME = 7 --- 帧中2d绘制调用数量。
INFO_USAGE_VIDEO_MEM_TOTAL = 8 --- 在 GLES2 和 GLES3 渲染后端中未实现,始终返回 0。
INFO_VIDEO_MEM_USED = 9 --- 使用的视频内存的数量,即纹理和顶点内存的总和。
INFO_TEXTURE_MEM_USED = 10 --- 使用的纹理内存的数量。
INFO_VERTEX_MEM_USED = 11 --- 使用的顶点内存数量。
enum Features:
FEATURE_SHADERS = 0 --- 硬件支持着色器。这个枚举目前在Godot 3.x中没有使用。
FEATURE_MULTITHREADED = 1 --- 硬件支持多线程。这个枚举目前在Godot 3.x中没有使用。
enum MultimeshTransformFormat:
MULTIMESH_TRANSFORM_2D = 0 --- 使用 Transform2D 存储 MultiMesh 变换。
MULTIMESH_TRANSFORM_3D = 1 --- 使用 Transform 存储 MultiMesh 变换。
enum MultimeshColorFormat:
MULTIMESH_COLOR_NONE = 0 --- MultiMesh不使用每个实例的颜色。
MULTIMESH_COLOR_8BIT = 1 --- 多网格颜色使用每个组件 8 位。这将颜色打包成一个浮点数。
MULTIMESH_COLOR_FLOAT = 2 --- 多网格颜色使用每个通道的浮点数。
enum MultimeshCustomDataFormat:
MULTIMESH_CUSTOM_DATA_NONE = 0 --- MultiMesh不使用自定义数据。
MULTIMESH_CUSTOM_DATA_8BIT = 1 --- 多网格自定义数据每个组件使用 8 位。这将 4 个组件的自定义数据打包到一个浮点数中。
MULTIMESH_CUSTOM_DATA_FLOAT = 2 --- 多网格自定义数据使用每个组件的浮点数。
enum ReflectionProbeUpdateMode:
REFLECTION_PROBE_UPDATE_ONCE = 0 --- 反射探针将更新一次反射,然后停止。
REFLECTION_PROBE_UPDATE_ALWAYS = 1 --- 反射探针将每帧更新。这种模式对于捕捉移动物体是必要的。
enum ParticlesDrawOrder:
PARTICLES_DRAW_ORDER_INDEX = 0 --- 按照粒子数组中出现的顺序绘制粒子。
PARTICLES_DRAW_ORDER_LIFETIME = 1 --- 根据粒子的寿命对其进行分类。
PARTICLES_DRAW_ORDER_VIEW_DEPTH = 2 --- 根据粒子与相机的距离对其进行排序。
enum EnvironmentBG:
ENV_BG_CLEAR_COLOR = 0 --- 用透明的颜色作为背景。
ENV_BG_COLOR = 1 --- 使用指定的颜色作为背景。
ENV_BG_SKY = 2 --- 使用天空资源作为背景。
ENV_BG_COLOR_SKY = 3 --- 使用自定义颜色作为背景,但使用天空作为阴影和反射。
ENV_BG_CANVAS = 4 --- 使用一个指定的画布层作为背景。这对在三维世界中实例化一个二维场景很有用。
ENV_BG_KEEP = 5 --- 不要清除背景,使用上一帧渲染的东西作为背景。
ENV_BG_MAX = 7 --- 代表EnvironmentBG枚举的大小。
enum EnvironmentDOFBlurQuality:
ENV_DOF_BLUR_QUALITY_LOW = 0 --- 使用最低的模糊质量。最快,但可能看起来不好。
ENV_DOF_BLUR_QUALITY_MEDIUM = 1 --- 使用中等模糊质量。
ENV_DOF_BLUR_QUALITY_HIGH = 2 --- 使用最高的模糊质量。看起来最好,但速度最慢。
enum EnvironmentGlowBlendMode:
GLOW_BLEND_MODE_ADDITIVE = 0 --- 在场景的顶部添加辉光的效果。
GLOW_BLEND_MODE_SCREEN = 1 --- 将辉光效果与屏幕相融合。不像添加物那样明亮。
GLOW_BLEND_MODE_SOFTLIGHT = 2 --- 在物体周围产生微妙的颜色扰动。
GLOW_BLEND_MODE_REPLACE = 3 --- 在没有底层场景的情况下,单独显示辉光效果。
enum EnvironmentToneMapper:
ENV_TONE_MAPPER_LINEAR = 0 --- 颜色怎么进来就怎么输出。
ENV_TONE_MAPPER_REINHARD = 1 --- 使用 Reinhard 色调映射器。
ENV_TONE_MAPPER_FILMIC = 2 --- 使用电影色调映射器。
ENV_TONE_MAPPER_ACES = 3 --- 使用 ACES 色调映射器。
ENV_TONE_MAPPER_ACES_FITTED = 4 --- 使用ACES的拟合色调图。
enum EnvironmentSSAOQuality:
ENV_SSAO_QUALITY_LOW = 0 --- 最低的屏幕空间环境遮挡质量。
ENV_SSAO_QUALITY_MEDIUM = 1 --- 中等质量的屏幕空间环境遮挡。
ENV_SSAO_QUALITY_HIGH = 2 --- 最高质量的屏幕空间环境遮挡。
enum EnvironmentSSAOBlur:
ENV_SSAO_BLUR_DISABLED = 0 --- 禁用 SSAO 的模糊设置。会使 SSAO 看起来噪点更多。
ENV_SSAO_BLUR_1x1 = 1 --- 对 SSAO 输出执行 1x1 模糊。
ENV_SSAO_BLUR_2x2 = 2 --- 对 SSAO 输出执行 2x2 模糊。
ENV_SSAO_BLUR_3x3 = 3 --- 对SSAO输出执行3x3模糊。使用它可以获得最平滑的SSAO。
常量¶
NO_INDEX_ARRAY = -1 --- 标记一个错误,表明索引数组为空。
ARRAY_WEIGHTS_SIZE = 4 --- 每个顶点的权重/骨骼数。
CANVAS_ITEM_Z_MIN = -4096 --- 画布项目的最小 Z 层。
CANVAS_ITEM_Z_MAX = 4096 --- 帆布项目的最大 Z 层。
MAX_GLOW_LEVELS = 7 --- 可用于发光后期处理效果的最大发光级别数。
MAX_CURSORS = 8 --- 在Godot 3.x中未使用的枚举。
MATERIAL_RENDER_PRIORITY_MIN = -128 --- 所有材质的最小渲染优先级。
MATERIAL_RENDER_PRIORITY_MAX = 127 --- 所有材质的最大渲染优先级。
属性说明¶
bool render_loop_enabled
Setter |
set_render_loop_enabled(value) |
Getter |
is_render_loop_enabled() |
如果false
,则完全禁用渲染,但引擎逻辑仍在处理中。即使禁用渲染,您也可以调用 force_draw 来绘制帧。
方法说明¶
设置在窗口边缘渲染的图像。
设置边距大小,其中呈现黑条(或图像,如果使用 black_bars_set_images)。
RID camera_create ( )
创建一个相机并将其添加到VisualServer中。它可以通过返回的RID进行访问。这个RID将用于所有camera_*
VisualServer函数。
一旦完成了对RID的处理,你将需要使用VisualServer的free_rid静态方法释放RID。
设置与此相机相关的剔除遮罩。剔除遮罩描述了此相机渲染的 3D 层。相当于Camera.cull_mask。
设置此相机所使用的环境。等同于Camera.environment。
设置相机使用锥形投影。此模式允许调整 offset
参数以创建“倾斜视锥”效果。
将相机设置为使用正交投影,也称为正射投影。物体在屏幕上保持相同的尺寸,无论它们有多远。
将相机设置为使用透视投影。屏幕上的物体在远处时变得更小。
设置相机的Transform。
如果 true
, 保留水平长宽比,相当于 Camera.KEEP_WIDTH。如果false
,保留垂直长宽比,相当于Camera.KEEP_HEIGHT。
RID canvas_create ( )
创建一个画布并返回指定的RID。可以用返回的RID来访问它。这个RID可在所有canvas_*
VisualServer函数中使用。
你一旦完成了RID处理,可使用VisualServer的free_rid静态方法释放RID。
在 CanvasItem 的绘制命令中添加圆形指令。
如果ignore是true
,VisualServer将不会执行剪裁。
void canvas_item_add_line ( RID item, Vector2 from, Vector2 to, Color color, float width=1.0, bool antialiased=false )
在 CanvasItem 的绘图命令中添加一条直线指令。
void canvas_item_add_mesh ( RID item, RID mesh, Transform2D transform=Transform2D( 1, 0, 0, 1, 0, 0 ), Color modulate=Color( 1, 1, 1, 1 ), RID texture, RID normal_map )
在 CanvasItem 的绘图指令中加入网格指令。
在CanvasItem的绘制指令中添加一个MultiMesh。目前只影响其aabb。
void canvas_item_add_nine_patch ( RID item, Rect2 rect, Rect2 source, RID texture, Vector2 topleft, Vector2 bottomright, NinePatchAxisMode x_axis_mode=0, NinePatchAxisMode y_axis_mode=0, bool draw_center=true, Color modulate=Color( 1, 1, 1, 1 ), RID normal_map )
在 CanvasItem 的绘制指令中添加九宫格图像。
请参阅 NinePatchRect 。
为CanvasItem的绘制指令添加粒子系统。
void canvas_item_add_polygon ( RID item, PoolVector2Array points, PoolColorArray colors, PoolVector2Array uvs=PoolVector2Array( ), RID texture, RID normal_map, bool antialiased=false )
在 CanvasItem 的绘图指令中添加多边形。
void canvas_item_add_polyline ( RID item, PoolVector2Array points, PoolColorArray colors, float width=1.0, bool antialiased=false )
在 CanvasItem 的绘制指令中添加多线段,多线段是指由多个点组成的具有一定宽度的线。
void canvas_item_add_primitive ( RID item, PoolVector2Array points, PoolColorArray colors, PoolVector2Array uvs, RID texture, float width=1.0, RID normal_map )
向 CanvasItem 的绘图指令添加一个基本网格。
在 CanvasItem 的绘图指令中添加矩形。
void canvas_item_add_set_transform ( RID item, Transform2D transform )
在CanvasItem的绘图指令中添加Transform2D指令。
这在执行时设置extra_matrix uniform 。这会影响到画布项的后续指令。
void canvas_item_add_texture_rect ( RID item, Rect2 rect, RID texture, bool tile=false, Color modulate=Color( 1, 1, 1, 1 ), bool transpose=false, RID normal_map )
在 CanvasItem 的绘图指令中添加纹理矩形。
void canvas_item_add_texture_rect_region ( RID item, Rect2 rect, RID texture, Rect2 src_rect, Color modulate=Color( 1, 1, 1, 1 ), bool transpose=false, RID normal_map, bool clip_uv=true )
在CanvasItem的绘制命令中添加带有区域设置的纹理矩形。
void canvas_item_add_triangle_array ( RID item, PoolIntArray indices, PoolVector2Array points, PoolColorArray colors, PoolVector2Array uvs=PoolVector2Array( ), PoolIntArray bones=PoolIntArray( ), PoolRealArray weights=PoolRealArray( ), RID texture, int count=-1, RID normal_map, bool antialiased=false, bool antialiasing_use_indices=false )
为 CanvasItem 的绘图命令添加三角形组。
void canvas_item_clear ( RID item )
清除CanvasItem并删除其中的所有命令。
RID canvas_item_create ( )
创建新的 CanvasItem 并返回其 RID。可以用返回的RID来访问它。这个RID可用于所有canvas_item_*
VisualServer函数。
一旦完成了你的RID处理,可使用VisualServer的free_rid静态方法释放RID。
为CanvasItem设置剪裁。
设置 CanvasItem 以将矩形复制到后台缓冲区。
为 CanvasItem 定义一个自定义的绘图矩形。
为正在渲染基于距离字段的字体的GUI元素,启用距离字段。
将 CanvasItem 设置为在其父项后面绘制。
设置 CanvasItem 的索引。
光线遮罩。关于其更多信息,请参阅LightOccluder2D。
为 CanvasItem 设置新材质。
设置调制 CanvasItem 及其子代的颜色。
设置CanvasItem的父级。父级可以是另一个画布项目,也可以是连接到视窗的根画布。
设置在没有子代的情况下调制 CanvasItem 的颜色。
设置 CanvasItem 的子代是否应按 y 坐标排序。
void canvas_item_set_transform ( RID item, Transform2D transform )
设置 CanvasItem 的 Transform2D。
设置 CanvasItem 是否使用其父级的材质。
设置画布项是否可见,包括其子代。
如果启用此选项,则父项的 Z 索引将添加到子项的 Z 索引中。
设置 CanvasItem 的 Z 索引,即它的绘制顺序(首先绘制数值较低的索引)。
将画布灯连接到画布上,并将其从以前的画布中取出。
RID canvas_light_create ( )
创建画布灯并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于所有 canvas_light_*
VisualServer 函数。
完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。
将光遮挡物添加到画布上,并将其从之前的画布中移除。
RID canvas_light_occluder_create ( )
创建灯光遮挡器并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于所有canvas_light_ocluder_*
VisualServer函数。
一旦完成了RID处理,可使用VisualServer的free_rid静态方法释放RID。
启用或禁用遮光器。
光线遮罩。关于其更多信息,请参阅LightOccluder2D。
设置光遮挡物的多边形。
void canvas_light_occluder_set_transform ( RID occluder, Transform2D transform )
设置光遮挡物的 Transform2D。
设置灯光的颜色。
启用或禁用画布灯。
设置画布灯的能量。
设置画布灯的高度。
光线遮罩。关于其更多信息,请参阅LightOccluder2D。
用于确定此画布灯光阴影影响哪些图层的二进制蒙版。有关光遮罩的更多信息,请参阅 LightOccluder2D。
使用此灯光渲染的图层范围。
void canvas_light_set_mode ( RID light, CanvasLightMode mode )
光的模式,详见CanvasLightMode。
设置灯光的纹理比例因子。相当于 Light2D.texture_scale。
设置阴影缓冲区的宽度,大小为2的n次幂。
设置画布灯的阴影颜色。
启用或禁用画布灯的阴影。