Up to date

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

CanvasTexture

继承: Texture2D < Texture < Resource < RefCounted < Object

用于 2D 渲染的纹理,带有可选的法线和镜面贴图。

描述

CanvasTexture 是用于 2D 渲染的 ImageTexture 的替代品。它允许在任何继承自 CanvasItem 的节点中使用法线贴图和镜面贴图。CanvasTexture 还允许独立于节点的属性(或项目设置)覆盖纹理的过滤模式和重复模式。

注意:CanvasTexture 不能在 3D 中使用。当应用于任何 VisualInstance3D,例如 Sprite3DDecal 时,它将无法正确显示。对于 3D 中基于物理的材质,请改用 BaseMaterial3D

教程

属性

Texture2D

diffuse_texture

Texture2D

normal_texture

bool

resource_local_to_scene

false (overrides Resource)

Color

specular_color

Color(1, 1, 1, 1)

float

specular_shininess

1.0

Texture2D

specular_texture

TextureFilter

texture_filter

0

TextureRepeat

texture_repeat

0


属性说明

Texture2D diffuse_texture

要使用的漫反射(颜色)纹理。这是你在大多数情况下要设置的主要纹理。


Texture2D normal_texture

要使用的法线贴图纹理。仅在有 Light2D 影响该 CanvasTexture 时才有可见的效果。

注意:Godot 期望法线贴图使用 X+、Y+、Z+ 坐标系。比较流行的引擎所期望的法线贴图坐标系见这个页面


Color specular_color = Color(1, 1, 1, 1)

  • void set_specular_color ( Color value )

  • Color get_specular_color ( )

镜面反射颜色的乘数。在确定反射颜色时,Light2D 的颜色也会被考虑在内。只有在 Light2D 影响到这个 CanvasTexture 时才有可见的效果。


float specular_shininess = 1.0

  • void set_specular_shininess ( float value )

  • float get_specular_shininess ( )

用于 Light2D 镜面反射的镜面指数。更高的值会产生更有光泽或更加“湿润”的外观,反射变得更局部,且整体上不太明显。默认值为 1.0 ,将完全禁用镜面反射。只有在 Light2D 影响到这个 CanvasTexture 时才会有可见的效果。


Texture2D specular_texture

用于 Light2D 镜面反射的镜面贴图。这应该是一个灰度或彩色纹理,更亮的区域会产生更高的 specular_shininess 值。使用彩色 specular_texture 允许在每个通道的基础上控制镜面反射光泽度。仅当 Light2D 影响该 CanvasTexture 时才有可见的效果。


TextureFilter texture_filter = 0

绘制该 CanvasTexture 时所使用的纹理过滤模式。


TextureRepeat texture_repeat = 0

绘制该 CanvasTexture 时所使用的纹理重复模式。