Files
godot-docs-l10n/classes/zh_CN/class_basematerial3d.rst
Rémi Verschelde 9581bc9bb3 Sync class reference translations with upstream 4.x
Still only zh_CN for now.
zh_TW is near 100% complete, but it has hundreds of validation errors
which need to be fixed first.
2023-11-21 16:13:45 +01:00

3496 lines
171 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. DO NOT EDIT THIS FILE!!!
.. Generated automatically from Godot engine sources.
.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/BaseMaterial3D.xml.
.. _class_BaseMaterial3D:
BaseMaterial3D
==============
**继承:** :ref:`Material<class_Material>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
**派生:** :ref:`ORMMaterial3D<class_ORMMaterial3D>`, :ref:`StandardMaterial3D<class_StandardMaterial3D>`
用于定义网格 3D 渲染属性的抽象基类。
.. rst-class:: classref-introduction-group
描述
----
这个类提供了默认的材质,具有多种渲染功能和属性,无需编写着色器代码。详情见下面的教程。
.. rst-class:: classref-introduction-group
教程
----
- :doc:`标准 3D 材质与 ORM 3D 材质 <../tutorials/3d/standard_material_3d>`
.. rst-class:: classref-reftable-group
属性
----
.. table::
:widths: auto
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Color<class_Color>` | :ref:`albedo_color<class_BaseMaterial3D_property_albedo_color>` | ``Color(1, 1, 1, 1)`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`albedo_texture<class_BaseMaterial3D_property_albedo_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`albedo_texture_force_srgb<class_BaseMaterial3D_property_albedo_texture_force_srgb>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`albedo_texture_msdf<class_BaseMaterial3D_property_albedo_texture_msdf>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`alpha_antialiasing_edge<class_BaseMaterial3D_property_alpha_antialiasing_edge>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`AlphaAntiAliasing<enum_BaseMaterial3D_AlphaAntiAliasing>` | :ref:`alpha_antialiasing_mode<class_BaseMaterial3D_property_alpha_antialiasing_mode>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`alpha_hash_scale<class_BaseMaterial3D_property_alpha_hash_scale>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`alpha_scissor_threshold<class_BaseMaterial3D_property_alpha_scissor_threshold>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`anisotropy<class_BaseMaterial3D_property_anisotropy>` | ``0.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`anisotropy_enabled<class_BaseMaterial3D_property_anisotropy_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`anisotropy_flowmap<class_BaseMaterial3D_property_anisotropy_flowmap>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`ao_enabled<class_BaseMaterial3D_property_ao_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`ao_light_affect<class_BaseMaterial3D_property_ao_light_affect>` | ``0.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`ao_on_uv2<class_BaseMaterial3D_property_ao_on_uv2>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`ao_texture<class_BaseMaterial3D_property_ao_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` | :ref:`ao_texture_channel<class_BaseMaterial3D_property_ao_texture_channel>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Color<class_Color>` | :ref:`backlight<class_BaseMaterial3D_property_backlight>` | ``Color(0, 0, 0, 1)`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`backlight_enabled<class_BaseMaterial3D_property_backlight_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`backlight_texture<class_BaseMaterial3D_property_backlight_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`billboard_keep_scale<class_BaseMaterial3D_property_billboard_keep_scale>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>` | :ref:`billboard_mode<class_BaseMaterial3D_property_billboard_mode>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` | :ref:`blend_mode<class_BaseMaterial3D_property_blend_mode>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`clearcoat<class_BaseMaterial3D_property_clearcoat>` | ``1.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`clearcoat_enabled<class_BaseMaterial3D_property_clearcoat_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`clearcoat_roughness<class_BaseMaterial3D_property_clearcoat_roughness>` | ``0.5`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`clearcoat_texture<class_BaseMaterial3D_property_clearcoat_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`CullMode<enum_BaseMaterial3D_CullMode>` | :ref:`cull_mode<class_BaseMaterial3D_property_cull_mode>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`DepthDrawMode<enum_BaseMaterial3D_DepthDrawMode>` | :ref:`depth_draw_mode<class_BaseMaterial3D_property_depth_draw_mode>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`detail_albedo<class_BaseMaterial3D_property_detail_albedo>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` | :ref:`detail_blend_mode<class_BaseMaterial3D_property_detail_blend_mode>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`detail_enabled<class_BaseMaterial3D_property_detail_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`detail_mask<class_BaseMaterial3D_property_detail_mask>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`detail_normal<class_BaseMaterial3D_property_detail_normal>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`DetailUV<enum_BaseMaterial3D_DetailUV>` | :ref:`detail_uv_layer<class_BaseMaterial3D_property_detail_uv_layer>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`DiffuseMode<enum_BaseMaterial3D_DiffuseMode>` | :ref:`diffuse_mode<class_BaseMaterial3D_property_diffuse_mode>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`disable_ambient_light<class_BaseMaterial3D_property_disable_ambient_light>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`disable_fog<class_BaseMaterial3D_property_disable_fog>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`disable_receive_shadows<class_BaseMaterial3D_property_disable_receive_shadows>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>` | ``10.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>` | ``0.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`DistanceFadeMode<enum_BaseMaterial3D_DistanceFadeMode>` | :ref:`distance_fade_mode<class_BaseMaterial3D_property_distance_fade_mode>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Color<class_Color>` | :ref:`emission<class_BaseMaterial3D_property_emission>` | ``Color(0, 0, 0, 1)`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`emission_enabled<class_BaseMaterial3D_property_emission_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`emission_energy_multiplier<class_BaseMaterial3D_property_emission_energy_multiplier>` | ``1.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`emission_intensity<class_BaseMaterial3D_property_emission_intensity>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`emission_on_uv2<class_BaseMaterial3D_property_emission_on_uv2>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`EmissionOperator<enum_BaseMaterial3D_EmissionOperator>` | :ref:`emission_operator<class_BaseMaterial3D_property_emission_operator>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`emission_texture<class_BaseMaterial3D_property_emission_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`fixed_size<class_BaseMaterial3D_property_fixed_size>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`grow<class_BaseMaterial3D_property_grow>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`grow_amount<class_BaseMaterial3D_property_grow_amount>` | ``0.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`heightmap_deep_parallax<class_BaseMaterial3D_property_heightmap_deep_parallax>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`heightmap_enabled<class_BaseMaterial3D_property_heightmap_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`heightmap_flip_binormal<class_BaseMaterial3D_property_heightmap_flip_binormal>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`heightmap_flip_tangent<class_BaseMaterial3D_property_heightmap_flip_tangent>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`heightmap_flip_texture<class_BaseMaterial3D_property_heightmap_flip_texture>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`int<class_int>` | :ref:`heightmap_max_layers<class_BaseMaterial3D_property_heightmap_max_layers>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`int<class_int>` | :ref:`heightmap_min_layers<class_BaseMaterial3D_property_heightmap_min_layers>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`heightmap_scale<class_BaseMaterial3D_property_heightmap_scale>` | ``5.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`heightmap_texture<class_BaseMaterial3D_property_heightmap_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`metallic<class_BaseMaterial3D_property_metallic>` | ``0.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`metallic_specular<class_BaseMaterial3D_property_metallic_specular>` | ``0.5`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`metallic_texture<class_BaseMaterial3D_property_metallic_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` | :ref:`metallic_texture_channel<class_BaseMaterial3D_property_metallic_texture_channel>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`msdf_outline_size<class_BaseMaterial3D_property_msdf_outline_size>` | ``0.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`msdf_pixel_range<class_BaseMaterial3D_property_msdf_pixel_range>` | ``4.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`no_depth_test<class_BaseMaterial3D_property_no_depth_test>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`normal_enabled<class_BaseMaterial3D_property_normal_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`normal_scale<class_BaseMaterial3D_property_normal_scale>` | ``1.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`normal_texture<class_BaseMaterial3D_property_normal_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`orm_texture<class_BaseMaterial3D_property_orm_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`int<class_int>` | :ref:`particles_anim_h_frames<class_BaseMaterial3D_property_particles_anim_h_frames>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`particles_anim_loop<class_BaseMaterial3D_property_particles_anim_loop>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`int<class_int>` | :ref:`particles_anim_v_frames<class_BaseMaterial3D_property_particles_anim_v_frames>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`point_size<class_BaseMaterial3D_property_point_size>` | ``1.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`proximity_fade_distance<class_BaseMaterial3D_property_proximity_fade_distance>` | ``1.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`proximity_fade_enabled<class_BaseMaterial3D_property_proximity_fade_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`refraction_enabled<class_BaseMaterial3D_property_refraction_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`refraction_scale<class_BaseMaterial3D_property_refraction_scale>` | ``0.05`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`refraction_texture<class_BaseMaterial3D_property_refraction_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` | :ref:`refraction_texture_channel<class_BaseMaterial3D_property_refraction_texture_channel>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`rim<class_BaseMaterial3D_property_rim>` | ``1.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`rim_enabled<class_BaseMaterial3D_property_rim_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`rim_texture<class_BaseMaterial3D_property_rim_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`rim_tint<class_BaseMaterial3D_property_rim_tint>` | ``0.5`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`roughness<class_BaseMaterial3D_property_roughness>` | ``1.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`roughness_texture<class_BaseMaterial3D_property_roughness_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` | :ref:`roughness_texture_channel<class_BaseMaterial3D_property_roughness_texture_channel>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`ShadingMode<enum_BaseMaterial3D_ShadingMode>` | :ref:`shading_mode<class_BaseMaterial3D_property_shading_mode>` | ``1`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`shadow_to_opacity<class_BaseMaterial3D_property_shadow_to_opacity>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>` | :ref:`specular_mode<class_BaseMaterial3D_property_specular_mode>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`subsurf_scatter_enabled<class_BaseMaterial3D_property_subsurf_scatter_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`subsurf_scatter_skin_mode<class_BaseMaterial3D_property_subsurf_scatter_skin_mode>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`subsurf_scatter_strength<class_BaseMaterial3D_property_subsurf_scatter_strength>` | ``0.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`subsurf_scatter_texture<class_BaseMaterial3D_property_subsurf_scatter_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`subsurf_scatter_transmittance_boost<class_BaseMaterial3D_property_subsurf_scatter_transmittance_boost>` | ``0.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Color<class_Color>` | :ref:`subsurf_scatter_transmittance_color<class_BaseMaterial3D_property_subsurf_scatter_transmittance_color>` | ``Color(1, 1, 1, 1)`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`subsurf_scatter_transmittance_depth<class_BaseMaterial3D_property_subsurf_scatter_transmittance_depth>` | ``0.1`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`subsurf_scatter_transmittance_enabled<class_BaseMaterial3D_property_subsurf_scatter_transmittance_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`subsurf_scatter_transmittance_texture<class_BaseMaterial3D_property_subsurf_scatter_transmittance_texture>` | |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` | :ref:`texture_filter<class_BaseMaterial3D_property_texture_filter>` | ``3`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`texture_repeat<class_BaseMaterial3D_property_texture_repeat>` | ``true`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Transparency<enum_BaseMaterial3D_Transparency>` | :ref:`transparency<class_BaseMaterial3D_property_transparency>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`use_particle_trails<class_BaseMaterial3D_property_use_particle_trails>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`use_point_size<class_BaseMaterial3D_property_use_point_size>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`uv1_offset<class_BaseMaterial3D_property_uv1_offset>` | ``Vector3(0, 0, 0)`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`uv1_scale<class_BaseMaterial3D_property_uv1_scale>` | ``Vector3(1, 1, 1)`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`uv1_triplanar<class_BaseMaterial3D_property_uv1_triplanar>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`uv1_triplanar_sharpness<class_BaseMaterial3D_property_uv1_triplanar_sharpness>` | ``1.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`uv1_world_triplanar<class_BaseMaterial3D_property_uv1_world_triplanar>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`uv2_offset<class_BaseMaterial3D_property_uv2_offset>` | ``Vector3(0, 0, 0)`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`uv2_scale<class_BaseMaterial3D_property_uv2_scale>` | ``Vector3(1, 1, 1)`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`uv2_triplanar<class_BaseMaterial3D_property_uv2_triplanar>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`uv2_triplanar_sharpness<class_BaseMaterial3D_property_uv2_triplanar_sharpness>` | ``1.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`uv2_world_triplanar<class_BaseMaterial3D_property_uv2_world_triplanar>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`vertex_color_is_srgb<class_BaseMaterial3D_property_vertex_color_is_srgb>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`vertex_color_use_as_albedo<class_BaseMaterial3D_property_vertex_color_use_as_albedo>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
.. rst-class:: classref-reftable-group
方法
----
.. table::
:widths: auto
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_feature<class_BaseMaterial3D_method_get_feature>` **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const| |
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_flag<class_BaseMaterial3D_method_get_flag>` **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const| |
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`get_texture<class_BaseMaterial3D_method_get_texture>` **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const| |
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_feature<class_BaseMaterial3D_method_set_feature>` **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)** |
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_flag<class_BaseMaterial3D_method_set_flag>` **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)** |
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_texture<class_BaseMaterial3D_method_set_texture>` **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)** |
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
枚举
----
.. _enum_BaseMaterial3D_TextureParam:
.. rst-class:: classref-enumeration
enum **TextureParam**:
.. _class_BaseMaterial3D_constant_TEXTURE_ALBEDO:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_ALBEDO** = ``0``
指定每个像素颜色的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_METALLIC:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_METALLIC** = ``1``
指定每个像素金属度值的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_ROUGHNESS:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_ROUGHNESS** = ``2``
指定每个像素粗糙度值的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_EMISSION:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_EMISSION** = ``3``
指定每个像素自发光颜色的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_NORMAL:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_NORMAL** = ``4``
指定每个像素法向量的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_RIM:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_RIM** = ``5``
指定每个像素边缘值的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_CLEARCOAT:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_CLEARCOAT** = ``6``
指定每个像素清漆值的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_FLOWMAP:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_FLOWMAP** = ``7``
指定每个像素流图方向的纹理,用于 :ref:`anisotropy<class_BaseMaterial3D_property_anisotropy>`\ 。
.. _class_BaseMaterial3D_constant_TEXTURE_AMBIENT_OCCLUSION:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_AMBIENT_OCCLUSION** = ``8``
指定每个像素环境光遮蔽的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_HEIGHTMAP:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_HEIGHTMAP** = ``9``
指定每个像素高度的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_SUBSURFACE_SCATTERING:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_SUBSURFACE_SCATTERING** = ``10``
指定每个像素次表面散射的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_SUBSURFACE_TRANSMITTANCE:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_SUBSURFACE_TRANSMITTANCE** = ``11``
指定每个像素用于次表面散射的透射率的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_BACKLIGHT:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_BACKLIGHT** = ``12``
指定每个像素背光颜色的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_REFRACTION:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_REFRACTION** = ``13``
指定每个像素折射强度的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_DETAIL_MASK:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_DETAIL_MASK** = ``14``
指定每个像素细节蒙版混合值的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_DETAIL_ALBEDO:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_DETAIL_ALBEDO** = ``15``
指定每个像素细节颜色的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_DETAIL_NORMAL:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_DETAIL_NORMAL** = ``16``
指定每个像素细节法线的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_ORM:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_ORM** = ``17``
保存环境光遮蔽、粗糙度和金属度信息的纹理。
.. _class_BaseMaterial3D_constant_TEXTURE_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_MAX** = ``18``
代表 :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` 枚举的大小。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_TextureFilter:
.. rst-class:: classref-enumeration
enum **TextureFilter**:
.. _class_BaseMaterial3D_constant_TEXTURE_FILTER_NEAREST:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` **TEXTURE_FILTER_NEAREST** = ``0``
纹理过滤器仅读取最邻近的像素。最简单快速的过滤方法,但纹理看起来会像素化。
.. _class_BaseMaterial3D_constant_TEXTURE_FILTER_LINEAR:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` **TEXTURE_FILTER_LINEAR** = ``1``
纹理过滤器在最邻近的 4 个像素之间混合。如果你想要避免像素化风格,但又不想使用 mipmap那么请使用这个选项。
.. _class_BaseMaterial3D_constant_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` **TEXTURE_FILTER_NEAREST_WITH_MIPMAPS** = ``2``
纹理过滤器读取最邻近的 mipmap 中的最邻近的像素。带有 mipmap 的纹理的最快读取方法。
.. _class_BaseMaterial3D_constant_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` **TEXTURE_FILTER_LINEAR_WITH_MIPMAPS** = ``3``
纹理过滤器在最邻近的 4 个像素和最邻近的 2 个 mipmap 之间混合。请在大多数情况下使用,因为 mipmap 对于平滑远离相机的像素很重要。
.. _class_BaseMaterial3D_constant_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` **TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC** = ``4``
纹理过滤器读取最邻近的像素,但会根据表面和相机视图之间的夹角选择 mipmap。可以减少几乎与相机成一直线的表面的不自然情况。各向异性过滤级别可以通过调整 :ref:`ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level<class_ProjectSettings_property_rendering/textures/default_filters/anisotropic_filtering_level>` 来改变。
.. _class_BaseMaterial3D_constant_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` **TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC** = ``5``
纹理过滤器在最邻近的 4 个像素之间进行混合,并会根据表面和相机视图之间的夹角选择 mipmap。可以减少几乎与相机成一直线的表面的不自然情况。这是过滤选项中最慢的一个但可以得到最高质量的纹理。各向异性过滤级别可以通过调整 :ref:`ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level<class_ProjectSettings_property_rendering/textures/default_filters/anisotropic_filtering_level>` 来改变。
.. _class_BaseMaterial3D_constant_TEXTURE_FILTER_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` **TEXTURE_FILTER_MAX** = ``6``
代表 :ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` 枚举的大小。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_DetailUV:
.. rst-class:: classref-enumeration
enum **DetailUV**:
.. _class_BaseMaterial3D_constant_DETAIL_UV_1:
.. rst-class:: classref-enumeration-constant
:ref:`DetailUV<enum_BaseMaterial3D_DetailUV>` **DETAIL_UV_1** = ``0``
使用 ``UV`` 与细节纹理。
.. _class_BaseMaterial3D_constant_DETAIL_UV_2:
.. rst-class:: classref-enumeration-constant
:ref:`DetailUV<enum_BaseMaterial3D_DetailUV>` **DETAIL_UV_2** = ``1``
使用 ``UV2`` 与细节纹理。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_Transparency:
.. rst-class:: classref-enumeration
enum **Transparency**:
.. _class_BaseMaterial3D_constant_TRANSPARENCY_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`Transparency<enum_BaseMaterial3D_Transparency>` **TRANSPARENCY_DISABLED** = ``0``
该材质将不使用透明度。渲染最快。
.. _class_BaseMaterial3D_constant_TRANSPARENCY_ALPHA:
.. rst-class:: classref-enumeration-constant
:ref:`Transparency<enum_BaseMaterial3D_Transparency>` **TRANSPARENCY_ALPHA** = ``1``
该材质将使用纹理的 Alpha 值作为透明度。渲染最慢,且会禁用阴影投射。
.. _class_BaseMaterial3D_constant_TRANSPARENCY_ALPHA_SCISSOR:
.. rst-class:: classref-enumeration-constant
:ref:`Transparency<enum_BaseMaterial3D_Transparency>` **TRANSPARENCY_ALPHA_SCISSOR** = ``2``
该材质会将所有低于阈值的值截断,其余部分将保持不透明。不透明部分将在深度预通道中渲染。这比 Alpha 混合的渲染速度更快,但比不透明渲染慢。支持投射阴影。
.. _class_BaseMaterial3D_constant_TRANSPARENCY_ALPHA_HASH:
.. rst-class:: classref-enumeration-constant
:ref:`Transparency<enum_BaseMaterial3D_Transparency>` **TRANSPARENCY_ALPHA_HASH** = ``3``
该材质会将所有低于空间确定性阈值的值截断,其余部分将保持不透明。这比 Alpha 混合的渲染速度更快但比不透明渲染慢。支持投射阴影。Alpha 哈希适合毛发渲染。
.. _class_BaseMaterial3D_constant_TRANSPARENCY_ALPHA_DEPTH_PRE_PASS:
.. rst-class:: classref-enumeration-constant
:ref:`Transparency<enum_BaseMaterial3D_Transparency>` **TRANSPARENCY_ALPHA_DEPTH_PRE_PASS** = ``4``
该材质将使用纹理的 Alpha 值作为透明度,但会在深度预通道阶段丢弃 Alpha 小于 0.99 的片段,并在阴影通道期间丢弃 Alpha 小于 0.1 的片段。支持投射阴影。
.. _class_BaseMaterial3D_constant_TRANSPARENCY_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`Transparency<enum_BaseMaterial3D_Transparency>` **TRANSPARENCY_MAX** = ``5``
代表 :ref:`Transparency<enum_BaseMaterial3D_Transparency>` 枚举的大小。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_ShadingMode:
.. rst-class:: classref-enumeration
enum **ShadingMode**:
.. _class_BaseMaterial3D_constant_SHADING_MODE_UNSHADED:
.. rst-class:: classref-enumeration-constant
:ref:`ShadingMode<enum_BaseMaterial3D_ShadingMode>` **SHADING_MODE_UNSHADED** = ``0``
该对象不会接受阴影。渲染速度最快,但会禁用与灯光的所有交互。
.. _class_BaseMaterial3D_constant_SHADING_MODE_PER_PIXEL:
.. rst-class:: classref-enumeration-constant
:ref:`ShadingMode<enum_BaseMaterial3D_ShadingMode>` **SHADING_MODE_PER_PIXEL** = ``1``
对象将逐像素进行着色。对于逼真的阴影效果很有用。
.. _class_BaseMaterial3D_constant_SHADING_MODE_PER_VERTEX:
.. rst-class:: classref-enumeration-constant
:ref:`ShadingMode<enum_BaseMaterial3D_ShadingMode>` **SHADING_MODE_PER_VERTEX** = ``2``
对象将逐顶点进行着色。当想要更便宜的着色器并且不关心视觉质量时很有用。尚未实现(该模式的行为类似于 :ref:`SHADING_MODE_PER_PIXEL<class_BaseMaterial3D_constant_SHADING_MODE_PER_PIXEL>`\ )。
.. _class_BaseMaterial3D_constant_SHADING_MODE_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`ShadingMode<enum_BaseMaterial3D_ShadingMode>` **SHADING_MODE_MAX** = ``3``
代表 :ref:`ShadingMode<enum_BaseMaterial3D_ShadingMode>` 枚举的大小。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_Feature:
.. rst-class:: classref-enumeration
enum **Feature**:
.. _class_BaseMaterial3D_constant_FEATURE_EMISSION:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_EMISSION** = ``0``
用于设置 :ref:`emission_enabled<class_BaseMaterial3D_property_emission_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_NORMAL_MAPPING:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_NORMAL_MAPPING** = ``1``
用于设置 :ref:`normal_enabled<class_BaseMaterial3D_property_normal_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_RIM:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_RIM** = ``2``
用于设置 :ref:`rim_enabled<class_BaseMaterial3D_property_rim_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_CLEARCOAT:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_CLEARCOAT** = ``3``
用于设置 :ref:`clearcoat_enabled<class_BaseMaterial3D_property_clearcoat_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_ANISOTROPY:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_ANISOTROPY** = ``4``
用于设置 :ref:`anisotropy_enabled<class_BaseMaterial3D_property_anisotropy_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_AMBIENT_OCCLUSION:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_AMBIENT_OCCLUSION** = ``5``
用于设置 :ref:`ao_enabled<class_BaseMaterial3D_property_ao_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_HEIGHT_MAPPING:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_HEIGHT_MAPPING** = ``6``
用于设置 :ref:`heightmap_enabled<class_BaseMaterial3D_property_heightmap_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_SUBSURFACE_SCATTERING:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_SUBSURFACE_SCATTERING** = ``7``
用于设置 :ref:`subsurf_scatter_enabled<class_BaseMaterial3D_property_subsurf_scatter_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_SUBSURFACE_TRANSMITTANCE:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_SUBSURFACE_TRANSMITTANCE** = ``8``
用于设置 :ref:`subsurf_scatter_transmittance_enabled<class_BaseMaterial3D_property_subsurf_scatter_transmittance_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_BACKLIGHT:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_BACKLIGHT** = ``9``
用于设置 :ref:`backlight_enabled<class_BaseMaterial3D_property_backlight_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_REFRACTION:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_REFRACTION** = ``10``
用于设置 :ref:`refraction_enabled<class_BaseMaterial3D_property_refraction_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_DETAIL:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_DETAIL** = ``11``
用于设置 :ref:`detail_enabled<class_BaseMaterial3D_property_detail_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_MAX** = ``12``
代表 :ref:`Feature<enum_BaseMaterial3D_Feature>` 枚举的大小。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_BlendMode:
.. rst-class:: classref-enumeration
enum **BlendMode**:
.. _class_BaseMaterial3D_constant_BLEND_MODE_MIX:
.. rst-class:: classref-enumeration-constant
:ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` **BLEND_MODE_MIX** = ``0``
默认的混合模式。根据对象的 Alpha 值,将对象的颜色混合到背景上。
.. _class_BaseMaterial3D_constant_BLEND_MODE_ADD:
.. rst-class:: classref-enumeration-constant
:ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` **BLEND_MODE_ADD** = ``1``
对象的颜色被加到背景中。
.. _class_BaseMaterial3D_constant_BLEND_MODE_SUB:
.. rst-class:: classref-enumeration-constant
:ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` **BLEND_MODE_SUB** = ``2``
从背景中减去对象的颜色。
.. _class_BaseMaterial3D_constant_BLEND_MODE_MUL:
.. rst-class:: classref-enumeration-constant
:ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` **BLEND_MODE_MUL** = ``3``
对象的颜色与背景相乘。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_AlphaAntiAliasing:
.. rst-class:: classref-enumeration
enum **AlphaAntiAliasing**:
.. _class_BaseMaterial3D_constant_ALPHA_ANTIALIASING_OFF:
.. rst-class:: classref-enumeration-constant
:ref:`AlphaAntiAliasing<enum_BaseMaterial3D_AlphaAntiAliasing>` **ALPHA_ANTIALIASING_OFF** = ``0``
禁用该材质的 Alpha 抗锯齿。
.. _class_BaseMaterial3D_constant_ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE:
.. rst-class:: classref-enumeration-constant
:ref:`AlphaAntiAliasing<enum_BaseMaterial3D_AlphaAntiAliasing>` **ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE** = ``1``
启用 AlphaToCoverage。材质中的 Alpha 值会被传递到 AntiAliasing 采样遮罩。
.. _class_BaseMaterial3D_constant_ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE:
.. rst-class:: classref-enumeration-constant
:ref:`AlphaAntiAliasing<enum_BaseMaterial3D_AlphaAntiAliasing>` **ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE** = ``2``
启用 AlphaToCoverage 并将所有非零的 alpha 值强制设为 ``1``\ 。材质中的 Alpha 值会被传递到 AntiAliasing 采样遮罩。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_DepthDrawMode:
.. rst-class:: classref-enumeration
enum **DepthDrawMode**:
.. _class_BaseMaterial3D_constant_DEPTH_DRAW_OPAQUE_ONLY:
.. rst-class:: classref-enumeration-constant
:ref:`DepthDrawMode<enum_BaseMaterial3D_DepthDrawMode>` **DEPTH_DRAW_OPAQUE_ONLY** = ``0``
默认的深度绘制模式。在不透明预通道(如果有)和不透明通道期间,仅为不透明对象绘制深度。
.. _class_BaseMaterial3D_constant_DEPTH_DRAW_ALWAYS:
.. rst-class:: classref-enumeration-constant
:ref:`DepthDrawMode<enum_BaseMaterial3D_DepthDrawMode>` **DEPTH_DRAW_ALWAYS** = ``1``
在不透明和透明通道期间,对象将写入深度。靠近相机的透明物体可能会遮挡它们后面的其他透明物体。
\ **注意:**\ 这不影响透明对象是否包含在深度预通道中。为此,请参阅 :ref:`Transparency<enum_BaseMaterial3D_Transparency>`\ 。
.. _class_BaseMaterial3D_constant_DEPTH_DRAW_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`DepthDrawMode<enum_BaseMaterial3D_DepthDrawMode>` **DEPTH_DRAW_DISABLED** = ``2``
对象不会将其深度写入深度缓冲区,即使在深度预通道期间(如果启用)也是如此。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_CullMode:
.. rst-class:: classref-enumeration
enum **CullMode**:
.. _class_BaseMaterial3D_constant_CULL_BACK:
.. rst-class:: classref-enumeration-constant
:ref:`CullMode<enum_BaseMaterial3D_CullMode>` **CULL_BACK** = ``0``
默认剔除模式。对象的背面在不可见时被剔除。面对相机时,背面三角形将被剔除。这导致仅绘制三角形的正面。对于封闭表面网格,这意味着只有网格的外部可见。
.. _class_BaseMaterial3D_constant_CULL_FRONT:
.. rst-class:: classref-enumeration-constant
:ref:`CullMode<enum_BaseMaterial3D_CullMode>` **CULL_FRONT** = ``1``
面对相机时,正面三角形将被剔除。这导致仅绘制三角形的背面。对于封闭表面网格,这意味着将绘制网格的内部而不是外部。
.. _class_BaseMaterial3D_constant_CULL_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`CullMode<enum_BaseMaterial3D_CullMode>` **CULL_DISABLED** = ``2``
不执行面剔除;正反面均可见。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_Flags:
.. rst-class:: classref-enumeration
enum **Flags**:
.. _class_BaseMaterial3D_constant_FLAG_DISABLE_DEPTH_TEST:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_DISABLE_DEPTH_TEST** = ``0``
禁用深度测试,所以这个对象将被绘制到在它之前绘制的所有其他对象之上。这会将对象置于透明绘制通道中,并根据到相机的距离对其进行排序。按照绘制顺序在它之后绘制的对象可能会覆盖它。会禁用深度写入。
.. _class_BaseMaterial3D_constant_FLAG_ALBEDO_FROM_VERTEX_COLOR:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_ALBEDO_FROM_VERTEX_COLOR** = ``1``
``ALBEDO`` 设置为网格中指定的每顶点颜色。
.. _class_BaseMaterial3D_constant_FLAG_SRGB_VERTEX_COLOR:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_SRGB_VERTEX_COLOR** = ``2``
顶点颜色被认为使用 sRGB 颜色空间存储,并在渲染期间转换为线性颜色空间。另见 :ref:`vertex_color_is_srgb<class_BaseMaterial3D_property_vertex_color_is_srgb>`\ 。
\ **注意:**\ 仅在使用 Forward+ 和移动渲染方式时有效。
.. _class_BaseMaterial3D_constant_FLAG_USE_POINT_SIZE:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_USE_POINT_SIZE** = ``3``
使用点大小来改变图元点的大小。同时改变反射率纹理查找,使用 ``POINT_COORD`` 而不是 ``UV``\ 。
.. _class_BaseMaterial3D_constant_FLAG_FIXED_SIZE:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_FIXED_SIZE** = ``4``
按深度缩放对象,使其在屏幕上显示的大小始终相同。
.. _class_BaseMaterial3D_constant_FLAG_BILLBOARD_KEEP_SCALE:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_BILLBOARD_KEEP_SCALE** = ``5``
着色器将保持网格的缩放设置。否则,在用作公告板时会丢失缩放。仅在 :ref:`billboard_mode<class_BaseMaterial3D_property_billboard_mode>`:ref:`BILLBOARD_ENABLED<class_BaseMaterial3D_constant_BILLBOARD_ENABLED>` 时适用。
.. _class_BaseMaterial3D_constant_FLAG_UV1_USE_TRIPLANAR:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_UV1_USE_TRIPLANAR** = ``6``
对所有通常会使用 ``UV`` 的纹理查找使用三平面纹理查找。
.. _class_BaseMaterial3D_constant_FLAG_UV2_USE_TRIPLANAR:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_UV2_USE_TRIPLANAR** = ``7``
对所有通常会使用 ``UV2`` 的纹理查找使用三平面纹理查找。
.. _class_BaseMaterial3D_constant_FLAG_UV1_USE_WORLD_TRIPLANAR:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_UV1_USE_WORLD_TRIPLANAR** = ``8``
对所有通常会使用 ``UV`` 的纹理查找使用三平面纹理查找。
.. _class_BaseMaterial3D_constant_FLAG_UV2_USE_WORLD_TRIPLANAR:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_UV2_USE_WORLD_TRIPLANAR** = ``9``
对所有通常会使用 ``UV2`` 的纹理查找使用三平面纹理查找。
.. _class_BaseMaterial3D_constant_FLAG_AO_ON_UV2:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_AO_ON_UV2** = ``10``
使用 ``UV2`` 坐标从 :ref:`ao_texture<class_BaseMaterial3D_property_ao_texture>` 中查找。
.. _class_BaseMaterial3D_constant_FLAG_EMISSION_ON_UV2:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_EMISSION_ON_UV2** = ``11``
使用 ``UV2`` 坐标从 :ref:`emission_texture<class_BaseMaterial3D_property_emission_texture>` 中查找。
.. _class_BaseMaterial3D_constant_FLAG_ALBEDO_TEXTURE_FORCE_SRGB:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_ALBEDO_TEXTURE_FORCE_SRGB** = ``12``
强制着色器将反照率从 sRGB 空间转换为线性空间。另见 :ref:`albedo_texture_force_srgb<class_BaseMaterial3D_property_albedo_texture_force_srgb>`\ 。
.. _class_BaseMaterial3D_constant_FLAG_DONT_RECEIVE_SHADOWS:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_DONT_RECEIVE_SHADOWS** = ``13``
禁用从其他对象接收阴影。
.. _class_BaseMaterial3D_constant_FLAG_DISABLE_AMBIENT_LIGHT:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_DISABLE_AMBIENT_LIGHT** = ``14``
禁用接收环境光。
.. _class_BaseMaterial3D_constant_FLAG_USE_SHADOW_TO_OPACITY:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_USE_SHADOW_TO_OPACITY** = ``15``
启用阴影到不透明度功能。
.. _class_BaseMaterial3D_constant_FLAG_USE_TEXTURE_REPEAT:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_USE_TEXTURE_REPEAT** = ``16``
当 UV 坐标超出 0-1 范围时,使纹理能够重复。如果使用其中一种线性过滤模式,则当采样器过滤纹理边缘时,这可能会导致纹理边缘出现伪影。
.. _class_BaseMaterial3D_constant_FLAG_INVERT_HEIGHTMAP:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_INVERT_HEIGHTMAP** = ``17``
反转从深度纹理读取的值以将它们转换为高度值(高度图)。
.. _class_BaseMaterial3D_constant_FLAG_SUBSURFACE_MODE_SKIN:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_SUBSURFACE_MODE_SKIN** = ``18``
启用用于次表面散射的皮肤模式,该模式用于改善被用于人体皮肤时的次表面散射的外观。
.. _class_BaseMaterial3D_constant_FLAG_PARTICLE_TRAILS_MODE:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_PARTICLE_TRAILS_MODE** = ``19``
启用使 :ref:`GPUParticles3D<class_GPUParticles3D>` 尾迹生效所需的部分着色器。这也需要使用具有适当蒙皮的网格,例如 :ref:`RibbonTrailMesh<class_RibbonTrailMesh>`:ref:`TubeTrailMesh<class_TubeTrailMesh>`\ 。在 :ref:`GPUParticles3D<class_GPUParticles3D>` 网格中使用的材质之外启用该功能将破坏材质的渲染。
.. _class_BaseMaterial3D_constant_FLAG_ALBEDO_TEXTURE_MSDF:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_ALBEDO_TEXTURE_MSDF** = ``20``
启用多通道有符号距离场渲染着色器。
.. _class_BaseMaterial3D_constant_FLAG_DISABLE_FOG:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_DISABLE_FOG** = ``21``
禁用接收基于深度或体积雾。
.. _class_BaseMaterial3D_constant_FLAG_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_MAX** = ``22``
代表 :ref:`Flags<enum_BaseMaterial3D_Flags>` 枚举的大小。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_DiffuseMode:
.. rst-class:: classref-enumeration
enum **DiffuseMode**:
.. _class_BaseMaterial3D_constant_DIFFUSE_BURLEY:
.. rst-class:: classref-enumeration-constant
:ref:`DiffuseMode<enum_BaseMaterial3D_DiffuseMode>` **DIFFUSE_BURLEY** = ``0``
默认的漫反射散射算法。
.. _class_BaseMaterial3D_constant_DIFFUSE_LAMBERT:
.. rst-class:: classref-enumeration-constant
:ref:`DiffuseMode<enum_BaseMaterial3D_DiffuseMode>` **DIFFUSE_LAMBERT** = ``1``
漫散射忽略了粗糙度。
.. _class_BaseMaterial3D_constant_DIFFUSE_LAMBERT_WRAP:
.. rst-class:: classref-enumeration-constant
:ref:`DiffuseMode<enum_BaseMaterial3D_DiffuseMode>` **DIFFUSE_LAMBERT_WRAP** = ``2``
当粗糙度增加时,将 Lambert 延伸到 90 度以上。
.. _class_BaseMaterial3D_constant_DIFFUSE_TOON:
.. rst-class:: classref-enumeration-constant
:ref:`DiffuseMode<enum_BaseMaterial3D_DiffuseMode>` **DIFFUSE_TOON** = ``3``
使用硬切口进行照明,平滑度受粗糙度影响。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_SpecularMode:
.. rst-class:: classref-enumeration
enum **SpecularMode**:
.. _class_BaseMaterial3D_constant_SPECULAR_SCHLICK_GGX:
.. rst-class:: classref-enumeration-constant
:ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>` **SPECULAR_SCHLICK_GGX** = ``0``
默认镜面反射斑点。
.. _class_BaseMaterial3D_constant_SPECULAR_TOON:
.. rst-class:: classref-enumeration-constant
:ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>` **SPECULAR_TOON** = ``1``
基于粗糙度更改大小的 Toon 斑点。
.. _class_BaseMaterial3D_constant_SPECULAR_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>` **SPECULAR_DISABLED** = ``2``
没有镜面反射斑点。这比其他镜面反射模式渲染速度稍快。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_BillboardMode:
.. rst-class:: classref-enumeration
enum **BillboardMode**:
.. _class_BaseMaterial3D_constant_BILLBOARD_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>` **BILLBOARD_DISABLED** = ``0``
公告板模式已禁用。
.. _class_BaseMaterial3D_constant_BILLBOARD_ENABLED:
.. rst-class:: classref-enumeration-constant
:ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>` **BILLBOARD_ENABLED** = ``1``
对象的 Z 轴将始终面向相机。
.. _class_BaseMaterial3D_constant_BILLBOARD_FIXED_Y:
.. rst-class:: classref-enumeration-constant
:ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>` **BILLBOARD_FIXED_Y** = ``2``
对象的 X 轴将始终面向相机。
.. _class_BaseMaterial3D_constant_BILLBOARD_PARTICLES:
.. rst-class:: classref-enumeration-constant
:ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>` **BILLBOARD_PARTICLES** = ``3``
分配给 :ref:`GPUParticles3D<class_GPUParticles3D>`:ref:`CPUParticles3D<class_CPUParticles3D>` 节点时被用于粒子系统(翻页动画)。启用 ``particles_anim_*`` 属性。
\ :ref:`ParticleProcessMaterial.anim_speed_min<class_ParticleProcessMaterial_property_anim_speed_min>`:ref:`CPUParticles3D.anim_speed_min<class_CPUParticles3D_property_anim_speed_min>` 也应设置为大于零的值,以便播放动画。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_TextureChannel:
.. rst-class:: classref-enumeration
enum **TextureChannel**:
.. _class_BaseMaterial3D_constant_TEXTURE_CHANNEL_RED:
.. rst-class:: classref-enumeration-constant
:ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **TEXTURE_CHANNEL_RED** = ``0``
用来读取纹理的红色通道。
.. _class_BaseMaterial3D_constant_TEXTURE_CHANNEL_GREEN:
.. rst-class:: classref-enumeration-constant
:ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **TEXTURE_CHANNEL_GREEN** = ``1``
用来读取纹理的绿色通道。
.. _class_BaseMaterial3D_constant_TEXTURE_CHANNEL_BLUE:
.. rst-class:: classref-enumeration-constant
:ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **TEXTURE_CHANNEL_BLUE** = ``2``
用来读取纹理的蓝色通道。
.. _class_BaseMaterial3D_constant_TEXTURE_CHANNEL_ALPHA:
.. rst-class:: classref-enumeration-constant
:ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **TEXTURE_CHANNEL_ALPHA** = ``3``
用来读取纹理的 Alpha 通道。
.. _class_BaseMaterial3D_constant_TEXTURE_CHANNEL_GRAYSCALE:
.. rst-class:: classref-enumeration-constant
:ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **TEXTURE_CHANNEL_GRAYSCALE** = ``4``
用于读取纹理的红色、绿色和蓝色通道的线性(非感知)平均值。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_EmissionOperator:
.. rst-class:: classref-enumeration
enum **EmissionOperator**:
.. _class_BaseMaterial3D_constant_EMISSION_OP_ADD:
.. rst-class:: classref-enumeration-constant
:ref:`EmissionOperator<enum_BaseMaterial3D_EmissionOperator>` **EMISSION_OP_ADD** = ``0``
将自发光颜色加到自发光纹理的颜色上。
.. _class_BaseMaterial3D_constant_EMISSION_OP_MULTIPLY:
.. rst-class:: classref-enumeration-constant
:ref:`EmissionOperator<enum_BaseMaterial3D_EmissionOperator>` **EMISSION_OP_MULTIPLY** = ``1``
将自发光颜色乘以自发光纹理的颜色。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_DistanceFadeMode:
.. rst-class:: classref-enumeration
enum **DistanceFadeMode**:
.. _class_BaseMaterial3D_constant_DISTANCE_FADE_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`DistanceFadeMode<enum_BaseMaterial3D_DistanceFadeMode>` **DISTANCE_FADE_DISABLED** = ``0``
不使用距离淡化。
.. _class_BaseMaterial3D_constant_DISTANCE_FADE_PIXEL_ALPHA:
.. rst-class:: classref-enumeration-constant
:ref:`DistanceFadeMode<enum_BaseMaterial3D_DistanceFadeMode>` **DISTANCE_FADE_PIXEL_ALPHA** = ``1``
根据每个像素与相机的距离,使用 Alpha 通道平滑地淡出对象。
.. _class_BaseMaterial3D_constant_DISTANCE_FADE_PIXEL_DITHER:
.. rst-class:: classref-enumeration-constant
:ref:`DistanceFadeMode<enum_BaseMaterial3D_DistanceFadeMode>` **DISTANCE_FADE_PIXEL_DITHER** = ``2``
根据每个像素与相机的距离,使用一种抖动方法平滑地淡出对象。抖动会根据设定的模式丢弃像素,在不启用透明的情况下平滑淡化。在某些硬件上,该选项可能比 :ref:`DISTANCE_FADE_PIXEL_ALPHA<class_BaseMaterial3D_constant_DISTANCE_FADE_PIXEL_ALPHA>` 更快。
.. _class_BaseMaterial3D_constant_DISTANCE_FADE_OBJECT_DITHER:
.. rst-class:: classref-enumeration-constant
:ref:`DistanceFadeMode<enum_BaseMaterial3D_DistanceFadeMode>` **DISTANCE_FADE_OBJECT_DITHER** = ``3``
根据对象与相机的距离,使用一种抖动方法平滑淡出对象。抖动根据设定的模式丢弃像素,在不启用透明的情况下平滑淡化。在某些硬件上,该选项可能比 :ref:`DISTANCE_FADE_PIXEL_ALPHA<class_BaseMaterial3D_constant_DISTANCE_FADE_PIXEL_ALPHA>`:ref:`DISTANCE_FADE_PIXEL_DITHER<class_BaseMaterial3D_constant_DISTANCE_FADE_PIXEL_DITHER>` 更快。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
属性说明
--------
.. _class_BaseMaterial3D_property_albedo_color:
.. rst-class:: classref-property
:ref:`Color<class_Color>` **albedo_color** = ``Color(1, 1, 1, 1)``
.. rst-class:: classref-property-setget
- void **set_albedo** **(** :ref:`Color<class_Color>` value **)**
- :ref:`Color<class_Color>` **get_albedo** **(** **)**
材质的基础颜色。
\ **注意:**\ 如果 :ref:`detail_enabled<class_BaseMaterial3D_property_detail_enabled>```true`` 并且指定了 :ref:`detail_albedo<class_BaseMaterial3D_property_detail_albedo>` 纹理,则 :ref:`albedo_color<class_BaseMaterial3D_property_albedo_color>` *不会*\ 调制细节纹理。可用于通过不指定反照率纹理并使用透明 :ref:`detail_albedo<class_BaseMaterial3D_property_detail_albedo>` 纹理,来为材质的部分区域着色。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_albedo_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **albedo_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
要乘以 :ref:`albedo_color<class_BaseMaterial3D_property_albedo_color>` 的纹理。用于对象的基本纹理。
如果纹理意外地显得太暗或太亮,请检查 :ref:`albedo_texture_force_srgb<class_BaseMaterial3D_property_albedo_texture_force_srgb>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_albedo_texture_force_srgb:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **albedo_texture_force_srgb** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则强制将 :ref:`albedo_texture<class_BaseMaterial3D_property_albedo_texture>` 从 sRGB 颜色空间转换为线性颜色空间。另见 :ref:`vertex_color_is_srgb<class_BaseMaterial3D_property_vertex_color_is_srgb>`\ 。
该属性应该只在需要时启用(通常在使用 :ref:`ViewportTexture<class_ViewportTexture>` 作为 :ref:`albedo_texture<class_BaseMaterial3D_property_albedo_texture>` 时)。如果 :ref:`albedo_texture_force_srgb<class_BaseMaterial3D_property_albedo_texture_force_srgb>` 在不应该的情况下为 ``true``\ ,则纹理会显得太暗。如果 :ref:`albedo_texture_force_srgb<class_BaseMaterial3D_property_albedo_texture_force_srgb>` 在不应该的情况下为 ``false``\ ,则纹理会显得太亮。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_albedo_texture_msdf:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **albedo_texture_msdf** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
启用多通道有符号距离场渲染着色器。使用 :ref:`msdf_pixel_range<class_BaseMaterial3D_property_msdf_pixel_range>`:ref:`msdf_outline_size<class_BaseMaterial3D_property_msdf_outline_size>` 配置 MSDF 参数。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_alpha_antialiasing_edge:
.. rst-class:: classref-property
:ref:`float<class_float>` **alpha_antialiasing_edge**
.. rst-class:: classref-property-setget
- void **set_alpha_antialiasing_edge** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_alpha_antialiasing_edge** **(** **)**
将在 Alpha 通道上应用抗锯齿的阈值。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_alpha_antialiasing_mode:
.. rst-class:: classref-property
:ref:`AlphaAntiAliasing<enum_BaseMaterial3D_AlphaAntiAliasing>` **alpha_antialiasing_mode**
.. rst-class:: classref-property-setget
- void **set_alpha_antialiasing** **(** :ref:`AlphaAntiAliasing<enum_BaseMaterial3D_AlphaAntiAliasing>` value **)**
- :ref:`AlphaAntiAliasing<enum_BaseMaterial3D_AlphaAntiAliasing>` **get_alpha_antialiasing** **(** **)**
要应用的 Alpha 抗锯齿类型。见 :ref:`AlphaAntiAliasing<enum_BaseMaterial3D_AlphaAntiAliasing>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_alpha_hash_scale:
.. rst-class:: classref-property
:ref:`float<class_float>` **alpha_hash_scale**
.. rst-class:: classref-property-setget
- void **set_alpha_hash_scale** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_alpha_hash_scale** **(** **)**
Alpha Hash 的哈希比例。推荐 ``0````2`` 之间的值。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_alpha_scissor_threshold:
.. rst-class:: classref-property
:ref:`float<class_float>` **alpha_scissor_threshold**
.. rst-class:: classref-property-setget
- void **set_alpha_scissor_threshold** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_alpha_scissor_threshold** **(** **)**
Alpha 剪刀将丢弃值的阈值。较高的值将导致更多像素被丢弃。如果材质在远处变得太不透明,请尝试增加 :ref:`alpha_scissor_threshold<class_BaseMaterial3D_property_alpha_scissor_threshold>`\ 。如果材质在远处消失,请尝试降低 :ref:`alpha_scissor_threshold<class_BaseMaterial3D_property_alpha_scissor_threshold>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_anisotropy:
.. rst-class:: classref-property
:ref:`float<class_float>` **anisotropy** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_anisotropy** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_anisotropy** **(** **)**
各向异性效果的强度。如果 :ref:`anisotropy_flowmap<class_BaseMaterial3D_property_anisotropy_flowmap>` 是一张带有 Alpha 通道的纹理,那么这个值会与其 Alpha 通道相乘。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_anisotropy_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **anisotropy_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果为 ``true``\ ,则启用各向异性。各向异性会改变镜面反射斑点的形状并将其与切线空间对齐。可用于拉丝铝材和毛发反射。
\ **注意:**\ 各向异性需要网格切线才能正常工作。如果网格中不包含切线,则各向异性效果会显得破碎。
\ **注意:**\ 材质的各向异性不应与各向异性纹理过滤相混淆,后者可以通过将 :ref:`texture_filter<class_BaseMaterial3D_property_texture_filter>` 设置为 :ref:`TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC<class_BaseMaterial3D_constant_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC>` 来启用。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_anisotropy_flowmap:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **anisotropy_flowmap**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
用于对切线图进行偏移的纹理,用于各向异性的计算,(如果存在 Alpha 通道还可以控制各向异性的效果。Flowmap 方向图纹理应该是一张派生图,红色通道表示 X 轴上的变形、绿色通道表示 Y 轴上的变形。小于 0.5 的值会朝负方向进行变形,而大于 0.5 的值则朝正方向变形。
纹理的 Alpha 通道如果存在,则会用于与 :ref:`anisotropy<class_BaseMaterial3D_property_anisotropy>` 效果的强度相乘。完全不透明的像素会保持原始强度,而完全透明的像素则会完全禁用各向异性效果。方向图纹理的蓝色通道会被忽略。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_ao_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **ao_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果为 ``true``\ ,启用环境遮挡。环境遮挡根据 :ref:`ao_texture<class_BaseMaterial3D_property_ao_texture>` 使区域变暗。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_ao_light_affect:
.. rst-class:: classref-property
:ref:`float<class_float>` **ao_light_affect** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_ao_light_affect** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_ao_light_affect** **(** **)**
环境遮挡对灯光照明的影响程度。如果 ``0``\ ,环境遮挡只影响环境光。如果 ``1``\ ,环境遮挡对灯光的影响和对环境光的影响一样大。这可以用来影响环境遮挡效果的强度,但通常看起来不真实。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_ao_on_uv2:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **ao_on_uv2** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,请使用 ``UV2`` 坐标从 :ref:`ao_texture<class_BaseMaterial3D_property_ao_texture>` 中查找。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_ao_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **ao_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
定义物体上给定点的环境遮挡量的纹理。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_ao_texture_channel:
.. rst-class:: classref-property
:ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **ao_texture_channel** = ``0``
.. rst-class:: classref-property-setget
- void **set_ao_texture_channel** **(** :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` value **)**
- :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **get_ao_texture_channel** **(** **)**
指定 :ref:`ao_texture<class_BaseMaterial3D_property_ao_texture>` 的通道,其中存储环境遮挡信息。可以用来在一个纹理中存储多个效果的信息。例如,如果你将金属效果存储在 R 通道中,将粗糙度存储在 B 通道中,将环境遮挡存储在 G 通道中,就可以减少你使用的纹理数量。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_backlight:
.. rst-class:: classref-property
:ref:`Color<class_Color>` **backlight** = ``Color(0, 0, 0, 1)``
.. rst-class:: classref-property-setget
- void **set_backlight** **(** :ref:`Color<class_Color>` value **)**
- :ref:`Color<class_Color>` **get_backlight** **(** **)**
背光效果使用的颜色。表示穿过物体的光。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_backlight_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **backlight_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果为 ``true``\ ,则启用背光效果。另请参阅 :ref:`subsurf_scatter_transmittance_enabled<class_BaseMaterial3D_property_subsurf_scatter_transmittance_enabled>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_backlight_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **backlight_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
用于控制每像素背光效果的纹理。与 :ref:`backlight<class_BaseMaterial3D_property_backlight>` 相加。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_billboard_keep_scale:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **billboard_keep_scale** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则着色器将保持为网格设置的缩放。否则,在做公告板时会丢失缩放。仅在 :ref:`billboard_mode<class_BaseMaterial3D_property_billboard_mode>` 不为 :ref:`BILLBOARD_DISABLED<class_BaseMaterial3D_constant_BILLBOARD_DISABLED>` 时适用。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_billboard_mode:
.. rst-class:: classref-property
:ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>` **billboard_mode** = ``0``
.. rst-class:: classref-property-setget
- void **set_billboard_mode** **(** :ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>` value **)**
- :ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>` **get_billboard_mode** **(** **)**
控制该对象如何面对相机。见 :ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>`\ 。
\ **注意:**\ 公告板模式不适合 VR因为当屏幕贴在你的头上而不是在桌子上时相机的左右向量不是水平的。详见 `GitHub issue #41567 <https://github.com/godotengine/godot/issues/41567>`__\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_blend_mode:
.. rst-class:: classref-property
:ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` **blend_mode** = ``0``
.. rst-class:: classref-property-setget
- void **set_blend_mode** **(** :ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` value **)**
- :ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` **get_blend_mode** **(** **)**
材质的混合模式。
\ **注意:**\ 除 ``Mix`` 以外的值会强制对象进入透明管道。见 :ref:`BlendMode<enum_BaseMaterial3D_BlendMode>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_clearcoat:
.. rst-class:: classref-property
:ref:`float<class_float>` **clearcoat** = ``1.0``
.. rst-class:: classref-property-setget
- void **set_clearcoat** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_clearcoat** **(** **)**
设置清漆效果的强度。设置为 ``0`` 看起来与禁用清漆效果相同。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_clearcoat_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **clearcoat_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果为 ``true``\ ,则启用清漆渲染。将辅助透明通道添加到照明计算中,从而产生一个添加的镜面反射斑点。这使得材质看起来好像它们表面上有一层透明层,该透明层可以是有光泽的也可以是粗糙的。
\ **注意:**\ 如果材质的 :ref:`shading_mode<class_BaseMaterial3D_property_shading_mode>` 为 :ref:`SHADING_MODE_UNSHADED<class_BaseMaterial3D_constant_SHADING_MODE_UNSHADED>`\ ,则清漆渲染不可见。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_clearcoat_roughness:
.. rst-class:: classref-property
:ref:`float<class_float>` **clearcoat_roughness** = ``0.5``
.. rst-class:: classref-property-setget
- void **set_clearcoat_roughness** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_clearcoat_roughness** **(** **)**
设置清漆通道的粗糙度。较高的值会产生较粗糙的清漆,而较低的值会产生更光滑的清漆。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_clearcoat_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **clearcoat_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
定义清漆效果的强度和清漆的光泽度的纹理。强度在红色通道中指定,光泽度在绿色通道中指定。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_cull_mode:
.. rst-class:: classref-property
:ref:`CullMode<enum_BaseMaterial3D_CullMode>` **cull_mode** = ``0``
.. rst-class:: classref-property-setget
- void **set_cull_mode** **(** :ref:`CullMode<enum_BaseMaterial3D_CullMode>` value **)**
- :ref:`CullMode<enum_BaseMaterial3D_CullMode>` **get_cull_mode** **(** **)**
根据三角形是朝向还是背离相机,来确定要剔除三角形的哪一侧。请参阅 :ref:`CullMode<enum_BaseMaterial3D_CullMode>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_depth_draw_mode:
.. rst-class:: classref-property
:ref:`DepthDrawMode<enum_BaseMaterial3D_DepthDrawMode>` **depth_draw_mode** = ``0``
.. rst-class:: classref-property-setget
- void **set_depth_draw_mode** **(** :ref:`DepthDrawMode<enum_BaseMaterial3D_DepthDrawMode>` value **)**
- :ref:`DepthDrawMode<enum_BaseMaterial3D_DepthDrawMode>` **get_depth_draw_mode** **(** **)**
确定深度渲染发生的时间。参见 :ref:`DepthDrawMode<enum_BaseMaterial3D_DepthDrawMode>`\ 。另见 :ref:`transparency<class_BaseMaterial3D_property_transparency>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_detail_albedo:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **detail_albedo**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
用于指定细节覆盖层颜色的纹理。\ :ref:`detail_albedo<class_BaseMaterial3D_property_detail_albedo>` 的 alpha 通道会被用作遮罩,即使该材质不透明。要将专用纹理用作遮罩,请参阅 :ref:`detail_mask<class_BaseMaterial3D_property_detail_mask>`\ 。
\ **注意:**\ :ref:`detail_albedo<class_BaseMaterial3D_property_detail_albedo>` *不会*\ 被 :ref:`albedo_color<class_BaseMaterial3D_property_albedo_color>` 调制。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_detail_blend_mode:
.. rst-class:: classref-property
:ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` **detail_blend_mode** = ``0``
.. rst-class:: classref-property-setget
- void **set_detail_blend_mode** **(** :ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` value **)**
- :ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` **get_detail_blend_mode** **(** **)**
指定 :ref:`detail_albedo<class_BaseMaterial3D_property_detail_albedo>` 应如何与当前 ``ALBEDO`` 混合。参阅 :ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` 选项。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_detail_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **detail_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果为 ``true``\ ,启用细节叠加。细节是基于 :ref:`detail_mask<class_BaseMaterial3D_property_detail_mask>` 和 :ref:`detail_albedo<class_BaseMaterial3D_property_detail_albedo>` 的 Alpha 通道,在对象表面上混合的第二个纹理。这可用于为对象添加变化,或混合两种不同的反照率/法线纹理。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_detail_mask:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **detail_mask**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
纹理用于指定细节纹理如何与基础纹理混合。\ :ref:`detail_mask<class_BaseMaterial3D_property_detail_mask>` 可以与 :ref:`detail_albedo<class_BaseMaterial3D_property_detail_albedo>` 的 Alpha 通道(如果有)一起使用。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_detail_normal:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **detail_normal**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
用于指定细节覆盖层逐像素法线的纹理。\ :ref:`detail_normal<class_BaseMaterial3D_property_detail_normal>` 纹理只使用红色和绿色通道;会忽略蓝色和 alpha 通道。从 :ref:`detail_normal<class_BaseMaterial3D_property_detail_normal>` 读取的法线是围绕 :ref:`Mesh<class_Mesh>` 所提供的表面法线的进行朝向的。
\ **注意:**\ Godot 期望法线贴图使用 X+、Y+、Z+ 坐标系。比较流行的引擎所期望的法线贴图坐标系见\ `这个页面 <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_detail_uv_layer:
.. rst-class:: classref-property
:ref:`DetailUV<enum_BaseMaterial3D_DetailUV>` **detail_uv_layer** = ``0``
.. rst-class:: classref-property-setget
- void **set_detail_uv** **(** :ref:`DetailUV<enum_BaseMaterial3D_DetailUV>` value **)**
- :ref:`DetailUV<enum_BaseMaterial3D_DetailUV>` **get_detail_uv** **(** **)**
指定细节层是使用 ``UV`` 还是 ``UV2``\ 。选项请参阅 :ref:`DetailUV<enum_BaseMaterial3D_DetailUV>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_diffuse_mode:
.. rst-class:: classref-property
:ref:`DiffuseMode<enum_BaseMaterial3D_DiffuseMode>` **diffuse_mode** = ``0``
.. rst-class:: classref-property-setget
- void **set_diffuse_mode** **(** :ref:`DiffuseMode<enum_BaseMaterial3D_DiffuseMode>` value **)**
- :ref:`DiffuseMode<enum_BaseMaterial3D_DiffuseMode>` **get_diffuse_mode** **(** **)**
用于漫反射光散射的算法。见 :ref:`DiffuseMode<enum_BaseMaterial3D_DiffuseMode>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_disable_ambient_light:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **disable_ambient_light** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则对象不接收环境光。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_disable_fog:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **disable_fog** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则对象不会受到雾的影响(包括体积雾和深度雾)。可用于不着色材质和透明材质(例如例子),不开启时即便完全透明也会受到影响。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_disable_receive_shadows:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **disable_receive_shadows** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则对象不会收到投射到其上的阴影。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_distance_fade_max_distance:
.. rst-class:: classref-property
:ref:`float<class_float>` **distance_fade_max_distance** = ``10.0``
.. rst-class:: classref-property-setget
- void **set_distance_fade_max_distance** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_distance_fade_max_distance** **(** **)**
物体看起来完全不透明的距离。
\ **注意:**\ 如果 :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>` 小于 :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>`\ ,则行为相反。物体将在 :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>` 处开始逐渐消失,并在到达 :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>` 时完全消失。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_distance_fade_min_distance:
.. rst-class:: classref-property
:ref:`float<class_float>` **distance_fade_min_distance** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_distance_fade_min_distance** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_distance_fade_min_distance** **(** **)**
物体开始变得可见的距离。如果物体的距离小于这个距离,它将是不可见的。
\ **注意:**\ 如果 :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>` 大于 :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>`\ ,则行为将相反。物体将在 :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>` 处开始逐渐消失,并在到达 :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>` 时完全消失。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_distance_fade_mode:
.. rst-class:: classref-property
:ref:`DistanceFadeMode<enum_BaseMaterial3D_DistanceFadeMode>` **distance_fade_mode** = ``0``
.. rst-class:: classref-property-setget
- void **set_distance_fade** **(** :ref:`DistanceFadeMode<enum_BaseMaterial3D_DistanceFadeMode>` value **)**
- :ref:`DistanceFadeMode<enum_BaseMaterial3D_DistanceFadeMode>` **get_distance_fade** **(** **)**
指定要使用的淡入淡出类型。可以是任何一个 :ref:`DistanceFadeMode<enum_BaseMaterial3D_DistanceFadeMode>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_emission:
.. rst-class:: classref-property
:ref:`Color<class_Color>` **emission** = ``Color(0, 0, 0, 1)``
.. rst-class:: classref-property-setget
- void **set_emission** **(** :ref:`Color<class_Color>` value **)**
- :ref:`Color<class_Color>` **get_emission** **(** **)**
发出的光的颜色。见 :ref:`emission_enabled<class_BaseMaterial3D_property_emission_enabled>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_emission_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **emission_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果为 ``true``\ ,则实体会发光。发光会使物体看起来更亮。如果使用 :ref:`VoxelGI<class_VoxelGI>`\ 、SDFGI、或 :ref:`LightmapGI<class_LightmapGI>`\ ,并且该对象用于烘焙光照,则该对象还可以将光投射到其他对象上。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_emission_energy_multiplier:
.. rst-class:: classref-property
:ref:`float<class_float>` **emission_energy_multiplier** = ``1.0``
.. rst-class:: classref-property-setget
- void **set_emission_energy_multiplier** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_emission_energy_multiplier** **(** **)**
发出的光的乘数。请参阅 :ref:`emission_enabled<class_BaseMaterial3D_property_emission_enabled>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_emission_intensity:
.. rst-class:: classref-property
:ref:`float<class_float>` **emission_intensity**
.. rst-class:: classref-property-setget
- void **set_emission_intensity** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_emission_intensity** **(** **)**
发出的光的亮度,单位是尼特(坎德拉/平方米)。仅在启用 :ref:`ProjectSettings.rendering/lights_and_shadows/use_physical_light_units<class_ProjectSettings_property_rendering/lights_and_shadows/use_physical_light_units>` 时可用。默认值大致相当于一个室内灯泡。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_emission_on_uv2:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **emission_on_uv2** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
使用 ``UV2``:ref:`emission_texture<class_BaseMaterial3D_property_emission_texture>` 中读取。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_emission_operator:
.. rst-class:: classref-property
:ref:`EmissionOperator<enum_BaseMaterial3D_EmissionOperator>` **emission_operator** = ``0``
.. rst-class:: classref-property-setget
- void **set_emission_operator** **(** :ref:`EmissionOperator<enum_BaseMaterial3D_EmissionOperator>` value **)**
- :ref:`EmissionOperator<enum_BaseMaterial3D_EmissionOperator>` **get_emission_operator** **(** **)**
设置 :ref:`emission<class_BaseMaterial3D_property_emission>`:ref:`emission_texture<class_BaseMaterial3D_property_emission_texture>` 的交互方式。可以是加法或乘法。可选值见 :ref:`EmissionOperator<enum_BaseMaterial3D_EmissionOperator>`
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_emission_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **emission_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
纹理,指定某点的表面发光的程度。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_fixed_size:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **fixed_size** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则无论距离远近,对象都以相同的大小渲染。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_grow:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **grow** = ``false``
.. rst-class:: classref-property-setget
- void **set_grow_enabled** **(** :ref:`bool<class_bool>` value **)**
- :ref:`bool<class_bool>` **is_grow_enabled** **(** **)**
如果为 ``true``\ ,则启用顶点增长设置。可用于创建基于网格的轮廓,请在第二个材质阶段中使用,并将 :ref:`cull_mode<class_BaseMaterial3D_property_cull_mode>` 设置为 :ref:`CULL_FRONT<class_BaseMaterial3D_constant_CULL_FRONT>`\ 。另见 :ref:`grow_amount<class_BaseMaterial3D_property_grow_amount>`\ 。
\ **注意:**\ 顶点增长无法新建顶点,这意味着锐角可能会造成可见的缺口。缓解方法是在设计网格时就只用平滑的法线,在 3D 创作软件中使用 `面加权法线 <https://wiki.polycount.com/wiki/Face_weighted_normals>`__\ 。这样增长就能够将所有轮廓连接到一起,和原始网格一致。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_grow_amount:
.. rst-class:: classref-property
:ref:`float<class_float>` **grow_amount** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_grow** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_grow** **(** **)**
将对象的顶点沿着对应的法线方向生长。仅在 :ref:`grow<class_BaseMaterial3D_property_grow>```true`` 时有效。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_heightmap_deep_parallax:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **heightmap_deep_parallax** = ``false``
.. rst-class:: classref-property-setget
- void **set_heightmap_deep_parallax** **(** :ref:`bool<class_bool>` value **)**
- :ref:`bool<class_bool>` **is_heightmap_deep_parallax_enabled** **(** **)**
如果为 ``true``\ ,则使用视差遮挡贴图来表示材质中的深度,而不是简单的偏移贴图(参见 :ref:`heightmap_enabled<class_BaseMaterial3D_property_heightmap_enabled>`\ )。这会产生更令人信服的深度效果,但在 GPU 上的成本要高得多。仅在具有显著视觉差异的材质上启用该功能。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_heightmap_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **heightmap_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果为 ``true``\ ,则启用高度映射(也称为“视差映射”或“深度映射”)。另见 :ref:`normal_enabled<class_BaseMaterial3D_property_normal_enabled>`\ 。高度映射是 GPU 上的一项要求很高的功能,因此它只能用于具有显著视觉差异的材质。
\ **注意:**\ 如果在同一材质上使用三平面贴图,则不支持高度图。如果 :ref:`uv1_triplanar<class_BaseMaterial3D_property_uv1_triplanar>` 被启用,则 :ref:`heightmap_enabled<class_BaseMaterial3D_property_heightmap_enabled>` 的值将被忽略。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_heightmap_flip_binormal:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **heightmap_flip_binormal** = ``false``
.. rst-class:: classref-property-setget
- void **set_heightmap_deep_parallax_flip_binormal** **(** :ref:`bool<class_bool>` value **)**
- :ref:`bool<class_bool>` **get_heightmap_deep_parallax_flip_binormal** **(** **)**
如果为 ``true``\ ,则在解释高度图时翻转网格的副法线向量。如果相机移动时高度图效果看起来很奇怪(即使使用合理的 :ref:`heightmap_scale<class_BaseMaterial3D_property_heightmap_scale>`\ ),请尝试将该属性设置为 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_heightmap_flip_tangent:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **heightmap_flip_tangent** = ``false``
.. rst-class:: classref-property-setget
- void **set_heightmap_deep_parallax_flip_tangent** **(** :ref:`bool<class_bool>` value **)**
- :ref:`bool<class_bool>` **get_heightmap_deep_parallax_flip_tangent** **(** **)**
如果为 ``true``\ ,则在解释高度图时翻转网格的切线向量。如果相机移动时高度图效果看起来很奇怪(即使使用合理的 :ref:`heightmap_scale<class_BaseMaterial3D_property_heightmap_scale>`\ ),请尝试将该属性设置为 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_heightmap_flip_texture:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **heightmap_flip_texture** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则将高度图纹理解释为深度图,与较暗的值相比,较亮的值在高度上显得“更低”。
可以启用该功能以与为 Godot 3.x 编写的某些材质兼容。如果在 Godot 3.x 中使用反转导入选项来反转深度图,则不需要这样做,在这种情况下,\ :ref:`heightmap_flip_texture<class_BaseMaterial3D_property_heightmap_flip_texture>` 应该保持为 ``false``\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_heightmap_max_layers:
.. rst-class:: classref-property
:ref:`int<class_int>` **heightmap_max_layers**
.. rst-class:: classref-property-setget
- void **set_heightmap_deep_parallax_max_layers** **(** :ref:`int<class_int>` value **)**
- :ref:`int<class_int>` **get_heightmap_deep_parallax_max_layers** **(** **)**
当相机靠近材质时用于视差遮挡贴图的层数。较高的值会产生更令人信服的深度效果,尤其是在具有陡峭高度变化的材质中。较高的值会显著地增加 GPU 的成本,因此只能在会产生显著视觉差异的材质上增加它。
\ **注意:**\ 仅当 :ref:`heightmap_deep_parallax<class_BaseMaterial3D_property_heightmap_deep_parallax>```true`` 时有效。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_heightmap_min_layers:
.. rst-class:: classref-property
:ref:`int<class_int>` **heightmap_min_layers**
.. rst-class:: classref-property-setget
- void **set_heightmap_deep_parallax_min_layers** **(** :ref:`int<class_int>` value **)**
- :ref:`int<class_int>` **get_heightmap_deep_parallax_min_layers** **(** **)**
当相机远离材质时用于视差遮挡贴图的层数。较高的值会产生更令人信服的深度效果,尤其是在具有陡峭高度变化的材质中。较高的值会显著地增加 GPU 的成本,因此只能在会产生显著视觉差异的材质上增加它。
\ **注意:**\ 仅当 :ref:`heightmap_deep_parallax<class_BaseMaterial3D_property_heightmap_deep_parallax>```true`` 时有效。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_heightmap_scale:
.. rst-class:: classref-property
:ref:`float<class_float>` **heightmap_scale** = ``5.0``
.. rst-class:: classref-property-setget
- void **set_heightmap_scale** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_heightmap_scale** **(** **)**
用于视差效果的高度图缩放(参见 :ref:`heightmap_enabled<class_BaseMaterial3D_property_heightmap_enabled>`\ )。调整默认值,使最高点(值 = 255看起来比最低点值 = 0高 5 厘米。较高的值会导致更深的外观,但可能会导致从倾斜角度查看材质时出现伪影,尤其是在相机移动时。负值可用于反转视差效果,但这与使用 :ref:`heightmap_flip_texture<class_BaseMaterial3D_property_heightmap_flip_texture>` 反转纹理不同,因为材质也会看起来“更接近”相机。在大多数情况下,\ :ref:`heightmap_scale<class_BaseMaterial3D_property_heightmap_scale>` 应保持为正值。
\ **注意:**\ 如果忽略这个值后高度图效果看起来很奇怪,请尝试调整 :ref:`heightmap_flip_binormal<class_BaseMaterial3D_property_heightmap_flip_binormal>`:ref:`heightmap_flip_tangent<class_BaseMaterial3D_property_heightmap_flip_tangent>`\ 。另请参阅 :ref:`heightmap_texture<class_BaseMaterial3D_property_heightmap_texture>` 以获取有关创作高度图纹理的建议,因为创作高度图纹理的方式会影响 :ref:`heightmap_scale<class_BaseMaterial3D_property_heightmap_scale>` 的行为方式。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_heightmap_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **heightmap_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
用作高度图的纹理。另见 :ref:`heightmap_enabled<class_BaseMaterial3D_property_heightmap_enabled>`\ 。
为获得最佳效果,应将纹理归一化(减少 :ref:`heightmap_scale<class_BaseMaterial3D_property_heightmap_scale>` 以进行补偿)。在 `GIMP <https://gimp.org>`__ 中,这可以使用\ **颜色Colors > 自动Auto > 均衡Equalize**\ 来完成。如果纹理只使用其可用范围的一小部分,则视差效果可能看起来很奇怪,尤其是当相机移动时。
\ **注意:**\ 为了减少内存使用和缩短加载时间,可以使用分辨率较低的高度图纹理,因为大多数高度图仅包含低频数据。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_metallic:
.. rst-class:: classref-property
:ref:`float<class_float>` **metallic** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_metallic** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_metallic** **(** **)**
高值使材质看起来更像金属。非金属使用其反射率作为漫射色,并在镜面反射上添加漫射。对于非金属,反射出现在反照率颜色之上。金属使用其反射率作为镜面反射的倍数,并将漫射色设置为黑色,从而产生有色反射。材质在全金属或全非金属时效果更好,介于 ``0````1`` 之间的值只能用于金属和非金属部分之间的混合。要改变反射量,请使用\ :ref:`roughness<class_BaseMaterial3D_property_roughness>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_metallic_specular:
.. rst-class:: classref-property
:ref:`float<class_float>` **metallic_specular** = ``0.5``
.. rst-class:: classref-property-setget
- void **set_specular** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_specular** **(** **)**
调整镜面反射的强度。镜面反射由场景反射和镜面波瓣组成,镜面波瓣是从光源反射的亮点。当设置为 ``0.0`` 时,镜面反射将不可见。这与 :ref:`SPECULAR_DISABLED<class_BaseMaterial3D_constant_SPECULAR_DISABLED>` :ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>` 不同,因为 :ref:`SPECULAR_DISABLED<class_BaseMaterial3D_constant_SPECULAR_DISABLED>` 仅适用于来自光源的镜面反射波瓣。
\ **注意:**\ 与 :ref:`metallic<class_BaseMaterial3D_property_metallic>` 不同,这不是节能的,所以在大多数情况下应将其保留在 ``0.5``\ 。另见 :ref:`roughness<class_BaseMaterial3D_property_roughness>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_metallic_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **metallic_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
用于指定对象的金属质感。这个值会与 :ref:`metallic<class_BaseMaterial3D_property_metallic>` 相乘。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_metallic_texture_channel:
.. rst-class:: classref-property
:ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **metallic_texture_channel** = ``0``
.. rst-class:: classref-property-setget
- void **set_metallic_texture_channel** **(** :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` value **)**
- :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **get_metallic_texture_channel** **(** **)**
指定存储金属度信息的 :ref:`metallic_texture<class_BaseMaterial3D_property_metallic_texture>` 的通道。当将多个效果的信息存储在单个纹理中时,这很有用。例如,如果在红色通道中存储金属度,在蓝色通道中存储粗糙度,在绿色通道中存储环境遮挡,则可以减少使用的纹理数量。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_msdf_outline_size:
.. rst-class:: classref-property
:ref:`float<class_float>` **msdf_outline_size** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_msdf_outline_size** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_msdf_outline_size** **(** **)**
形状轮廓的宽度。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_msdf_pixel_range:
.. rst-class:: classref-property
:ref:`float<class_float>` **msdf_pixel_range** = ``4.0``
.. rst-class:: classref-property-setget
- void **set_msdf_pixel_range** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_msdf_pixel_range** **(** **)**
围绕最小和最大可表示有符号距离之间的形状的范围的宽度。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_no_depth_test:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **no_depth_test** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,深度测试被禁用,对象将按渲染顺序绘制。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_normal_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **normal_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果为 ``true``\ ,则启用法线映射。略微影响性能,尤其在移动 GPU 上。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_normal_scale:
.. rst-class:: classref-property
:ref:`float<class_float>` **normal_scale** = ``1.0``
.. rst-class:: classref-property-setget
- void **set_normal_scale** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_normal_scale** **(** **)**
法线贴图的效果强度。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_normal_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **normal_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
用于指定给定像素的法线的纹理。\ :ref:`normal_texture<class_BaseMaterial3D_property_normal_texture>` 只使用红色和绿色通道;会忽略蓝色和 alpha 通道。从 :ref:`normal_texture<class_BaseMaterial3D_property_normal_texture>` 读取的法线是围绕 :ref:`Mesh<class_Mesh>` 所提供的表面法线的进行朝向的。
\ **注意:**\ 该网格必须在其顶点数据中同时定义法线和切线。否则法线贴图将无法正确渲染,只会使整个表面变暗。如果使用 :ref:`SurfaceTool<class_SurfaceTool>` 创建几何体,可以使用 :ref:`SurfaceTool.generate_normals<class_SurfaceTool_method_generate_normals>`:ref:`SurfaceTool.generate_tangents<class_SurfaceTool_method_generate_tangents>` 分别自动生成法线和切线。
\ **注意:**\ Godot 期望法线贴图使用 X+、Y+、Z+ 坐标系。比较流行的引擎所期望的法线贴图坐标系见\ `这个页面 <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__\ 。
\ **注意:**\ 如果 :ref:`detail_enabled<class_BaseMaterial3D_property_detail_enabled>```true``\ ,则 :ref:`detail_albedo<class_BaseMaterial3D_property_detail_albedo>` 纹理将在 :ref:`normal_texture<class_BaseMaterial3D_property_normal_texture>` *下方*\ 绘制。要在 :ref:`detail_albedo<class_BaseMaterial3D_property_detail_albedo>` 纹理\ *之上*\ 显示法线贴图,请改用 :ref:`detail_normal<class_BaseMaterial3D_property_detail_normal>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_orm_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **orm_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
要使用的遮挡/粗糙度/金属纹理。这是对 :ref:`ORMMaterial3D<class_ORMMaterial3D>` 中 :ref:`ao_texture<class_BaseMaterial3D_property_ao_texture>`\ 、\ :ref:`roughness_texture<class_BaseMaterial3D_property_roughness_texture>`\ 、和 :ref:`metallic_texture<class_BaseMaterial3D_property_metallic_texture>` 的更有效替代。环境遮挡被存储在红色通道中。粗糙度贴图被存储在绿色通道中。金属度贴图被存储在蓝色通道中。Alpha 通道将被忽略。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_particles_anim_h_frames:
.. rst-class:: classref-property
:ref:`int<class_int>` **particles_anim_h_frames**
.. rst-class:: classref-property-setget
- void **set_particles_anim_h_frames** **(** :ref:`int<class_int>` value **)**
- :ref:`int<class_int>` **get_particles_anim_h_frames** **(** **)**
粒子精灵表中的水平帧数。仅在使用 :ref:`BILLBOARD_PARTICLES<class_BaseMaterial3D_constant_BILLBOARD_PARTICLES>` 时启用。见 :ref:`billboard_mode<class_BaseMaterial3D_property_billboard_mode>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_particles_anim_loop:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **particles_anim_loop**
.. rst-class:: classref-property-setget
- void **set_particles_anim_loop** **(** :ref:`bool<class_bool>` value **)**
- :ref:`bool<class_bool>` **get_particles_anim_loop** **(** **)**
如果为 ``true``\ ,则循环粒子动画。仅在使用 :ref:`BILLBOARD_PARTICLES<class_BaseMaterial3D_constant_BILLBOARD_PARTICLES>` 时启用。见 :ref:`billboard_mode<class_BaseMaterial3D_property_billboard_mode>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_particles_anim_v_frames:
.. rst-class:: classref-property
:ref:`int<class_int>` **particles_anim_v_frames**
.. rst-class:: classref-property-setget
- void **set_particles_anim_v_frames** **(** :ref:`int<class_int>` value **)**
- :ref:`int<class_int>` **get_particles_anim_v_frames** **(** **)**
粒子精灵表中的垂直帧数。仅在使用 :ref:`BILLBOARD_PARTICLES<class_BaseMaterial3D_constant_BILLBOARD_PARTICLES>` 时启用。见 :ref:`billboard_mode<class_BaseMaterial3D_property_billboard_mode>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_point_size:
.. rst-class:: classref-property
:ref:`float<class_float>` **point_size** = ``1.0``
.. rst-class:: classref-property-setget
- void **set_point_size** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_point_size** **(** **)**
点大小,单位为像素。见 :ref:`use_point_size<class_BaseMaterial3D_property_use_point_size>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_proximity_fade_distance:
.. rst-class:: classref-property
:ref:`float<class_float>` **proximity_fade_distance** = ``1.0``
.. rst-class:: classref-property-setget
- void **set_proximity_fade_distance** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_proximity_fade_distance** **(** **)**
渐变效果发生的距离。距离越大,物体褪色的时间越长。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_proximity_fade_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **proximity_fade_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_proximity_fade_enabled** **(** :ref:`bool<class_bool>` value **)**
- :ref:`bool<class_bool>` **is_proximity_fade_enabled** **(** **)**
如果为 ``true``\ ,则启用接近淡出效果。邻近淡出效果会根据每个像素与另一个对象的距离淡出。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_refraction_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **refraction_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果为 ``true``\ ,则启用折射效果。根据来自对象后面的光线来扭曲透明度。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_refraction_scale:
.. rst-class:: classref-property
:ref:`float<class_float>` **refraction_scale** = ``0.05``
.. rst-class:: classref-property-setget
- void **set_refraction** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_refraction** **(** **)**
折射效果的强度。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_refraction_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **refraction_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
控制每个像素折射强度的纹理。会与 :ref:`refraction_scale<class_BaseMaterial3D_property_refraction_scale>` 相乘。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_refraction_texture_channel:
.. rst-class:: classref-property
:ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **refraction_texture_channel** = ``0``
.. rst-class:: classref-property-setget
- void **set_refraction_texture_channel** **(** :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` value **)**
- :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **get_refraction_texture_channel** **(** **)**
指定存储折射信息的 :ref:`refraction_texture<class_BaseMaterial3D_property_refraction_texture>` 的通道。当将多个效果的信息存储在单个纹理中时,这很有用。例如,如果在红色通道中存储折射,在蓝色通道中存储粗糙度,在绿色通道中存储环境遮挡,则可以减少使用的纹理数量。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_rim:
.. rst-class:: classref-property
:ref:`float<class_float>` **rim** = ``1.0``
.. rst-class:: classref-property-setget
- void **set_rim** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_rim** **(** **)**
设置边缘照明效果的强度。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_rim_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **rim_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果为 ``true``\ ,则启用边缘效果。边缘照明会增加物体上掠射角度的亮度。
\ **注意:**\ 如果材质的 :ref:`shading_mode<class_BaseMaterial3D_property_shading_mode>` 为 :ref:`SHADING_MODE_UNSHADED<class_BaseMaterial3D_constant_SHADING_MODE_UNSHADED>`\ ,则边缘照明不可见。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_rim_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **rim_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
纹理用于设置每个像素的边缘光照效果的强度。会与 :ref:`rim<class_BaseMaterial3D_property_rim>` 相乘。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_rim_tint:
.. rst-class:: classref-property
:ref:`float<class_float>` **rim_tint** = ``0.5``
.. rst-class:: classref-property-setget
- void **set_rim_tint** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_rim_tint** **(** **)**
渲染边缘效果时,混合光照色和反射色的数量。如果 ``0`` 表示使用光色,\ ``1`` 表示使用反照色。一般来说,中间值的效果最好。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_roughness:
.. rst-class:: classref-property
:ref:`float<class_float>` **roughness** = ``1.0``
.. rst-class:: classref-property-setget
- void **set_roughness** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_roughness** **(** **)**
表面反射。\ ``0`` 值表示一面完美的镜像,而 ``1`` 值则完全模糊了反射。另请参阅 :ref:`metallic<class_BaseMaterial3D_property_metallic>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_roughness_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **roughness_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
用于控制每个像素粗糙度的纹理。会与 :ref:`roughness<class_BaseMaterial3D_property_roughness>` 相乘。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_roughness_texture_channel:
.. rst-class:: classref-property
:ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **roughness_texture_channel** = ``0``
.. rst-class:: classref-property-setget
- void **set_roughness_texture_channel** **(** :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` value **)**
- :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>` **get_roughness_texture_channel** **(** **)**
指定存储粗糙度信息的\ :ref:`roughness_texture<class_BaseMaterial3D_property_roughness_texture>`\ 的通道。当将多个效果的信息存储在单个纹理中时,这很有用。例如,如果在红色通道中存储金属度,在蓝色通道中存储粗糙度,在绿色通道中存储环境遮挡,则可以减少使用的纹理数量。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_shading_mode:
.. rst-class:: classref-property
:ref:`ShadingMode<enum_BaseMaterial3D_ShadingMode>` **shading_mode** = ``1``
.. rst-class:: classref-property-setget
- void **set_shading_mode** **(** :ref:`ShadingMode<enum_BaseMaterial3D_ShadingMode>` value **)**
- :ref:`ShadingMode<enum_BaseMaterial3D_ShadingMode>` **get_shading_mode** **(** **)**
设置是否发生着色,逐像素、逐顶点或无阴影。逐顶点时照明速度更快,使其成为移动应用程序的最佳选择,但它看起来比逐像素时差很多。无阴影渲染是最快的,但会禁用与灯光的所有交互。
\ **注意:**\ 设置着色模式为顶点着色时目前没有效果,因为顶点着色还没有实现。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_shadow_to_opacity:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **shadow_to_opacity** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,启用“阴影到不透明度”的渲染模式,在该模式下,光照会修改 Alpha使阴影区域不透明非阴影区域透明。对于在 AR 中把阴影叠加到相机画面上很有用。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_specular_mode:
.. rst-class:: classref-property
:ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>` **specular_mode** = ``0``
.. rst-class:: classref-property-setget
- void **set_specular_mode** **(** :ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>` value **)**
- :ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>` **get_specular_mode** **(** **)**
渲染镜面反射斑点的方法。请参阅 :ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>`\ 。
\ **注意:**\ :ref:`specular_mode<class_BaseMaterial3D_property_specular_mode>` 仅适用于镜面反射斑点。它不影响来自天空的镜面反射、屏幕空间反射、\ :ref:`VoxelGI<class_VoxelGI>`\ 、SDFGI 或 :ref:`ReflectionProbe<class_ReflectionProbe>`\ 。要同时禁用来自这些源的反射,请将 :ref:`metallic_specular<class_BaseMaterial3D_property_metallic_specular>` 设置为 ``0.0``\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_subsurf_scatter_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **subsurf_scatter_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果为 ``true``\ ,则启用次表面散射。模拟光线穿透物体表面,被散射,然后出现。次表面散射质量由 :ref:`ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality<class_ProjectSettings_property_rendering/environment/subsurface_scattering/subsurface_scattering_quality>` 控制。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_subsurf_scatter_skin_mode:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **subsurf_scatter_skin_mode** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则次表面散射将使用针对人类皮肤的颜色和密度进行优化的特殊模式,例如提升次表面散射中红色通道的强度。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_subsurf_scatter_strength:
.. rst-class:: classref-property
:ref:`float<class_float>` **subsurf_scatter_strength** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_subsurface_scattering_strength** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_subsurface_scattering_strength** **(** **)**
次表面散射效果的强度。效果的深度也受到全局的 :ref:`ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_scale<class_ProjectSettings_property_rendering/environment/subsurface_scattering/subsurface_scattering_scale>` 的控制。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_subsurf_scatter_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **subsurf_scatter_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
用于控制次表面散射强度的纹理。存储在红色纹理通道中。会与 :ref:`subsurf_scatter_strength<class_BaseMaterial3D_property_subsurf_scatter_strength>` 相乘。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_subsurf_scatter_transmittance_boost:
.. rst-class:: classref-property
:ref:`float<class_float>` **subsurf_scatter_transmittance_boost** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_transmittance_boost** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_transmittance_boost** **(** **)**
次表面散射透射率效果的强度。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_subsurf_scatter_transmittance_color:
.. rst-class:: classref-property
:ref:`Color<class_Color>` **subsurf_scatter_transmittance_color** = ``Color(1, 1, 1, 1)``
.. rst-class:: classref-property-setget
- void **set_transmittance_color** **(** :ref:`Color<class_Color>` value **)**
- :ref:`Color<class_Color>` **get_transmittance_color** **(** **)**
与次表面散射透射率效果相乘的颜色。\ :ref:`subsurf_scatter_skin_mode<class_BaseMaterial3D_property_subsurf_scatter_skin_mode>```true`` 时忽略。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_subsurf_scatter_transmittance_depth:
.. rst-class:: classref-property
:ref:`float<class_float>` **subsurf_scatter_transmittance_depth** = ``0.1``
.. rst-class:: classref-property-setget
- void **set_transmittance_depth** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_transmittance_depth** **(** **)**
次表面散射透射率效果的深度。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_subsurf_scatter_transmittance_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **subsurf_scatter_transmittance_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果为 ``true``\ ,则启用次表面散射透射率。仅当 :ref:`subsurf_scatter_enabled<class_BaseMaterial3D_property_subsurf_scatter_enabled>```true`` 时有效。另请参见 :ref:`backlight_enabled<class_BaseMaterial3D_property_backlight_enabled>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_subsurf_scatter_transmittance_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **subsurf_scatter_transmittance_texture**
.. rst-class:: classref-property-setget
- void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
用于乘以次表面散射透射率强度的纹理。另请参见 :ref:`subsurf_scatter_texture<class_BaseMaterial3D_property_subsurf_scatter_texture>`\ 。\ :ref:`subsurf_scatter_skin_mode<class_BaseMaterial3D_property_subsurf_scatter_skin_mode>```true`` 时忽略。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_texture_filter:
.. rst-class:: classref-property
:ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` **texture_filter** = ``3``
.. rst-class:: classref-property-setget
- void **set_texture_filter** **(** :ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` value **)**
- :ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` **get_texture_filter** **(** **)**
纹理的过滤标志。有关选项,请参阅 :ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>`\ 。
\ **注意:**\ 即便这里选择了最近邻过滤,\ :ref:`heightmap_texture<class_BaseMaterial3D_property_heightmap_texture>` 也始终使用线性过滤采样。这是为了确保高度图效果看起来符合预期。如果需要像素之间的高度过渡更加清晰,请在图像编辑器中使用最近邻过滤调整高度图纹理的大小。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_texture_repeat:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **texture_repeat** = ``true``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
纹理的重复标志。可选项见 :ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_transparency:
.. rst-class:: classref-property
:ref:`Transparency<enum_BaseMaterial3D_Transparency>` **transparency** = ``0``
.. rst-class:: classref-property-setget
- void **set_transparency** **(** :ref:`Transparency<enum_BaseMaterial3D_Transparency>` value **)**
- :ref:`Transparency<enum_BaseMaterial3D_Transparency>` **get_transparency** **(** **)**
该材质的透明模式。一些透明模式将禁用阴影投射。除了 :ref:`TRANSPARENCY_DISABLED<class_BaseMaterial3D_constant_TRANSPARENCY_DISABLED>` 以外的任何透明模式都会对性能产生较大的影响。另见 :ref:`blend_mode<class_BaseMaterial3D_property_blend_mode>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_use_particle_trails:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **use_particle_trails** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则启用 :ref:`GPUParticles3D<class_GPUParticles3D>` 尾迹所需的部分着色器以发挥作用。这也需要使用具有适当蒙皮的网格,例如 :ref:`RibbonTrailMesh<class_RibbonTrailMesh>` 或 :ref:`TubeTrailMesh<class_TubeTrailMesh>`\ 。在 :ref:`GPUParticles3D<class_GPUParticles3D>` 网格中使用的材质之外启用该功能将破坏材质渲染。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_use_point_size:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **use_point_size** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,可以改变渲染点大小。
\ **注意:**\ 这仅对几何形状基于点而非基于三角形的对象有效。另见 :ref:`point_size<class_BaseMaterial3D_property_point_size>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_uv1_offset:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **uv1_offset** = ``Vector3(0, 0, 0)``
.. rst-class:: classref-property-setget
- void **set_uv1_offset** **(** :ref:`Vector3<class_Vector3>` value **)**
- :ref:`Vector3<class_Vector3>` **get_uv1_offset** **(** **)**
``UV`` 坐标的偏移量。这个量将被添加到顶点函数中的 ``UV`` 中。可以用来偏移纹理。Z 分量在启用 :ref:`uv1_triplanar<class_BaseMaterial3D_property_uv1_triplanar>` 时使用,在其他任何地方都不会被使用。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_uv1_scale:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **uv1_scale** = ``Vector3(1, 1, 1)``
.. rst-class:: classref-property-setget
- void **set_uv1_scale** **(** :ref:`Vector3<class_Vector3>` value **)**
- :ref:`Vector3<class_Vector3>` **get_uv1_scale** **(** **)**
``UV`` 坐标的缩放值。将与顶点函数中的 ``UV`` 相乘。Z 分量在启用 :ref:`uv1_triplanar<class_BaseMaterial3D_property_uv1_triplanar>` 时使用,在其他任何地方都不会被使用。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_uv1_triplanar:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **uv1_triplanar** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,纹理将不使用 ``UV``\ 而是使用三平面纹理查找来确定如何应用纹理。三平面纹理使用对象表面的方向来混合纹理坐标之间。它从源纹理中读取3次每个轴一次然后根据像素与每个轴的紧密程度在结果之间进行混合。这通常用于自然特征以获得真实的材质混合。由于三平面纹理处理每一个像素需要更多的纹理读取所以它比普通的UV纹理处理要慢得多。此外由于它是在三个轴之间混合纹理所以当你试图实现清晰的纹理时它是不合适的。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_uv1_triplanar_sharpness:
.. rst-class:: classref-property
:ref:`float<class_float>` **uv1_triplanar_sharpness** = ``1.0``
.. rst-class:: classref-property-setget
- void **set_uv1_triplanar_blend_sharpness** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_uv1_triplanar_blend_sharpness** **(** **)**
数字越小使纹理混合得越柔和,数字越大使纹理混合得越锐利。
\ **注意:**\ :ref:`uv1_triplanar_sharpness<class_BaseMaterial3D_property_uv1_triplanar_sharpness>` 被钳制在 ``0.0````150.0``\ (包括)之间,因为超出该范围的值可能看起来会破损,具体取决于网格。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_uv1_world_triplanar:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **uv1_world_triplanar** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则 ``UV`` 的三平面映射是在世界空间而不是对象局部空间中计算的。另见 :ref:`uv1_triplanar<class_BaseMaterial3D_property_uv1_triplanar>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_uv2_offset:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **uv2_offset** = ``Vector3(0, 0, 0)``
.. rst-class:: classref-property-setget
- void **set_uv2_offset** **(** :ref:`Vector3<class_Vector3>` value **)**
- :ref:`Vector3<class_Vector3>` **get_uv2_offset** **(** **)**
``UV2`` 坐标的偏移量。在顶点函数中这个量将被加到 ``UV2`` 中。这可以用来偏移纹理。Z 分量仅在启用 :ref:`uv2_triplanar<class_BaseMaterial3D_property_uv2_triplanar>` 时使用,在其他任何地方不会被使用。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_uv2_scale:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **uv2_scale** = ``Vector3(1, 1, 1)``
.. rst-class:: classref-property-setget
- void **set_uv2_scale** **(** :ref:`Vector3<class_Vector3>` value **)**
- :ref:`Vector3<class_Vector3>` **get_uv2_scale** **(** **)**
``UV2`` 坐标的缩放比例。在顶点函数中该属性乘以 ``UV2``\ 。Z 分量仅在启用 :ref:`uv2_triplanar<class_BaseMaterial3D_property_uv2_triplanar>` 时使用,在其他任何地方不会被使用。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_uv2_triplanar:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **uv2_triplanar** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,纹理将不使用 ``UV``\ ,而是使用三平面纹理查找来确定如何应用纹理。三平面纹理使用对象表面的方向来混合纹理坐标之间。它从源纹理中读取 3 次,每个轴一次,然后根据像素与每个轴的紧密程度在结果之间进行混合。这通常用于自然特征,以获得真实的材质混合。由于三平面纹理处理每一个像素需要更多的纹理读取,所以它比普通的 UV 纹理处理要慢得多。此外,由于它是在三个轴之间混合纹理,所以当你试图实现清晰的纹理时,它是不合适的。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_uv2_triplanar_sharpness:
.. rst-class:: classref-property
:ref:`float<class_float>` **uv2_triplanar_sharpness** = ``1.0``
.. rst-class:: classref-property-setget
- void **set_uv2_triplanar_blend_sharpness** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_uv2_triplanar_blend_sharpness** **(** **)**
数字越小使纹理混合得越柔和,数字越大使纹理混合得越锐利。
\ **注意:**\ :ref:`uv2_triplanar_sharpness<class_BaseMaterial3D_property_uv2_triplanar_sharpness>` 被钳制在 ``0.0````150.0``\ (包括)之间,因为超出该范围的值可能看起来会破损,具体取决于网格。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_uv2_world_triplanar:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **uv2_world_triplanar** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则 ``UV2`` 的三平面映射是在世界空间而不是对象局部空间中计算的。另见 :ref:`uv2_triplanar<class_BaseMaterial3D_property_uv2_triplanar>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_vertex_color_is_srgb:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **vertex_color_is_srgb** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则顶点颜色被认为使用 sRGB 颜色空间存储,并在渲染期间被转换为线性颜色空间。如果为 ``false``\ ,则顶点颜色被认为使用线性颜色空间存储并按原样渲染。另见 :ref:`albedo_texture_force_srgb<class_BaseMaterial3D_property_albedo_texture_force_srgb>`\ 。
\ **注意:**\ 仅在使用 Forward+ 和移动渲染方式时有效,不支持兼容模式。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_vertex_color_use_as_albedo:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **vertex_color_use_as_albedo** = ``false``
.. rst-class:: classref-property-setget
- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果为 ``true``\ ,则使用顶点颜色作为反射率颜色。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
方法说明
--------
.. _class_BaseMaterial3D_method_get_feature:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **get_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature **)** |const|
如果指定的 :ref:`Feature<enum_BaseMaterial3D_Feature>` 被启用,返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_method_get_flag:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
如果指定的标志被启用,返回 ``true``\ 。选项见 :ref:`Flags<enum_BaseMaterial3D_Flags>` 枚举值。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_method_get_texture:
.. rst-class:: classref-method
:ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param **)** |const|
返回与指定 :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` 关联的 :ref:`Texture2D<class_Texture2D>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_method_set_feature:
.. rst-class:: classref-method
void **set_feature** **(** :ref:`Feature<enum_BaseMaterial3D_Feature>` feature, :ref:`bool<class_bool>` enable **)**
如果为 ``true``\ ,则启用指定的 :ref:`Feature<enum_BaseMaterial3D_Feature>`\ 。\ **BaseMaterial3D** 中的许多功能都需要在使用前启用。这样,仅在指定时才会产生使用该功能的成本。也可以通过将相应的成员设置为 ``true`` 来启用功能。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_method_set_flag:
.. rst-class:: classref-method
void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
如果为 ``true``\ ,则启用指定的标志。标志是可以打开和关闭的可选行为。使用该函数一次只能启用一个标志,不能将标志枚举值像位掩码一样进行合并,一次启用或禁用多个标志。也可以通过将相应成员设置为 ``true`` 来启用标志。选项见 :ref:`Flags<enum_BaseMaterial3D_Flags>` 枚举值。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_method_set_texture:
.. rst-class:: classref-method
void **set_texture** **(** :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
设置由 ``param`` 指定的插槽的纹理。有关可用插槽,请参阅 :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ 。
.. |virtual| replace:: :abbr:`virtual (本方法通常需要用户覆盖才能生效。)`
.. |const| replace:: :abbr:`const (本方法没有副作用。不会修改该实例的任何成员变量。)`
.. |vararg| replace:: :abbr:`vararg (本方法除了在此处描述的参数外,还能够继续接受任意数量的参数。)`
.. |constructor| replace:: :abbr:`constructor (本方法用于构造某个类型。)`
.. |static| replace:: :abbr:`static (调用本方法无需实例,所以可以直接使用类名调用。)`
.. |operator| replace:: :abbr:`operator (本方法描述的是使用本类型作为左操作数的有效操作符。)`
.. |bitfield| replace:: :abbr:`BitField (这个值是由下列标志构成的位掩码整数。)`