Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

VisualShaderNodeTextureParameter

继承: VisualShaderNodeParameter < VisualShaderNode < Resource < RefCounted < Object

派生: VisualShaderNodeCubemapParameter, VisualShaderNodeTexture2DArrayParameter, VisualShaderNodeTexture2DParameter, VisualShaderNodeTexture3DParameter, VisualShaderNodeTextureParameterTriplanar

在可视化着色器图中执行 uniform 的纹理查找。

描述

对作为 uniform 着色器提供的纹理进行查找操作。

属性

ColorDefault

color_default

0

TextureFilter

texture_filter

0

TextureRepeat

texture_repeat

0

TextureSource

texture_source

0

TextureType

texture_type

0


枚举

enum TextureType:

TextureType TYPE_DATA = 0

在uniform声明中未添加提示。

TextureType TYPE_COLOR = 1

向该 uniform 声明添加 source_color 提示,用于进行正确的 sRGB 到线性颜色空间的转换。

TextureType TYPE_NORMAL_MAP = 2

hint_normal 作为提示添加到 uniform 声明中,该声明在内部将纹理转换为法线贴图。

TextureType TYPE_ANISOTROPY = 3

向该 uniform 声明添加 hint_anisotropy 提示,用于流向图。

TextureType TYPE_MAX = 4

代表 TextureType 枚举的大小。


enum ColorDefault:

ColorDefault COLOR_DEFAULT_WHITE = 0

默认为完全不透明的白色。

ColorDefault COLOR_DEFAULT_BLACK = 1

默认为完全不透明的黑色。

ColorDefault COLOR_DEFAULT_TRANSPARENT = 2

默认为完全透明的黑色。

ColorDefault COLOR_DEFAULT_MAX = 3

代表 ColorDefault 枚举的大小。


enum TextureFilter:

TextureFilter FILTER_DEFAULT = 0

使用由该着色器所附加到的节点决定的过滤器对纹理进行采样。

TextureFilter FILTER_NEAREST = 1

纹理过滤仅从最近的像素读取。这使得纹理从近距离看是像素化的,从远处看是颗粒状的(由于多级渐远纹理没有被采样)。

TextureFilter FILTER_LINEAR = 2

纹理过滤在最近的 4 个像素之间进行混合。这使得纹理从近处看起来很平滑,从远处看起来却有颗粒感(由于多级渐远纹理没有被采样)。

TextureFilter FILTER_NEAREST_MIPMAP = 3

纹理过滤从最近的像素读取并在最近的 2 个多级渐远纹理之间进行混合(或者如果 ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filtertrue,则使用最近的多级渐远纹理)。这使得纹理从近处看起来像素化,从远处看起来平滑。

将此用于可能以低缩放查看的非像素艺术纹理(例如,由于 Camera2D 缩放或精灵缩放),因为多级渐远纹理对于平滑小于屏幕像素的像素很重要。

TextureFilter FILTER_LINEAR_MIPMAP = 4

纹理过滤在最近的 4 个像素和最近的 2 个多级渐远纹理之间进行混合(或者如果 ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filtertrue,则使用最近的多级渐远纹理)。这使得纹理从近处看起来平滑,从远处看起来也平滑。

将此用于可能以低缩放查看的非像素艺术纹理(例如,由于 Camera2D 缩放或精灵缩放),因为多级渐远纹理对于平滑小于屏幕像素的像素很重要。

TextureFilter FILTER_NEAREST_MIPMAP_ANISOTROPIC = 5

纹理过滤从最近的像素读取并根据表面和相机视图之间的角度在 2 个多级渐远纹理之间进行混合(或者如果 ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filtertrue,则使用最近的多级渐远纹理)。这使得纹理从近处看起来像素化,从远处看起来平滑。各向异性过滤提高了几乎与相机位于一条线的表面上的纹理质量,但速度稍慢。各向异性过滤级别可以通过调整 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level 来改变。

注意:该纹理过滤在 2D 项目中很少有用。FILTER_NEAREST_MIPMAP 在这种情况下通常更合适。

TextureFilter FILTER_LINEAR_MIPMAP_ANISOTROPIC = 6

纹理过滤在最近的 4 个像素之间进行混合,并基于表面与相机视图之间的角度在 2 个多级渐远纹理之间进行混合(或者如果 ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filtertrue,则使用最近的多级渐远纹理)。这使得纹理从近处看起来平滑,从远处看起来也平滑。各向异性过滤提高了几乎与相机位于一条线的表面上的纹理质量,但速度稍慢。各向异性过滤级别可以通过调整 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level 来改变。

注意:该纹理过滤在 2D 项目中很少有用。FILTER_LINEAR_MIPMAP 在这种情况下通常更合适。

TextureFilter FILTER_MAX = 7

代表 TextureFilter 枚举的大小。


enum TextureRepeat:

TextureRepeat REPEAT_DEFAULT = 0

使用由该着色器所附加到的节点决定的重复模式对该纹理进行采样。

TextureRepeat REPEAT_ENABLED = 1

纹理将正常重复。

TextureRepeat REPEAT_DISABLED = 2

纹理不会重复。

TextureRepeat REPEAT_MAX = 3

代表 TextureRepeat 枚举的大小。


enum TextureSource:

TextureSource SOURCE_NONE = 0

着色器中未指定纹理源。

TextureSource SOURCE_SCREEN = 1

纹理源为屏幕纹理,捕获了本帧中绘制的所有不透明对象。

TextureSource SOURCE_DEPTH = 2

纹理源为深度预处理阶段的深度纹理。

TextureSource SOURCE_NORMAL_ROUGHNESS = 3

纹理源为深度预处理阶段的法线粗糙度缓冲区。

TextureSource SOURCE_MAX = 4

代表 TextureSource 枚举的大小。


属性说明

ColorDefault color_default = 0

如果没有给 uniform 分配纹理,则设置默认颜色。


TextureFilter texture_filter = 0

设置纹理过滤模式。选项见 TextureFilter


TextureRepeat texture_repeat = 0

设置纹理重复模式。选项见 TextureRepeat


TextureSource texture_source = 0

设置纹理源的模式。用于读取 screen(屏幕)、depth(深度)或 normal_roughness(法线粗糙度)纹理。选项见 TextureSource


TextureType texture_type = 0

定义源纹理提供的数据类型。选项参阅TextureType