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次幂。
设置画布灯的阴影颜色。
启用或禁用画布灯的阴影。
- void canvas_light_set_shadow_filter ( RID light, CanvasLightShadowFilter filter )
设置画布灯的阴影过滤器,详见 CanvasLightShadowFilter 。
设置阴影渐变的长度。
使阴影变得平滑。数值越低越光滑。
设置灯光使用的纹理。等同于Light2D.texture。
设置灯光纹理的偏移量。等同于Light2D.offset。
- void canvas_light_set_transform ( RID light, Transform2D transform )
设置画布灯的 Transform2D。
设置将受此光影响的对象的 Z 范围。相当于 Light2D.range_z_min 和 Light2D.range_z_max。
- RID canvas_occluder_polygon_create ( )
创建新的光遮蔽器多边形并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于所有canvas_occluder_polygon_*
VisualServer函数。
一旦完成了RID处理,可使用VisualServer的free_rid静态方法释放RID。
- void canvas_occluder_polygon_set_cull_mode ( RID occluder_polygon, CanvasOccluderPolygonCullMode mode )
设置遮挡多边形剔除模式。详见 CanvasOccluderPolygonCullMode 。
- void canvas_occluder_polygon_set_shape ( RID occluder_polygon, PoolVector2Array shape, bool closed )
设置遮挡多边形的形状。
- void canvas_occluder_polygon_set_shape_as_lines ( RID occluder_polygon, PoolVector2Array shape )
将遮挡多边形的形状设置为线。
画布项目的副本将以镜像的局部偏移量Vector2被绘制。
调制给定画布中的所有颜色。
- RID directional_light_create ( )
创建定向灯并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于大多数light_*
VisualServer函数。
一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。
要在场景中放置,使用返回的RID,用instance_set_base将这个定向灯附加到一个实例上。
绘制一帧。此方法已被废弃,请使用force_draw代替。
- RID environment_create ( )
创建一个环境并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可在所有environment_*
VisualServer函数中使用。
一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。
- void environment_set_adjustment ( RID env, bool enable, float brightness, float contrast, float saturation, RID ramp )
设置用于 “调整 “后处理效果的数值。参阅Environment以了解更多细节。
- void environment_set_ambient_light ( RID env, Color color, float energy=1.0, float sky_contibution=0.0 )
设置环境光参数。详情请参阅 Environment。
- void environment_set_background ( RID env, EnvironmentBG bg )
设置环境的BGMode。相当于Environment.background_mode。
场景中空白区域的颜色显示(如果使用自定义颜色或颜色+天空背景模式)。
设置背景颜色的强度。
如果使用画布背景模式,设置要使用的最大层数。
- void environment_set_dof_blur_far ( RID env, bool enable, float distance, float transition, float far_amount, EnvironmentDOFBlurQuality quality )
设置用于 “DoF Far Blur” 后期处理效果的数值。参阅Environment。
- void environment_set_dof_blur_near ( RID env, bool enable, float distance, float transition, float far_amount, EnvironmentDOFBlurQuality quality )
设置用于 “DoF Near Blur” 后处理效果的数值。参阅Environment。
设置用于场景雾化的变量。更多细节见Environment。
- void environment_set_fog_depth ( RID env, bool enable, float depth_begin, float depth_end, float depth_curve, bool transmit, float transmit_curve )
设置用于雾化深度效果的变量。参阅Environment以了解更多细节。
- void environment_set_fog_height ( RID env, bool enable, float min_height, float max_height, float height_curve )
设置用于雾化高度效果的变量。参阅Environment以了解更多细节。
- void environment_set_glow ( RID env, bool enable, int level_flags, float intensity, float strength, float bloom_threshold, EnvironmentGlowBlendMode blend_mode, float hdr_bleed_threshold, float hdr_bleed_scale, float hdr_luminance_cap, bool bicubic_upscale, bool high_quality )
设置用于 “glow” 后处理效果的变量。参阅Environment。
当使用BGMode天空时,设置Sky作为环境的背景。相当于Environment.background_sky。
为背景 Sky 设置自定义字段。相当于 Environment.background_sky_custom_fov。
设置背景Sky的旋转,以Basis表示。相当于Environment.background_sky_orientation。
- void environment_set_ssao ( RID env, bool enable, float radius, float intensity, float radius2, float intensity2, float bias, float light_affect, float ao_channel_affect, Color color, EnvironmentSSAOQuality quality, EnvironmentSSAOBlur blur, float bilateral_sharpness )
设置用于 “屏幕空间环境遮蔽(SSAO)”后处理效果的变量。参阅Environment。
- void environment_set_ssr ( RID env, bool enable, int max_steps, float fade_in, float fade_out, float depth_tolerance, bool roughness )
设置用于 “屏幕空间反射 “后处理效果的变量。更多细节见Environment。
- void environment_set_tonemap ( RID env, EnvironmentToneMapper tone_mapper, float exposure, float white, bool auto_exposure, float min_luminance, float max_luminance, float auto_exp_speed, float auto_exp_grey )
设置用于 “tonemap “后处理效果的变量。参阅Environment以了解更多细节。
- void finish ( )
删除缓冲区并清除测试立方体。
当函数被调用时,强制绘制一个框架。绘制一个框架会更新所有被设置为要更新的Viewport。使用时要特别小心。
- void force_sync ( )
同步线程。
- void free_rid ( RID rid )
尝试释放 VisualServer 中的对象。
- int get_render_info ( RenderInfo info )
返回特定信息,请参阅 RenderInfo 。
- RID get_test_cube ( )
返回测试立方体的ID。如果不存在,则创建一个。
- RID get_test_texture ( )
返回测试纹理的id。如果不存在,则创建一个。
- String get_video_adapter_name ( ) const
返回视频适配器的名称(例如:”GeForce GTX 1080/PCIe/SSE2”)。
注意:当运行一个精简或服务器可执行文件时,这个函数返回一个空字符串。
- String get_video_adapter_vendor ( ) const
返回视频适配器的供应商(例如,”NVIDIA Corporation”)。
注意: 当运行精简或服务器可执行文件时,该函数返回一个空字符串。
- RID get_white_texture ( )
返回白色纹理的id。如果不存在,则创建一个。
- RID gi_probe_create ( )
创建 GI 探针并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于所有 gi_probe_*
VisualServer 函数。
完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。
要放置在场景中,请使用返回的 RID, 使用 instance_set_base 将此 GI 探针附加到实例。
返回GI探针的偏置值。偏置是用来避免自我遮挡的。相当于GIProbeData.bias。
返回覆盖GI探针全部范围的轴对齐的边界框。
返回由gi_probe_set_cell_size设置的单元大小。
- PoolIntArray gi_probe_get_dynamic_data ( RID probe ) const
返回GI探针所使用的数据。
返回该GI探针的动态范围设置。相当于GIProbe.dynamic_range。
返回这个GI探针的能量乘数。相当于GIProbe.energy。
返回该GI探针的法线偏置。相当于GIProbe.normal_bias。
返回这个GI探针的传播值。相当于GIProbe.propagation。
返回由gi_probe_set_to_cell_xform设置的变换。
如果与此GI探针相关的数据被压缩,返回true
。相当于GIProbe.compress。
如果 GI 探针设置为内部,则返回 true
,这意味着它不考虑天空光。相当于GIProbe.interior。
设置偏置值以避免自遮挡。相当于GIProbe.bias。
设置覆盖 GI 探针范围的轴对齐边界框。
设置 GI 探针内单个单元的大小。
设置GI探针数据的压缩设置。压缩后的数据将占用更少的空间,但可能看起来更糟糕。相当于GIProbe.compress。
- void gi_probe_set_dynamic_data ( RID probe, PoolIntArray data )
设置用于照明计算的GI探针的数据。通常这是在GIProbe节点内部创建和调用的。你不应该尝试自己设置。
设定GI探针的动态范围。动态范围设定了灯光的亮度限制。较小的范围可以捕捉到更多的细节,但是限制了灯光的亮度。相当于GIProbe.dynamic_range。
设置该GI探针的能量乘数。较高的能量使GI探针的间接光更亮。相当于GIProbe.energy。
设置该 GI 探针的内部值。设置为内部的 GI 探针在计算照明时不包括天空。相当于 GIProbe.interior。
设置该GI探针的法线偏置。法线偏置的行为类似于其他形式的偏置,可有助于减少自我遮挡。相当于GIProbe.normal_bias。
设置光在这个GI探针中的传播。相当于GIProbe.propagation。
为这个GI探针设置单元Transform。
- bool has_changed ( ) const
如果VisualServer的数据被更改,则返回true
。如果发生这种情况,通常会调用draw。
还没有实现。总是返回false
。
如果操作系统支持某项功能,则返回true
。特性可能是s3tc
, etc
, etc2
, pvrtc
和 skinning_fallback
。
当使用GLES2渲染时,在硬件不支持默认的GPU蒙皮过程的情况下,返回true
与skinning_fallback
。
- void immediate_begin ( RID immediate, PrimitiveType primitive, RID texture )
设置ImmediateGeometry的内部结构,为绘图做准备。相当于ImmediateGeometry.begin。
- void immediate_clear ( RID immediate )
清除在 immediate_begin 和 immediate_end 之间设置的所有内容。等效于 ImmediateGeometry.clear。
设置用于下一个顶点的颜色。相当于ImmediateGeometry.set_color。
- RID immediate_create ( )
创建直接几何图形并将其添加到VisualServer中。它可以通过返回的RID进行访问。这个RID可在所有immediate_*
VisualServer函数中使用。
一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。
要在场景中放置,使用返回的RID用instance_set_base将这个直接几何体附加到一个实例上。
- void immediate_end ( RID immediate )
结束绘制ImmediateGeometry并显示它。相当于ImmediateGeometry.end。
返回分配给ImmediateGeometry的材质。
设置用于下一个顶点的法线。相当于ImmediateGeometry.set_normal。
设置用于绘制ImmediateGeometry的材质。
设置用于下一个顶点的切线。相当于ImmediateGeometry.set_tangent。
设置用于下一个顶点的UV。相当于ImmediateGeometry.set_uv。
设置用于下一个顶点的UV2。相当于ImmediateGeometry.set_uv2。
使用预先提供的信息添加下一个顶点。相当于ImmediateGeometry.add_vertex。
使用预先提供的信息添加下一个顶点。这是一个辅助类,它在后台调用immediate_vertex。相当于ImmediateGeometry.add_vertex。
- void init ( )
初始化visual server.。这个函数是在引擎初始化过程中由依赖平台的代码内部调用。如果从一个正在运行的游戏中调用,它将不会做任何事情。
将唯一的对象ID附加到实例上。必须将对象ID附加到实例上,以便通过instances_cull_aabb、instances_cull_convex和instances_cull_ray进行正确的筛除。
将骨架附加到实例。并从实例中移除之前骨架。
- RID instance_create ( )
创建一个可视化实例并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可在所有instance_*
VisualServer函数中使用。
一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。
实例是在场景中放置 3D 对象的一种方式。粒子、网格和反射探针等对象需要与使用 instance_set_base 的实例关联才能在场景中可见。
创建一个可视化实例,将其添加到VisualServer中,并设置基本和效果。可以用返回的RID来访问它。这个RID可在所有instance_*
VisualServer函数中使用。
一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。
在Godot 3.x中没有实现。
- void instance_geometry_set_cast_shadows_setting ( RID instance, ShadowCastingSetting shadow_casting_setting )
将阴影投射设置为ShadowCastingSetting中的一个。相当于GeometryInstance.cast_shadow。
- void instance_geometry_set_draw_range ( RID instance, float min, float max, float min_margin, float max_margin )
在Godot 3.x中没有实现。
- void instance_geometry_set_flag ( RID instance, InstanceFlags flag, bool enabled )
设置给定的InstanceFlags标志。更多细节请参阅InstanceFlags。
Sets a material that will be rendered for all surfaces on top of active materials for the mesh associated with this instance. Equivalent to GeometryInstance.material_overlay.
设置一个材质,覆盖与此实例关联的网格上的所有表面的材质。相当于GeometryInstance.material_override。
设置实例的基类。基类可以是VisualServer中创建的任何可以显示的3D对象。例如,光照类型、网格、多网格、基本几何、粒子系统、反射探针、光照图捕捉和GI探针等类型都可以被设置为实例的基类,以便在场景中显示。
设置与该实例相关的特定混合形状的权重。
设置自定义的AABB,当从视图中剔除对象时使用。相当于GeometryInstance.set_custom_aabb。
在Godot 3.x中没有实现的功能。
设置边距,在剔除视域范围内的对象时增加AABB的大小。这可以让你避免剔除落在视域范围外的物体。相当于GeometryInstance.extra_cull_margin。
设置该实例将被绘制的渲染层。相当于VisualInstance.layers。
设置实例所在的场景。场景是对象将在其中显示的 3D 世界。
设置特定表面的材质。相当于MeshInstance.set_surface_material。
设置实例的世界空间变换。相当于Spatial.transform。
- void instance_set_use_lightmap ( RID instance, RID lightmap_instance, RID lightmap, int lightmap_slice=-1, Rect2 lightmap_uv_rect=Rect2( 0, 0, 1, 1 ) )
设置该实例使用的光照图。
设置是否绘制实例。相当于 Spatial.visible。
返回一个与所提供的AABB相交的物体ID数组。只考虑可视化的3D节点,例如MeshInstance或DirectionalLight。使用@GDScript.instance_from_id来获取实际节点。这必须提供一个场景的RID,该RID在你想查询的World中是可用的。这将强制更新所有排队等待更新的资源。
警告: 这个函数主要用于编辑器使用。对于游戏中的使用情况,最好是物理碰撞。
返回一个与所提供的凸形相交的物体ID数组。只考虑可视化的3D节点,如MeshInstance或DirectionalLight。使用@GDScript.instance_from_id来获取实际节点。必须提供一个场景的RID,这个RID在你想查询的World中是可用的。这将强制更新所有排队等待更新的资源。
警告: 这个函数主要用于编辑器使用。对于游戏中的使用情况,最好是物理碰撞。
返回一个与所提供的3D射线相交的物体ID数组。只考虑可视化的3D节点,例如MeshInstance或DirectionalLight。使用@GDScript.instance_from_id来获取实际节点。必须提供一个场景的RID,这个RID在你想查询的World中是可用的。这将强制更新所有排队等待更新的资源。
警告: 这个函数主要用于编辑器的使用。对于游戏中的使用情况,最好是物理碰撞。
如果true
,这个平行光会在阴影贴图分割之间混合,以使它们之间的过渡更加平滑。相当于DirectionalLight.directional_shadow_blend_splits。
- void light_directional_set_shadow_depth_range_mode ( RID light, LightDirectionalShadowDepthRangeMode range_mode )
设置这个平行光源的阴影深度范围模式。相当于DirectionalLight.directional_shadow_depth_range。参阅LightDirectionalShadowDepthRangeMode的选项。
- void light_directional_set_shadow_mode ( RID light, LightDirectionalShadowMode mode )
设置此平行光源的阴影模式。相当于DirectionalLight.directional_shadow_mode。参阅LightDirectionalShadowMode的选项。
- void light_omni_set_shadow_detail ( RID light, LightOmniShadowDetail detail )
设置是否为此泛光灯使用垂直或水平细节。这可用于减轻阴影贴图中的伪影。相当于 OmniLight.omni_shadow_detail。
- void light_omni_set_shadow_mode ( RID light, LightOmniShadowMode mode )
设置阴影贴图是使用双抛物面还是立方体贴图。双抛物面速度更快,但可能会出现伪影。相当于OmniLight.omni_shadow_mode。
- void light_set_bake_mode ( RID light, LightBakeMode bake_mode )
设置此灯的烘焙模式,参阅 LightBakeMode 的选项。烘焙模式会影响灯光在 BakedLightmap 和 GIProbe 中的烘焙方式。
设置灯光的颜色。相当于Light.light_color。
设置此灯光的剔除遮罩。灯光仅影响选定图层中的对象。相当于Light.light_cull_mask。
如果true
,光将减去光而不是增加光。相当于Light.light_negative。
- void light_set_param ( RID light, LightParam param, float value )
设置指定的灯光参数。参阅LightParam的选项。相当于Light.set_param。
在Godot 3.x中没有实现。
如果true
,反转网格的背面剔除。当你有一个平面网格后面有灯光时,这可能很有用。如果你需要在网格的两面都投下阴影,可以用instance_geometry_set_cast_shadows_setting将网格设置为使用双面阴影。相当于Light.shadow_reverse_cull_face。
如果true
,光线会投射阴影。相当于Light.shadow_enabled。
设置灯光投射阴影的颜色。相当于Light.shadow_color。
设置GI探针是否从这个灯中捕捉光线信息。废弃的方法。使用light_set_bake_mode代替。这个方法只是出于兼容性考虑而被保留,它在内部调用light_set_bake_mode,根据给定的参数将烘烤模式设置为LIGHT_BAKE_DISABLED或LIGHT_BAKE_INDIRECT。
- RID lightmap_capture_create ( )
创建一个光照贴图捕获并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于所有lightmap_capture_*
VisualServer函数。
一旦完成了RID处理,可使用VisualServer的free_rid静态方法释放RID。
要在场景中放置,使用返回的RID,用instance_set_base将这个lightmap capture附加到一个实例上。
返回光照贴图捕获区域的大小。
返回光照贴图捕获使用的能量乘数。
- PoolByteArray lightmap_capture_get_octree ( RID capture ) const
返回光照贴图捕获使用的八叉树。
返回此光照贴图捕获的八叉树使用的单元细分量。
返回此光照贴图捕获的八叉树的单元变换。
如果捕获处于”interior”内部模式,则返回 true
。
设置光照贴图捕获所覆盖区域的大小。相当于 BakedLightmapData.bounds。
设置此光照贴图捕获的能量乘数。相当于BakedLightmapData.energy。
设置此光照贴图捕获的 “interior”内部模式。相当于 BakedLightmapData.interior。
- void lightmap_capture_set_octree ( RID capture, PoolByteArray octree )
设置此光照贴图捕获要使用的八叉树。该函数通常由 BakedLightmap 节点使用。相当于BakedLightmapData.octree。
设置此光照贴图捕获八叉树的细分级别。相当于BakedLightmapData.cell_subdiv。
设置此光照贴图捕获的八叉树的八叉树单元变换。相当于BakedLightmapData.cell_space_transform。
返回具有给定水平和垂直细分的球体网格。
- RID material_create ( )
创建一个空材质并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于所有 material_*
VisualServer 函数。
完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。
返回特定材质的参数值。
如果可用,返回参数的默认值。否则返回一个空的 Variant。
返回某个材质着色的着色器。如果材质没有着色器,则返回一个空的 RID。
设置材质的线宽。
设置对象的下一个材质。
设置材质的参数。
设置材质的渲染优先级。
设置着色器材质的着色器。
- void mesh_add_surface_from_arrays ( RID mesh, PrimitiveType primitive, Array arrays, Array blend_shapes=[ ], int compress_format=2194432 )
将从Arrays数组生成的表面添加到网格。有关类型,请参阅 PrimitiveType 常量。
- void mesh_clear ( RID mesh )
移除网格中的所有表面。
- RID mesh_create ( )
创建一个新网格并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于所有 mesh_*
VisualServer 函数。
完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。
要放置在场景中,请使用返回的 RID 使用 instance_set_base 将此网格附加到实例。
返回一个网格的混合形状数量。
- BlendShapeMode mesh_get_blend_shape_mode ( RID mesh ) const
返回网格的混合形状模式。
返回网格的自定义 AABB。
返回网格的面数。
移除网格的表面。
设置网格的混合形状计数。
- void mesh_set_blend_shape_mode ( RID mesh, BlendShapeMode mode )
设置网格的混合形状模式。
设置网格的自定义 AABB。
返回网格表面的 aabb。
- PoolByteArray mesh_surface_get_array ( RID mesh, int surface ) const
返回网格表面的顶点缓冲区。
返回网格的表面的索引数量。
返回网格表面的顶点数量。
返回网格表面的缓冲区数组。
返回网格表面的混合形状数组。
返回网格表面的格式。
- int mesh_surface_get_format_offset ( int format, int vertex_len, int index_len, int array_index ) const
这个函数在 Godot 3.x 中未使用。
- int mesh_surface_get_format_stride ( int format, int vertex_len, int index_len, int array_index ) const
- PoolByteArray mesh_surface_get_index_array ( RID mesh, int surface ) const
返回网格表面的索引缓冲区。
返回网格表面的材质。
- PrimitiveType mesh_surface_get_primitive_type ( RID mesh, int surface ) const
返回网格表面的基本网格类型。
返回网格表面骨架的 aabb。
设置网格表面的材质。
- void mesh_surface_update_region ( RID mesh, int surface, int offset, PoolByteArray data )
更新指定曲面的顶点缓冲区的一个特定区域。警告:这个函数直接改变了顶点缓冲区,没有安全机制,你很容易破坏你的网格。
- void multimesh_allocate ( RID multimesh, int instances, MultimeshTransformFormat transform_format, MultimeshColorFormat color_format, MultimeshCustomDataFormat custom_data_format=0 )
为多网格数据分配空间。格式参数决定了 OpenGL 如何存储数据。有关用法,请参阅 MultimeshTransformFormat、MultimeshColorFormat 和 MultimeshCustomDataFormat。相当于 MultiMesh.instance_count。
- RID multimesh_create ( )
在 VisualServer 上创建一个新的多网格并返回一个 RID 句柄。此 RID 可用于所有 multimesh_*
VisualServer 函数。
完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。
要放置在场景中,请使用返回的 RID 使用 instance_set_base 将此多网格附加到实例。
计算并返回轴对齐的边界框(包围盒),该边界框(包围盒)将所有的实例都包含在multimesh中。
返回分配给这个multimesh的实例的数量。
返回用于绘制此multimesh的RID。
返回此multimesh的可见实例数。
返回指定实例将被调制的颜色。
返回与指定实例相关的自定义数据。
返回指定实例的Transform。
- Transform2D multimesh_instance_get_transform_2d ( RID multimesh, int index ) const
返回指定实例的 Transform2D。只在multimesh设置为使用 2D 变换时使用。
设置这个实例的调制颜色。等同于MultiMesh.set_instance_color。
为这个实例设置自定义数据。自定义数据以Color的形式传递,但在着色器中会被解释为vec4
。等同于MultiMesh.set_instance_custom_data。
设置此实例的 Transform。相当于MultiMesh.set_instance_transform。
- void multimesh_instance_set_transform_2d ( RID multimesh, int index, Transform2D transform )
为此实例设置 Transform2D。用于在 2D 中使用multimesh时。相当于MultiMesh.set_instance_transform_2d。
- void multimesh_set_as_bulk_array ( RID multimesh, PoolRealArray array )
一次性设置所有与实例相关的数据。这在从磁盘加载数据或从GDNative准备数据时特别有用。
所有的数据都被打包在一个大型浮点数组中。一个数组可能看起来像这样: 实例1的变换,实例1的颜色数据,实例1的自定义数据,实例2的变换,实例2的颜色数据,等等。
Transform存储为12个浮点数,Transform2D存储为8个浮点数,COLOR_8BIT
/ CUSTOM_DATA_8BIT
存储为1个浮点数(按4字节),COLOR_FLOAT
/ CUSTOM_DATA_FLOAT
存储为4个浮点数。
设置Multimesh所要绘制的网格。等同于 MultiMesh.mesh。
设置在给定时间内可见的实例的数量。如果是-1,所有被分配的实例都会被画出来。等同于MultiMesh.visible_instance_count。
- RID omni_light_create ( )
创建一个新的泛光灯并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于大多数 light_*
VisualServer 函数。
完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。
要放置在场景中,请使用返回的 RID 使用 instance_set_base 将此泛光灯附加到实例。
- RID particles_create ( )
创建一个粒子系统并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于所有 particles_*
VisualServer 函数。
完成 RID 后,可使用 VisualServer 的 free_rid 静态方法释放 RID。
要放置在场景中,请使用返回的 RID 使用 instance_set_base 将这些粒子附加到实例。
计算并返回包含所有粒子的轴对齐边界框。相当于Particles.capture_aabb。
如果当前粒子被设置发射,则返回true
。
如果粒子没有发射并且粒子设置为非活动状态,则返回 true
。
- void particles_request_process ( RID particles )
将粒子系统添加到需要更新的粒子系统列表中。更新将在下一帧或下一次调用 instances_cull_aabb、instances_cull_convex 或 instances_cull_ray 时进行。
- void particles_restart ( RID particles )
在下次更新时重置粒子。相当于Particles.restart。
设置要绘制的粒子的数量,并为其分配内存。相当于Particles.amount。
为粒子系统设置自定义轴对齐边界框。相当于 Particles.visibility_aabb。
- void particles_set_draw_order ( RID particles, ParticlesDrawOrder order )
将粒子的绘制顺序设置为 ParticlesDrawOrder 中的枚举之一。有关选项,请参阅 ParticlesDrawOrder。相当于 Particles.draw_order。
设置用于指定绘制通道的网格。相当于 Particles.draw_pass_1、Particles.draw_pass_2、Particles.draw_pass_3 和 Particles.draw_pass_4。
设置要使用的绘制通道数。相当于 Particles.draw_passes。
设置粒子首次发射时将使用的 Transform。
如果true
,粒子会随着时间的推移而发射出来。设置为false不会重置粒子,而只是停止其发射。相当于Particles.emitting。
设置爆炸率。相当于Particles.explosiveness。
设置粒子系统渲染的固定帧率。相当于Particles.fixed_fps。
如果 true
,则使用分数增量来平滑粒子的运动。相当于 Particles.fract_delta。
设置系统中每个粒子的寿命。相当于 Particles.lifetime。
如果 true
,粒子将发射一次然后停止。相当于 Particles.one_shot。
设置粒子动画的预处理时间。这使您可以延迟启动动画,直到粒子开始发射。相当于Particles.preprocess。
设置用于处理粒子的材质。
注意: 这不是用于绘制材质的材质。相当于Particles.process_material。
设置发射随机率。这将随机化粒子在其相位内的发射。相当于 Particles.randomness。
设置粒子系统的速度缩放。相当于 Particles.speed_scale。
如果 true
,粒子使用局部坐标。如果 false
其使用全局坐标。相当于 Particles.local_coords。
- RID reflection_probe_create ( )
创建一个反射探针并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于所有reflection_probe_*
VisualServer函数。
一旦完成了RID处理,可使用VisualServer的free_rid静态方法释放RID。
要在场景中放置,使用返回的RID,用instance_set_base将这个反射探针附加到一个实例上。
如果 true
,反射将忽略天空的贡献。相当于 ReflectionProbe.interior_enable。
为这个反射探针设置渲染遮蔽。只有具有匹配的遮蔽罩的实例才会被这个探针渲染。等同于ReflectionProbe.cull_mask。
如果 true
,则使用箱体投影。这可以使反射在某些情况下看起来更正确。相当于 ReflectionProbe.box_projection。
如果 true
,计算反射探针中的阴影。这会使得反射的计算速度慢得多。相当于 ReflectionProbe.enable_shadows。
设置反射探针将捕获的区域的大小。等效于 ReflectionProbe.extents。
设置反射探针的强度。强度调节反射的强度。等效于 ReflectionProbe.intensity。
设置为内部模式时,为此反射探针设置环境光颜色。相当于ReflectionProbe.interior_ambient_color。
当设置为内部模式时,设置此反射探针环境光贡献的能量乘数。相当于ReflectionProbe.interior_ambient_energy。
设置贡献值,即当设置为内部模式时,反射对该反射探针的环境光的影响程度。这样可以使环境光与房间的颜色一致。相当于 ReflectionProbe.interior_ambient_contrib。
设置物体在被删除前与探针的最大距离。等同于ReflectionProbe.max_distance。
设置当此反射探针处于框项目模式时要使用的源偏移。相当于ReflectionProbe.origin_offset。
- void reflection_probe_set_update_mode ( RID probe, ReflectionProbeUpdateMode mode )
设置反射探针的更新频率。可以是一次,也可以是每一帧。参阅ReflectionProbeUpdateMode选项。
在画完一帧后,在where
上安排一个回调给相应的命名的method
。
回调方法必须只使用1个参数,它将与userdata
一起被调用。
- RID scenario_create ( )
创建一个场景并将其添加到VisualServer中。它可以通过返回的RID进行访问。这个RID可在所有scenario_*
VisualServer函数中使用。
一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。
场景是所有视觉实例所存在的三维世界。
- void scenario_set_debug ( RID scenario, ScenarioDebugMode debug_mode )
设置该场景的ScenarioDebugMode。
设置将用于此场景的环境。
设置此方案所使用的后备环境。如果没有设置环境,则使用后备环境。这被编辑器用来提供一个默认环境。
设置此场景中所有反射探针共享的反射图集的大小。
设置一个启动图像。颜色定义了背景颜色。如果scale
是true
,图像将被缩放以适应屏幕尺寸。如果use_filter
是true
,图像将以线性插值进行缩放。如果use_filter
是false
,图像将以近邻插值的方式缩放。
- void set_debug_generate_wireframes ( bool generate )
如果 true
,引擎将生成用于线框调试模式的线框。
- void set_default_clear_color ( Color color )
设置未选择特定透明色时使用的默认透明色。
- void set_shader_async_hidden_forbidden ( bool forbidden )
If asynchronous shader compilation is enabled, this controls whether SpatialMaterial.ASYNC_MODE_HIDDEN is obeyed.
For instance, you may want to enable this temporarily before taking a screenshot. This ensures everything is visible even if shaders with async mode hidden are not ready yet.
Reflection probes use this internally to ensure they capture everything regardless the shaders are ready or not.
- void set_shader_time_scale ( float scale )
设置应用于着色器 TIME
内置时间流逝的比例。
默认值是1.0
,表示TIME
会随着时间的推移计算实时时间,不会缩小或拉伸它。
- void set_use_occlusion_culling ( bool enable )
启用或禁用遮挡剔除。
- RID shader_create ( )
创建一个空的着色器并将其添加到 VisualServer。可以使用返回的 RID 访问它。此 RID 可用于所有 shader_*
VisualServer 函数。
完成 RID 处理后,可使用 VisualServer 的 free_rid 静态方法释放 RID。
返回着色器的代码。
从按名称搜索的着色器中返回一个默认纹理。
返回着色器的参数。
设置着色器的代码。
设置着色器的默认纹理。覆盖以名字命名的纹理。
为这个骨架分配 GPU 缓冲区。
返回这个骨架的特定骨骼的Transform集合。
- Transform2D skeleton_bone_get_transform_2d ( RID skeleton, int bone ) const
返回此骨架的特定骨骼的Transform2D集合。
设置此骨架特定骨骼的 Transform集合。
- void skeleton_bone_set_transform_2d ( RID skeleton, int bone, Transform2D transform )
设置此骨架特定骨骼的 Transform2D集合。
- RID skeleton_create ( )
创建一个骨架并将其添加到VisualServer中。它可以通过返回的RID进行访问。这个RID可用于所有skeleton_*
VisualServer函数。
一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。
返回分配给这个骨架的骨骼数量。
- RID sky_create ( )
创建一个空的天空并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于所有sky_*
VisualServer函数。
一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。
设置天空的纹理。
- RID spot_light_create ( )
创建一个聚光灯并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于大多数light_*
VisualServer函数。
一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。
要在场景中放置,请使用返回的RID,用instance_set_base将该聚光灯附加到一个实例上。
- void sync ( )
在Godot 3.x中没有实现。
- void texture_allocate ( RID texture, int width, int height, int depth_3d, Format format, TextureType type, int flags=7 )
为纹理分配GPU内存。
将纹理绑定到纹理槽。
- RID texture_create ( )
创建一个空纹理并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID可用于所有texture_*
VisualServer函数中。
一旦完成了对RID的处理,可使用VisualServer的free_rid静态方法释放RID。
创建纹理,为图像分配空间,并填充图像。
- Array texture_debug_usage ( )
返回所有纹理及其信息的列表。
返回纹理图像的副本,除非它是 CubeMap,在这种情况下,它返回立方体一侧的图像的 RID。
返回纹理的深度。
返回一个纹理的标志flags。
返回纹理的图像格式。
返回纹理的高度。
返回纹理的路径。
返回纹理图像的opengl id。
- TextureType texture_get_type ( RID texture ) const
返回纹理的类型,可以是TextureType中的任何一种。
返回纹理的宽度。
设置纹理的图像数据。如果是CubeMap,它将设置立方体边上的图像数据。
- void texture_set_data_partial ( RID texture, Image image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_mip, int layer=0 )
设置一个纹理的部分数据。警告:这个函数直接调用底层图形API,如果使用不当可能会破坏你的纹理。
设置纹理的标志flags。选项见TextureFlags。
设置纹理的路径。
- void texture_set_shrink_all_x2_on_set_data ( bool shrink )
如果为true
,设置内部进程,将所有图像数据缩小到一半大小。
将纹理的大小调整为指定的尺寸。
- void textures_keep_original ( bool enable )
如果为true
,如果被覆盖,图像将存储在纹理的图像数组中。
设置视图的相机。
设置视窗的画布。
将视窗复制到屏幕上由rect
指定的区域。如果Viewport.render_direct_to_screen是true
,那么视窗就不会使用帧缓冲器,视窗的内容会直接渲染到屏幕上。然而,请注意,根视窗是最后绘制的,因此它将在屏幕上绘制。因此,你必须将根视窗设置为一个不覆盖你所附加的这个视窗的区域。
例如,你可以用以下代码将根视窗设置为完全不渲染。
func _ready():
get_viewport().set_attach_to_screen_rect(Rect2())
$Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600))
使用这个方法可以带来明显的优化,特别是在低端设备上。然而,它的代价是必须手动管理你的视窗。对于进一步的优化,请看,viewport_set_render_direct_to_screen。
- RID viewport_create ( )
创建一个空视窗并将其添加到VisualServer中。可以用返回的RID来访问它。这个RID将用于所有viewport_*
的VisualServer函数。
一旦你用完了RID,你要使用VisualServer的free_rid静态方法释放RID。
- void viewport_detach ( RID viewport )
将视窗从屏幕上分离。
- int viewport_get_render_info ( RID viewport, ViewportRenderInfo info )
返回视窗的渲染信息。有关选项,请参阅 ViewportRenderInfo 常量。
返回视窗的最后渲染帧。
从画布分离视窗,反之亦然。
如果 true
,则将视窗设置为活动状态,否则将其设置为非活动状态。
设置视窗画布的堆叠顺序。
layer
是实际的画布层,而sublayer
则指定画布在同一层中的堆叠顺序。
- void viewport_set_canvas_transform ( RID viewport, RID canvas, Transform2D offset )
设置视窗画布的变换。
- void viewport_set_clear_mode ( RID viewport, ViewportClearMode clear_mode )
设置视窗的清除模式。详见ViewportClearMode。
- void viewport_set_debug_draw ( RID viewport, ViewportDebugDraw draw )
设置视窗的调试绘图模式。详见ViewportDebugDraw。
如果为 true
,则视窗的 3D 渲染将禁用。
如果 true
,则禁用视窗环境的渲染。
- void viewport_set_global_canvas_transform ( RID viewport, Transform2D transform )
设置视窗的全局变换矩阵。
如果 true
,视窗将呈现为 hdr。
如果 true
,则不渲染视窗的画布。
目前在 Godot 3.x 中未实现。
- void viewport_set_msaa ( RID viewport, ViewportMSAA msaa )
设置抗锯齿模式。详见ViewportMSAA。
设置视窗的父视窗到另一个视窗。
如果true
,直接将视窗的内容渲染到屏幕上。这允许一个低级别的优化,你可以跳过绘制视窗到根视窗。虽然这种优化可以显著提高速度(特别是在旧设备上),但它是以牺牲可用性为代价的。当启用这个功能时,你不能从视窗或SCREEN_TEXTURE
中读取。你也会失去某些窗口设置的好处,比如各种拉伸模式。另一个需要注意的后果是,在2D中,渲染是以窗口坐标进行的,所以如果你有一个两倍于窗口大小的视窗,并且你设置了这个,那么只有适合窗口的部分才会被绘制,没有自动缩放的可能,即使你的游戏场景明显大于窗口大小。
设置一个视窗的场景。
场景包含ScenarioDebugMode的信息、环境信息、反射图集等。
设置阴影图集象限的细分。
设置阴影图集的图像大小(用于泛光灯和聚光灯)。该值将被四舍五入到最接近的2的n次方。
为视窗viewport
设定锐化强度intensity
。如果设置为大于0.0
的值,对比度适应性锐化将被应用到3D视窗中。这具有较低的性能成本,可以用来恢复使用FXAA时损失的一些锐度。一般来说,0.5
左右的值可以得到最好的效果。参阅viewport_set_use_fxaa。
设置视窗的宽度和高度。
如果 true
,视窗将其背景渲染为透明。
- void viewport_set_update_mode ( RID viewport, ViewportUpdateMode update_mode )
设置应更新视窗的时间。请参阅 ViewportUpdateMode 。
- void viewport_set_usage ( RID viewport, ViewportUsage usage )
设置视窗的2D/3D模式。选项见ViewportUsage视窗使用常数。
如果 true
,则视窗使用增强或虚拟现实技术。参阅 ARVRInterface。
如果为 true
,则使用一个快速的后处理滤波器,使带状现象明显减少。在某些情况下,去带可能会引入一个稍微明显的抖动模式。建议只有在实际需要时才启用去带,因为抖动模式会使无损压缩的屏幕截图变大。
注意:仅在 GLES3 后端可用。Viewport.hdr 也必须是 true
才能使 debanding 生效。
启用该视窗的快速近似抗锯齿。FXAA是一种流行的屏幕空间抗锯齿方法,它速度快,但会使图像看起来很模糊,特别是在低分辨率下。在大的分辨率下,如1440p和4K,它仍然可以工作得比较好。一些损失的锐度可以通过启用对比度适应性锐化来恢复(见viewport_set_sharpen_intensity)。
如果 true
,则视窗的渲染垂直翻转。