Files
godot-docs-l10n/classes/zh_Hans/class_basematerial3d.rst
Rémi Verschelde c3f2364c10 Sync classref with 4.6 branch
Lots of translations invalidated (fuzzied) as we just synced Weblate.
2025-12-19 16:39:51 +01:00

4009 lines
203 KiB
ReStructuredText
Raw Permalink 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
.. _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:`bent_normal_enabled<class_BaseMaterial3D_property_bent_normal_enabled>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`bent_normal_texture<class_BaseMaterial3D_property_bent_normal_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:`DepthTest<enum_BaseMaterial3D_DepthTest>` | :ref:`depth_test<class_BaseMaterial3D_property_depth_test>` | ``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:`bool<class_bool>` | :ref:`disable_specular_occlusion<class_BaseMaterial3D_property_disable_specular_occlusion>` | ``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:`float<class_float>` | :ref:`fov_override<class_BaseMaterial3D_property_fov_override>` | ``75.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :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:`Color<class_Color>` | :ref:`stencil_color<class_BaseMaterial3D_property_stencil_color>` | ``Color(0, 0, 0, 1)`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`StencilCompare<enum_BaseMaterial3D_StencilCompare>` | :ref:`stencil_compare<class_BaseMaterial3D_property_stencil_compare>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`int<class_int>` | :ref:`stencil_flags<class_BaseMaterial3D_property_stencil_flags>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`StencilMode<enum_BaseMaterial3D_StencilMode>` | :ref:`stencil_mode<class_BaseMaterial3D_property_stencil_mode>` | ``0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`stencil_outline_thickness<class_BaseMaterial3D_property_stencil_outline_thickness>` | ``0.01`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`int<class_int>` | :ref:`stencil_reference<class_BaseMaterial3D_property_stencil_reference>` | ``1`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :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_fov_override<class_BaseMaterial3D_property_use_fov_override>` | ``false`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :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:`bool<class_bool>` | :ref:`use_z_clip_scale<class_BaseMaterial3D_property_use_z_clip_scale>` | ``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`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`z_clip_scale<class_BaseMaterial3D_property_z_clip_scale>` | ``1.0`` |
+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
.. rst-class:: classref-reftable-group
方法
----
.. table::
:widths: auto
+-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_feature<class_BaseMaterial3D_method_get_feature>`\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`\ ) |const| |
+-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_flag<class_BaseMaterial3D_method_get_flag>`\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const| |
+-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`get_texture<class_BaseMaterial3D_method_get_texture>`\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |const| |
+-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_feature<class_BaseMaterial3D_method_set_feature>`\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ ) |
+-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_flag<class_BaseMaterial3D_method_set_flag>`\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ ) |
+-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_texture<class_BaseMaterial3D_method_set_texture>`\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ ) |
+-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
枚举
----
.. _enum_BaseMaterial3D_TextureParam:
.. rst-class:: classref-enumeration
enum **TextureParam**: :ref:`🔗<enum_BaseMaterial3D_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_BENT_NORMAL:
.. rst-class:: classref-enumeration-constant
:ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` **TEXTURE_BENT_NORMAL** = ``18``
指定每个像素弯曲法向量的纹理。
.. _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** = ``19``
代表 :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>` 枚举的大小。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_TextureFilter:
.. rst-class:: classref-enumeration
enum **TextureFilter**: :ref:`🔗<enum_BaseMaterial3D_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 个像素之间进行混合。这使得纹理从近处看起来很平滑,从远处看起来却有颗粒感(由于多级渐远纹理没有被采样)。
.. _class_BaseMaterial3D_constant_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` **TEXTURE_FILTER_NEAREST_WITH_MIPMAPS** = ``2``
纹理过滤从最近的像素读取并在最近的 2 个多级渐远纹理之间进行混合(或者如果 :ref:`ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter<class_ProjectSettings_property_rendering/textures/default_filters/use_nearest_mipmap_filter>```true``\ ,则使用最近的多级渐远纹理)。这使得纹理从近处看起来像素化,从远处看起来平滑。
.. _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 个多级渐远纹理之间进行混合(或者如果 :ref:`ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter<class_ProjectSettings_property_rendering/textures/default_filters/use_nearest_mipmap_filter>```true``\ ,则使用最近的多级渐远纹理)。这使得纹理从近处看起来平滑,从远处看起来也平滑。
.. _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``
纹理过滤从最近的像素读取并根据表面和相机视图之间的角度在 2 个多级渐远纹理之间进行混合(或者如果 :ref:`ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter<class_ProjectSettings_property_rendering/textures/default_filters/use_nearest_mipmap_filter>```true``\ ,则使用最近的多级渐远纹理)。这使得纹理从近处看起来像素化,从远处看起来平滑。各向异性过滤提高了几乎与相机位于一条线上的表面上的纹理质量,但速度稍慢。各向异性过滤级别可以通过调整 :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 个像素之间进行混合,并基于表面与相机视图之间的角度在 2 个多级渐远纹理之间进行混合 (或者如果 :ref:`ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter<class_ProjectSettings_property_rendering/textures/default_filters/use_nearest_mipmap_filter>```true``\ ,则使用最近的多级渐远纹理)。这使得纹理从近处看起来平滑,从远处看起来也平滑。各向异性过滤提高了几乎与相机位于一条线的表面上的纹理质量,但速度稍慢。各向异性过滤级别可以通过调整 :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**: :ref:`🔗<enum_BaseMaterial3D_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**: :ref:`🔗<enum_BaseMaterial3D_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**: :ref:`🔗<enum_BaseMaterial3D_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``
对象将逐顶点进行着色。适用于想要更便宜的着色器并且不关心视觉质量的场合。
.. _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**: :ref:`🔗<enum_BaseMaterial3D_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_BENT_NORMAL_MAPPING:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_BENT_NORMAL_MAPPING** = ``12``
用于设置 :ref:`bent_normal_enabled<class_BaseMaterial3D_property_bent_normal_enabled>` 的常量。
.. _class_BaseMaterial3D_constant_FEATURE_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`Feature<enum_BaseMaterial3D_Feature>` **FEATURE_MAX** = ``13``
代表 :ref:`Feature<enum_BaseMaterial3D_Feature>` 枚举的大小。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_BlendMode:
.. rst-class:: classref-enumeration
enum **BlendMode**: :ref:`🔗<enum_BaseMaterial3D_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``
对象的颜色与背景相乘。
.. _class_BaseMaterial3D_constant_BLEND_MODE_PREMULT_ALPHA:
.. rst-class:: classref-enumeration-constant
:ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` **BLEND_MODE_PREMULT_ALPHA** = ``4``
对象的颜色被添加到背景中,而 alpha 通道用于遮盖背景。这实际上是混合模式和添加模式的混合,对于类似希望添加火焰但混合烟雾的火焰效果很有用。默认情况下,这适用于使用预乘纹理的未着色材质。对于着色材质,请使用内置的 ``PREMUL_ALPHA_FACTOR``\ ,以便也可以调节照明。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_AlphaAntiAliasing:
.. rst-class:: classref-enumeration
enum **AlphaAntiAliasing**: :ref:`🔗<enum_BaseMaterial3D_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**: :ref:`🔗<enum_BaseMaterial3D_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_DepthTest:
.. rst-class:: classref-enumeration
enum **DepthTest**: :ref:`🔗<enum_BaseMaterial3D_DepthTest>`
.. _class_BaseMaterial3D_constant_DEPTH_TEST_DEFAULT:
.. rst-class:: classref-enumeration-constant
:ref:`DepthTest<enum_BaseMaterial3D_DepthTest>` **DEPTH_TEST_DEFAULT** = ``0``
深度测试会丢弃位于其他像素后面的像素。
.. _class_BaseMaterial3D_constant_DEPTH_TEST_INVERTED:
.. rst-class:: classref-enumeration-constant
:ref:`DepthTest<enum_BaseMaterial3D_DepthTest>` **DEPTH_TEST_INVERTED** = ``1``
深度测试会丢弃位于其他像素前面的像素。适用于模板效果。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_CullMode:
.. rst-class:: classref-enumeration
enum **CullMode**: :ref:`🔗<enum_BaseMaterial3D_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**: :ref:`🔗<enum_BaseMaterial3D_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``
Vertex colors are considered to be stored in nonlinear sRGB encoding and are converted to linear encoding during rendering. See also :ref:`vertex_color_is_srgb<class_BaseMaterial3D_property_vertex_color_is_srgb>`.
\ **Note:** Only effective when using the Forward+ and Mobile rendering methods.
.. _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``
Forces the shader to convert albedo from nonlinear sRGB encoding to linear encoding. See also :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_DISABLE_SPECULAR_OCCLUSION:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_DISABLE_SPECULAR_OCCLUSION** = ``22``
禁用镜面反射遮蔽。
.. _class_BaseMaterial3D_constant_FLAG_USE_Z_CLIP_SCALE:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_USE_Z_CLIP_SCALE** = ``23``
启用 :ref:`z_clip_scale<class_BaseMaterial3D_property_z_clip_scale>`\ 。
.. _class_BaseMaterial3D_constant_FLAG_USE_FOV_OVERRIDE:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_USE_FOV_OVERRIDE** = ``24``
启用 :ref:`fov_override<class_BaseMaterial3D_property_fov_override>`\ 。
.. _class_BaseMaterial3D_constant_FLAG_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_MAX** = ``25``
代表 :ref:`Flags<enum_BaseMaterial3D_Flags>` 枚举的大小。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_DiffuseMode:
.. rst-class:: classref-enumeration
enum **DiffuseMode**: :ref:`🔗<enum_BaseMaterial3D_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**: :ref:`🔗<enum_BaseMaterial3D_SpecularMode>`
.. _class_BaseMaterial3D_constant_SPECULAR_SCHLICK_GGX:
.. rst-class:: classref-enumeration-constant
:ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>` **SPECULAR_SCHLICK_GGX** = ``0``
默认镜面反射斑点。
\ **注意:**\ Forward+ 使用多重散射实现更精确的反射,不过多重散射带来的影响在粗糙金属表面上比在平滑非金属表面上更明显。
\ **注意:**\ Mobile 和 Compatibility 由于性能原因执行的不是多重散射而是单散射,因此粗糙金属表面可能比预期的要暗一些。
.. _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**: :ref:`🔗<enum_BaseMaterial3D_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**: :ref:`🔗<enum_BaseMaterial3D_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**: :ref:`🔗<enum_BaseMaterial3D_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**: :ref:`🔗<enum_BaseMaterial3D_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-item-separator
----
.. _enum_BaseMaterial3D_StencilMode:
.. rst-class:: classref-enumeration
enum **StencilMode**: :ref:`🔗<enum_BaseMaterial3D_StencilMode>`
.. _class_BaseMaterial3D_constant_STENCIL_MODE_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`StencilMode<enum_BaseMaterial3D_StencilMode>` **STENCIL_MODE_DISABLED** = ``0``
禁用模板运算。
.. _class_BaseMaterial3D_constant_STENCIL_MODE_OUTLINE:
.. rst-class:: classref-enumeration-constant
:ref:`StencilMode<enum_BaseMaterial3D_StencilMode>` **STENCIL_MODE_OUTLINE** = ``1``
模板预设,为物体添加轮廓。
\ **注意:**\ 需要自动应用 :ref:`Material.next_pass<class_Material_property_next_pass>` 材质。修改模板属性或重新加载场景时,对 :ref:`Material.next_pass<class_Material_property_next_pass>` 的手动更改会丢失。要安全地对使用模板预设的材质应用 :ref:`Material.next_pass<class_Material_property_next_pass>` 材质,请改用 :ref:`GeometryInstance3D.material_overlay<class_GeometryInstance3D_property_material_overlay>`\ 。
.. _class_BaseMaterial3D_constant_STENCIL_MODE_XRAY:
.. rst-class:: classref-enumeration-constant
:ref:`StencilMode<enum_BaseMaterial3D_StencilMode>` **STENCIL_MODE_XRAY** = ``2``
模板预设,为墙后的物体显示剪影。
\ **注意:**\ 需要自动应用 :ref:`Material.next_pass<class_Material_property_next_pass>` 材质。修改模板属性或重新加载场景时,对 :ref:`Material.next_pass<class_Material_property_next_pass>` 的手动更改会丢失。要安全地对使用模板预设的材质应用 :ref:`Material.next_pass<class_Material_property_next_pass>` 材质,请改用 :ref:`GeometryInstance3D.material_overlay<class_GeometryInstance3D_property_material_overlay>`\ 。
.. _class_BaseMaterial3D_constant_STENCIL_MODE_CUSTOM:
.. rst-class:: classref-enumeration-constant
:ref:`StencilMode<enum_BaseMaterial3D_StencilMode>` **STENCIL_MODE_CUSTOM** = ``3``
启用模板运算,但不使用预设。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_StencilFlags:
.. rst-class:: classref-enumeration
enum **StencilFlags**: :ref:`🔗<enum_BaseMaterial3D_StencilFlags>`
.. _class_BaseMaterial3D_constant_STENCIL_FLAG_READ:
.. rst-class:: classref-enumeration-constant
:ref:`StencilFlags<enum_BaseMaterial3D_StencilFlags>` **STENCIL_FLAG_READ** = ``1``
The material will only be rendered where it passes a stencil comparison with existing stencil buffer values.
.. _class_BaseMaterial3D_constant_STENCIL_FLAG_WRITE:
.. rst-class:: classref-enumeration-constant
:ref:`StencilFlags<enum_BaseMaterial3D_StencilFlags>` **STENCIL_FLAG_WRITE** = ``2``
材质通过深度测试时会将参考值写入模板缓冲区。
.. _class_BaseMaterial3D_constant_STENCIL_FLAG_WRITE_DEPTH_FAIL:
.. rst-class:: classref-enumeration-constant
:ref:`StencilFlags<enum_BaseMaterial3D_StencilFlags>` **STENCIL_FLAG_WRITE_DEPTH_FAIL** = ``4``
材质未通过深度测试时会将参考值写入模板缓冲区。
.. rst-class:: classref-item-separator
----
.. _enum_BaseMaterial3D_StencilCompare:
.. rst-class:: classref-enumeration
enum **StencilCompare**: :ref:`🔗<enum_BaseMaterial3D_StencilCompare>`
.. _class_BaseMaterial3D_constant_STENCIL_COMPARE_ALWAYS:
.. rst-class:: classref-enumeration-constant
:ref:`StencilCompare<enum_BaseMaterial3D_StencilCompare>` **STENCIL_COMPARE_ALWAYS** = ``0``
始终通过模板测试。
.. _class_BaseMaterial3D_constant_STENCIL_COMPARE_LESS:
.. rst-class:: classref-enumeration-constant
:ref:`StencilCompare<enum_BaseMaterial3D_StencilCompare>` **STENCIL_COMPARE_LESS** = ``1``
当参考值小于现有模板值时,通过模板测试。
.. _class_BaseMaterial3D_constant_STENCIL_COMPARE_EQUAL:
.. rst-class:: classref-enumeration-constant
:ref:`StencilCompare<enum_BaseMaterial3D_StencilCompare>` **STENCIL_COMPARE_EQUAL** = ``2``
当参考值等于现有模板值时,通过模板测试。
.. _class_BaseMaterial3D_constant_STENCIL_COMPARE_LESS_OR_EQUAL:
.. rst-class:: classref-enumeration-constant
:ref:`StencilCompare<enum_BaseMaterial3D_StencilCompare>` **STENCIL_COMPARE_LESS_OR_EQUAL** = ``3``
当参考值小于或等于现有模板值时,通过模板测试。
.. _class_BaseMaterial3D_constant_STENCIL_COMPARE_GREATER:
.. rst-class:: classref-enumeration-constant
:ref:`StencilCompare<enum_BaseMaterial3D_StencilCompare>` **STENCIL_COMPARE_GREATER** = ``4``
当参考值大于现有模板值时,通过模板测试。
.. _class_BaseMaterial3D_constant_STENCIL_COMPARE_NOT_EQUAL:
.. rst-class:: classref-enumeration-constant
:ref:`StencilCompare<enum_BaseMaterial3D_StencilCompare>` **STENCIL_COMPARE_NOT_EQUAL** = ``5``
当参考值不等于现有模板值时,通过模板测试。
.. _class_BaseMaterial3D_constant_STENCIL_COMPARE_GREATER_OR_EQUAL:
.. rst-class:: classref-enumeration-constant
:ref:`StencilCompare<enum_BaseMaterial3D_StencilCompare>` **STENCIL_COMPARE_GREATER_OR_EQUAL** = ``6``
当参考值大于或等于现有模板值时,通过模板测试。
.. 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)`` :ref:`🔗<class_BaseMaterial3D_property_albedo_color>`
.. rst-class:: classref-property-setget
- |void| **set_albedo**\ (\ value\: :ref:`Color<class_Color>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_albedo_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_albedo_texture_force_srgb>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const|
If ``true``, forces a conversion of the :ref:`albedo_texture<class_BaseMaterial3D_property_albedo_texture>` from nonlinear sRGB encoding to linear encoding. See also :ref:`vertex_color_is_srgb<class_BaseMaterial3D_property_vertex_color_is_srgb>`.
This should only be enabled when needed (typically when using a :ref:`ViewportTexture<class_ViewportTexture>` as :ref:`albedo_texture<class_BaseMaterial3D_property_albedo_texture>`). If :ref:`albedo_texture_force_srgb<class_BaseMaterial3D_property_albedo_texture_force_srgb>` is ``true`` when it shouldn't be, the texture will appear to be too dark. If :ref:`albedo_texture_force_srgb<class_BaseMaterial3D_property_albedo_texture_force_srgb>` is ``false`` when it shouldn't be, the texture will appear to be too bright.
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_albedo_texture_msdf:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **albedo_texture_msdf** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_albedo_texture_msdf>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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** :ref:`🔗<class_BaseMaterial3D_property_alpha_antialiasing_edge>`
.. rst-class:: classref-property-setget
- |void| **set_alpha_antialiasing_edge**\ (\ value\: :ref:`float<class_float>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_alpha_antialiasing_mode>`
.. rst-class:: classref-property-setget
- |void| **set_alpha_antialiasing**\ (\ value\: :ref:`AlphaAntiAliasing<enum_BaseMaterial3D_AlphaAntiAliasing>`\ )
- :ref:`AlphaAntiAliasing<enum_BaseMaterial3D_AlphaAntiAliasing>` **get_alpha_antialiasing**\ (\ )
要应用的 Alpha 抗锯齿类型。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_alpha_hash_scale:
.. rst-class:: classref-property
:ref:`float<class_float>` **alpha_hash_scale** :ref:`🔗<class_BaseMaterial3D_property_alpha_hash_scale>`
.. rst-class:: classref-property-setget
- |void| **set_alpha_hash_scale**\ (\ value\: :ref:`float<class_float>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_alpha_scissor_threshold>`
.. rst-class:: classref-property-setget
- |void| **set_alpha_scissor_threshold**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_anisotropy>`
.. rst-class:: classref-property-setget
- |void| **set_anisotropy**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_anisotropy_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_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** :ref:`🔗<class_BaseMaterial3D_property_anisotropy_flowmap>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_ao_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_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`` :ref:`🔗<class_BaseMaterial3D_property_ao_light_affect>`
.. rst-class:: classref-property-setget
- |void| **set_ao_light_affect**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_ao_on_uv2>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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** :ref:`🔗<class_BaseMaterial3D_property_ao_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_ao_texture_channel>`
.. rst-class:: classref-property-setget
- |void| **set_ao_texture_channel**\ (\ value\: :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>`\ )
- :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)`` :ref:`🔗<class_BaseMaterial3D_property_backlight>`
.. rst-class:: classref-property-setget
- |void| **set_backlight**\ (\ value\: :ref:`Color<class_Color>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_backlight_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_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** :ref:`🔗<class_BaseMaterial3D_property_backlight_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |const|
用于控制每像素背光效果的纹理。与 :ref:`backlight<class_BaseMaterial3D_property_backlight>` 相加。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_bent_normal_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **bent_normal_enabled** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_bent_normal_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`\ ) |const|
如果为 ``true``\ ,则启用弯曲法线映射。可以实现更准确的间接光照和镜面反射遮蔽效果。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_bent_normal_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **bent_normal_texture** :ref:`🔗<class_BaseMaterial3D_property_bent_normal_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |const|
用于指定给定像素的入射环境光平均方向的纹理。\ :ref:`bent_normal_texture<class_BaseMaterial3D_property_bent_normal_texture>` 只使用红色和绿色通道;会忽略蓝色和 alpha 通道。从 :ref:`bent_normal_texture<class_BaseMaterial3D_property_bent_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>`__\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_billboard_keep_scale:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **billboard_keep_scale** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_billboard_keep_scale>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_billboard_mode>`
.. rst-class:: classref-property-setget
- |void| **set_billboard_mode**\ (\ value\: :ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>`\ )
- :ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>` **get_billboard_mode**\ (\ )
控制该对象如何面对相机。
\ **注意:**\ 公告板模式不适合 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`` :ref:`🔗<class_BaseMaterial3D_property_blend_mode>`
.. rst-class:: classref-property-setget
- |void| **set_blend_mode**\ (\ value\: :ref:`BlendMode<enum_BaseMaterial3D_BlendMode>`\ )
- :ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` **get_blend_mode**\ (\ )
材质的混合模式。
\ **注意:**\ 除 ``Mix`` 以外的值会强制对象进入透明管道。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_clearcoat:
.. rst-class:: classref-property
:ref:`float<class_float>` **clearcoat** = ``1.0`` :ref:`🔗<class_BaseMaterial3D_property_clearcoat>`
.. rst-class:: classref-property-setget
- |void| **set_clearcoat**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_clearcoat_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_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`` :ref:`🔗<class_BaseMaterial3D_property_clearcoat_roughness>`
.. rst-class:: classref-property-setget
- |void| **set_clearcoat_roughness**\ (\ value\: :ref:`float<class_float>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_clearcoat_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |const|
定义清漆效果的强度和清漆的光泽度的纹理。强度在红色通道中指定,光泽度在绿色通道中指定。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_cull_mode:
.. rst-class:: classref-property
:ref:`CullMode<enum_BaseMaterial3D_CullMode>` **cull_mode** = ``0`` :ref:`🔗<class_BaseMaterial3D_property_cull_mode>`
.. rst-class:: classref-property-setget
- |void| **set_cull_mode**\ (\ value\: :ref:`CullMode<enum_BaseMaterial3D_CullMode>`\ )
- :ref:`CullMode<enum_BaseMaterial3D_CullMode>` **get_cull_mode**\ (\ )
根据三角形是朝向还是背离相机,来确定要剔除三角形的哪一侧。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_depth_draw_mode:
.. rst-class:: classref-property
:ref:`DepthDrawMode<enum_BaseMaterial3D_DepthDrawMode>` **depth_draw_mode** = ``0`` :ref:`🔗<class_BaseMaterial3D_property_depth_draw_mode>`
.. rst-class:: classref-property-setget
- |void| **set_depth_draw_mode**\ (\ value\: :ref:`DepthDrawMode<enum_BaseMaterial3D_DepthDrawMode>`\ )
- :ref:`DepthDrawMode<enum_BaseMaterial3D_DepthDrawMode>` **get_depth_draw_mode**\ (\ )
确定深度渲染发生的时间。另见 :ref:`transparency<class_BaseMaterial3D_property_transparency>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_depth_test:
.. rst-class:: classref-property
:ref:`DepthTest<enum_BaseMaterial3D_DepthTest>` **depth_test** = ``0`` :ref:`🔗<class_BaseMaterial3D_property_depth_test>`
.. rst-class:: classref-property-setget
- |void| **set_depth_test**\ (\ value\: :ref:`DepthTest<enum_BaseMaterial3D_DepthTest>`\ )
- :ref:`DepthTest<enum_BaseMaterial3D_DepthTest>` **get_depth_test**\ (\ )
**实验性:** May be affected by future rendering pipeline changes.
Determines which comparison operator is used when testing depth.
\ **Note:** Changing :ref:`depth_test<class_BaseMaterial3D_property_depth_test>` to a non-default value only has a visible effect when used on a transparent material, or a material that has :ref:`depth_draw_mode<class_BaseMaterial3D_property_depth_draw_mode>` set to :ref:`DEPTH_DRAW_DISABLED<class_BaseMaterial3D_constant_DEPTH_DRAW_DISABLED>`.
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_detail_albedo:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **detail_albedo** :ref:`🔗<class_BaseMaterial3D_property_detail_albedo>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_detail_blend_mode>`
.. rst-class:: classref-property-setget
- |void| **set_detail_blend_mode**\ (\ value\: :ref:`BlendMode<enum_BaseMaterial3D_BlendMode>`\ )
- :ref:`BlendMode<enum_BaseMaterial3D_BlendMode>` **get_detail_blend_mode**\ (\ )
指定 :ref:`detail_albedo<class_BaseMaterial3D_property_detail_albedo>` 应如何与当前 ``ALBEDO`` 混合。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_detail_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **detail_enabled** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_detail_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_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** :ref:`🔗<class_BaseMaterial3D_property_detail_mask>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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** :ref:`🔗<class_BaseMaterial3D_property_detail_normal>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_detail_uv_layer>`
.. rst-class:: classref-property-setget
- |void| **set_detail_uv**\ (\ value\: :ref:`DetailUV<enum_BaseMaterial3D_DetailUV>`\ )
- :ref:`DetailUV<enum_BaseMaterial3D_DetailUV>` **get_detail_uv**\ (\ )
指定细节层是使用 ``UV`` 还是 ``UV2``\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_diffuse_mode:
.. rst-class:: classref-property
:ref:`DiffuseMode<enum_BaseMaterial3D_DiffuseMode>` **diffuse_mode** = ``0`` :ref:`🔗<class_BaseMaterial3D_property_diffuse_mode>`
.. rst-class:: classref-property-setget
- |void| **set_diffuse_mode**\ (\ value\: :ref:`DiffuseMode<enum_BaseMaterial3D_DiffuseMode>`\ )
- :ref:`DiffuseMode<enum_BaseMaterial3D_DiffuseMode>` **get_diffuse_mode**\ (\ )
用于漫反射光散射的算法。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_disable_ambient_light:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **disable_ambient_light** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_disable_ambient_light>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const|
如果为 ``true``\ ,则对象不接收环境光。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_disable_fog:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **disable_fog** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_disable_fog>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_disable_receive_shadows>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const|
如果为 ``true``\ ,则对象不会收到投射到其上的阴影。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_disable_specular_occlusion:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **disable_specular_occlusion** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_disable_specular_occlusion>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const|
如果为 ``true`` 则禁用镜面反射遮蔽,即便 :ref:`ProjectSettings.rendering/reflections/specular_occlusion/enabled<class_ProjectSettings_property_rendering/reflections/specular_occlusion/enabled>```false``\ 。
.. 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`` :ref:`🔗<class_BaseMaterial3D_property_distance_fade_max_distance>`
.. rst-class:: classref-property-setget
- |void| **set_distance_fade_max_distance**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_distance_fade_min_distance>`
.. rst-class:: classref-property-setget
- |void| **set_distance_fade_min_distance**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_distance_fade_mode>`
.. rst-class:: classref-property-setget
- |void| **set_distance_fade**\ (\ value\: :ref:`DistanceFadeMode<enum_BaseMaterial3D_DistanceFadeMode>`\ )
- :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)`` :ref:`🔗<class_BaseMaterial3D_property_emission>`
.. rst-class:: classref-property-setget
- |void| **set_emission**\ (\ value\: :ref:`Color<class_Color>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_emission_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_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`` :ref:`🔗<class_BaseMaterial3D_property_emission_energy_multiplier>`
.. rst-class:: classref-property-setget
- |void| **set_emission_energy_multiplier**\ (\ value\: :ref:`float<class_float>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_emission_intensity>`
.. rst-class:: classref-property-setget
- |void| **set_emission_intensity**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_emission_on_uv2>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_emission_operator>`
.. rst-class:: classref-property-setget
- |void| **set_emission_operator**\ (\ value\: :ref:`EmissionOperator<enum_BaseMaterial3D_EmissionOperator>`\ )
- :ref:`EmissionOperator<enum_BaseMaterial3D_EmissionOperator>` **get_emission_operator**\ (\ )
设置 :ref:`emission<class_BaseMaterial3D_property_emission>`:ref:`emission_texture<class_BaseMaterial3D_property_emission_texture>` 的交互方式。可以是加法或乘法。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_emission_texture:
.. rst-class:: classref-property
:ref:`Texture2D<class_Texture2D>` **emission_texture** :ref:`🔗<class_BaseMaterial3D_property_emission_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |const|
纹理,指定某点的表面发光的程度。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_fixed_size:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **fixed_size** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_fixed_size>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const|
如果为 ``true``\ ,则对象始终以相同的大小渲染,忽略距离。对象在屏幕上的大小与相机距离对象原点 ``1.0`` 单位时相同,忽略与相机的实际距离。\ :ref:`Camera3D<class_Camera3D>` 的视野(使用正交/视锥模式时则为 :ref:`Camera3D.size<class_Camera3D_property_size>`\ )仍然会影响对象绘制的大小。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_fov_override:
.. rst-class:: classref-property
:ref:`float<class_float>` **fov_override** = ``75.0`` :ref:`🔗<class_BaseMaterial3D_property_fov_override>`
.. rst-class:: classref-property-setget
- |void| **set_fov_override**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_fov_override**\ (\ )
覆盖 :ref:`Camera3D<class_Camera3D>` 的视场角(单位为度)。
\ **注意:**\ 行为与对 :ref:`Camera3D.keep_aspect<class_Camera3D_property_keep_aspect>`:ref:`Camera3D.KEEP_HEIGHT<class_Camera3D_constant_KEEP_HEIGHT>`:ref:`Camera3D<class_Camera3D>` 设置视场角一致。此外,非透视相机会忽略视场角的设置,因此效果可能不正确。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_grow:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **grow** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_grow>`
.. rst-class:: classref-property-setget
- |void| **set_grow_enabled**\ (\ value\: :ref:`bool<class_bool>`\ )
- :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 创作软件中使用 `面加权法线 <http://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`` :ref:`🔗<class_BaseMaterial3D_property_grow_amount>`
.. rst-class:: classref-property-setget
- |void| **set_grow**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_heightmap_deep_parallax>`
.. rst-class:: classref-property-setget
- |void| **set_heightmap_deep_parallax**\ (\ value\: :ref:`bool<class_bool>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_heightmap_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_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`` :ref:`🔗<class_BaseMaterial3D_property_heightmap_flip_binormal>`
.. rst-class:: classref-property-setget
- |void| **set_heightmap_deep_parallax_flip_binormal**\ (\ value\: :ref:`bool<class_bool>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_heightmap_flip_tangent>`
.. rst-class:: classref-property-setget
- |void| **set_heightmap_deep_parallax_flip_tangent**\ (\ value\: :ref:`bool<class_bool>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_heightmap_flip_texture>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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** :ref:`🔗<class_BaseMaterial3D_property_heightmap_max_layers>`
.. rst-class:: classref-property-setget
- |void| **set_heightmap_deep_parallax_max_layers**\ (\ value\: :ref:`int<class_int>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_heightmap_min_layers>`
.. rst-class:: classref-property-setget
- |void| **set_heightmap_deep_parallax_min_layers**\ (\ value\: :ref:`int<class_int>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_heightmap_scale>`
.. rst-class:: classref-property-setget
- |void| **set_heightmap_scale**\ (\ value\: :ref:`float<class_float>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_heightmap_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_metallic>`
.. rst-class:: classref-property-setget
- |void| **set_metallic**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_metallic_specular>`
.. rst-class:: classref-property-setget
- |void| **set_specular**\ (\ value\: :ref:`float<class_float>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_metallic_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_metallic_texture_channel>`
.. rst-class:: classref-property-setget
- |void| **set_metallic_texture_channel**\ (\ value\: :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_msdf_outline_size>`
.. rst-class:: classref-property-setget
- |void| **set_msdf_outline_size**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_msdf_pixel_range>`
.. rst-class:: classref-property-setget
- |void| **set_msdf_pixel_range**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_no_depth_test>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const|
如果为 ``true``\ ,深度测试被禁用,对象将按渲染顺序绘制。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_normal_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **normal_enabled** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_normal_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_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`` :ref:`🔗<class_BaseMaterial3D_property_normal_scale>`
.. rst-class:: classref-property-setget
- |void| **set_normal_scale**\ (\ value\: :ref:`float<class_float>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_normal_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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** :ref:`🔗<class_BaseMaterial3D_property_orm_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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** :ref:`🔗<class_BaseMaterial3D_property_particles_anim_h_frames>`
.. rst-class:: classref-property-setget
- |void| **set_particles_anim_h_frames**\ (\ value\: :ref:`int<class_int>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_particles_anim_loop>`
.. rst-class:: classref-property-setget
- |void| **set_particles_anim_loop**\ (\ value\: :ref:`bool<class_bool>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_particles_anim_v_frames>`
.. rst-class:: classref-property-setget
- |void| **set_particles_anim_v_frames**\ (\ value\: :ref:`int<class_int>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_point_size>`
.. rst-class:: classref-property-setget
- |void| **set_point_size**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_proximity_fade_distance>`
.. rst-class:: classref-property-setget
- |void| **set_proximity_fade_distance**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_proximity_fade_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_proximity_fade_enabled**\ (\ value\: :ref:`bool<class_bool>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_refraction_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_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`` :ref:`🔗<class_BaseMaterial3D_property_refraction_scale>`
.. rst-class:: classref-property-setget
- |void| **set_refraction**\ (\ value\: :ref:`float<class_float>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_refraction_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_refraction_texture_channel>`
.. rst-class:: classref-property-setget
- |void| **set_refraction_texture_channel**\ (\ value\: :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_rim>`
.. rst-class:: classref-property-setget
- |void| **set_rim**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_rim_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_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** :ref:`🔗<class_BaseMaterial3D_property_rim_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_rim_tint>`
.. rst-class:: classref-property-setget
- |void| **set_rim_tint**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_roughness>`
.. rst-class:: classref-property-setget
- |void| **set_roughness**\ (\ value\: :ref:`float<class_float>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_roughness_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_roughness_texture_channel>`
.. rst-class:: classref-property-setget
- |void| **set_roughness_texture_channel**\ (\ value\: :ref:`TextureChannel<enum_BaseMaterial3D_TextureChannel>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_shading_mode>`
.. rst-class:: classref-property-setget
- |void| **set_shading_mode**\ (\ value\: :ref:`ShadingMode<enum_BaseMaterial3D_ShadingMode>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_shadow_to_opacity>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_specular_mode>`
.. rst-class:: classref-property-setget
- |void| **set_specular_mode**\ (\ value\: :ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>`\ )
- :ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>` **get_specular_mode**\ (\ )
渲染镜面反射斑点的方法。
\ **注意:**\ :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_stencil_color:
.. rst-class:: classref-property
:ref:`Color<class_Color>` **stencil_color** = ``Color(0, 0, 0, 1)`` :ref:`🔗<class_BaseMaterial3D_property_stencil_color>`
.. rst-class:: classref-property-setget
- |void| **set_stencil_effect_color**\ (\ value\: :ref:`Color<class_Color>`\ )
- :ref:`Color<class_Color>` **get_stencil_effect_color**\ (\ )
**实验性:** May be affected by future rendering pipeline changes.
模板效果的主颜色。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_stencil_compare:
.. rst-class:: classref-property
:ref:`StencilCompare<enum_BaseMaterial3D_StencilCompare>` **stencil_compare** = ``0`` :ref:`🔗<class_BaseMaterial3D_property_stencil_compare>`
.. rst-class:: classref-property-setget
- |void| **set_stencil_compare**\ (\ value\: :ref:`StencilCompare<enum_BaseMaterial3D_StencilCompare>`\ )
- :ref:`StencilCompare<enum_BaseMaterial3D_StencilCompare>` **get_stencil_compare**\ (\ )
**实验性:** May be affected by future rendering pipeline changes.
The comparison operator to use for stencil masking operations.
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_stencil_flags:
.. rst-class:: classref-property
:ref:`int<class_int>` **stencil_flags** = ``0`` :ref:`🔗<class_BaseMaterial3D_property_stencil_flags>`
.. rst-class:: classref-property-setget
- |void| **set_stencil_flags**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_stencil_flags**\ (\ )
**实验性:** May be affected by future rendering pipeline changes.
The flags dictating how the stencil operation behaves.
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_stencil_mode:
.. rst-class:: classref-property
:ref:`StencilMode<enum_BaseMaterial3D_StencilMode>` **stencil_mode** = ``0`` :ref:`🔗<class_BaseMaterial3D_property_stencil_mode>`
.. rst-class:: classref-property-setget
- |void| **set_stencil_mode**\ (\ value\: :ref:`StencilMode<enum_BaseMaterial3D_StencilMode>`\ )
- :ref:`StencilMode<enum_BaseMaterial3D_StencilMode>` **get_stencil_mode**\ (\ )
**实验性:** May be affected by future rendering pipeline changes.
The stencil effect mode.
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_stencil_outline_thickness:
.. rst-class:: classref-property
:ref:`float<class_float>` **stencil_outline_thickness** = ``0.01`` :ref:`🔗<class_BaseMaterial3D_property_stencil_outline_thickness>`
.. rst-class:: classref-property-setget
- |void| **set_stencil_effect_outline_thickness**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_stencil_effect_outline_thickness**\ (\ )
**实验性:** May be affected by future rendering pipeline changes.
:ref:`STENCIL_MODE_OUTLINE<class_BaseMaterial3D_constant_STENCIL_MODE_OUTLINE>` 的轮廓粗细。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_stencil_reference:
.. rst-class:: classref-property
:ref:`int<class_int>` **stencil_reference** = ``1`` :ref:`🔗<class_BaseMaterial3D_property_stencil_reference>`
.. rst-class:: classref-property-setget
- |void| **set_stencil_reference**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_stencil_reference**\ (\ )
**实验性:** May be affected by future rendering pipeline changes.
模板参考值0-255。通常是 2 的幂。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_subsurf_scatter_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **subsurf_scatter_enabled** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_subsurf_scatter_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`\ ) |const|
如果为 ``true``\ ,则启用次表面散射。模拟光线先穿透物体表面、被散射、然后出现。次表面散射质量由 :ref:`ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality<class_ProjectSettings_property_rendering/environment/subsurface_scattering/subsurface_scattering_quality>` 控制。
\ **注意:**\ 透明背景的的视口不支持次表面散射(\ :ref:`Viewport.transparent_bg<class_Viewport_property_transparent_bg>```true``\ )。
.. 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`` :ref:`🔗<class_BaseMaterial3D_property_subsurf_scatter_skin_mode>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_subsurf_scatter_strength>`
.. rst-class:: classref-property-setget
- |void| **set_subsurface_scattering_strength**\ (\ value\: :ref:`float<class_float>`\ )
- :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** :ref:`🔗<class_BaseMaterial3D_property_subsurf_scatter_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_subsurf_scatter_transmittance_boost>`
.. rst-class:: classref-property-setget
- |void| **set_transmittance_boost**\ (\ value\: :ref:`float<class_float>`\ )
- :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)`` :ref:`🔗<class_BaseMaterial3D_property_subsurf_scatter_transmittance_color>`
.. rst-class:: classref-property-setget
- |void| **set_transmittance_color**\ (\ value\: :ref:`Color<class_Color>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_subsurf_scatter_transmittance_depth>`
.. rst-class:: classref-property-setget
- |void| **set_transmittance_depth**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_subsurf_scatter_transmittance_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_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** :ref:`🔗<class_BaseMaterial3D_property_subsurf_scatter_transmittance_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )
- :ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_texture_filter>`
.. rst-class:: classref-property-setget
- |void| **set_texture_filter**\ (\ value\: :ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>`\ )
- :ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>` **get_texture_filter**\ (\ )
纹理的过滤标志。
\ **注意:**\ 即便这里选择了最近邻过滤,\ :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`` :ref:`🔗<class_BaseMaterial3D_property_texture_repeat>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const|
如果为 ``true``\ ,则纹理会在超出纹理大小后重复。见 :ref:`FLAG_USE_TEXTURE_REPEAT<class_BaseMaterial3D_constant_FLAG_USE_TEXTURE_REPEAT>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_transparency:
.. rst-class:: classref-property
:ref:`Transparency<enum_BaseMaterial3D_Transparency>` **transparency** = ``0`` :ref:`🔗<class_BaseMaterial3D_property_transparency>`
.. rst-class:: classref-property-setget
- |void| **set_transparency**\ (\ value\: :ref:`Transparency<enum_BaseMaterial3D_Transparency>`\ )
- :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_fov_override:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **use_fov_override** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_use_fov_override>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const|
如果为 ``true``\ ,则使用 :ref:`fov_override<class_BaseMaterial3D_property_fov_override>` 来覆盖 :ref:`Camera3D<class_Camera3D>` 的视场角。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_use_particle_trails:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **use_particle_trails** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_use_particle_trails>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_use_point_size>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const|
如果为 ``true``\ ,可以改变渲染点大小。
\ **注意:**\ 这仅对几何形状基于点而非基于三角形的对象有效。另见 :ref:`point_size<class_BaseMaterial3D_property_point_size>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_use_z_clip_scale:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **use_z_clip_scale** = ``false`` :ref:`🔗<class_BaseMaterial3D_property_use_z_clip_scale>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const|
如果为 ``true``\ ,则会使用 :ref:`z_clip_scale<class_BaseMaterial3D_property_z_clip_scale>` 将渲染的对象朝相机方向进行缩放,从而避免与墙壁等物体发生裁剪。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_uv1_offset:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **uv1_offset** = ``Vector3(0, 0, 0)`` :ref:`🔗<class_BaseMaterial3D_property_uv1_offset>`
.. rst-class:: classref-property-setget
- |void| **set_uv1_offset**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :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)`` :ref:`🔗<class_BaseMaterial3D_property_uv1_scale>`
.. rst-class:: classref-property-setget
- |void| **set_uv1_scale**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_uv1_triplanar>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_uv1_triplanar_sharpness>`
.. rst-class:: classref-property-setget
- |void| **set_uv1_triplanar_blend_sharpness**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_uv1_world_triplanar>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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)`` :ref:`🔗<class_BaseMaterial3D_property_uv2_offset>`
.. rst-class:: classref-property-setget
- |void| **set_uv2_offset**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :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)`` :ref:`🔗<class_BaseMaterial3D_property_uv2_scale>`
.. rst-class:: classref-property-setget
- |void| **set_uv2_scale**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_uv2_triplanar>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_uv2_triplanar_sharpness>`
.. rst-class:: classref-property-setget
- |void| **set_uv2_triplanar_blend_sharpness**\ (\ value\: :ref:`float<class_float>`\ )
- :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`` :ref:`🔗<class_BaseMaterial3D_property_uv2_world_triplanar>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |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`` :ref:`🔗<class_BaseMaterial3D_property_vertex_color_is_srgb>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const|
If ``true``, vertex colors are considered to be stored in nonlinear sRGB encoding and are converted to linear encoding during rendering. If ``false``, vertex colors are considered to be stored in linear encoding and are rendered as-is. See also :ref:`albedo_texture_force_srgb<class_BaseMaterial3D_property_albedo_texture_force_srgb>`.
\ **Note:** Only effective when using the Forward+ and Mobile rendering methods, not Compatibility.
.. 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`` :ref:`🔗<class_BaseMaterial3D_property_vertex_color_use_as_albedo>`
.. rst-class:: classref-property-setget
- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const|
如果为 ``true``\ ,则使用顶点颜色作为反射率颜色。
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_property_z_clip_scale:
.. rst-class:: classref-property
:ref:`float<class_float>` **z_clip_scale** = ``1.0`` :ref:`🔗<class_BaseMaterial3D_property_z_clip_scale>`
.. rst-class:: classref-property-setget
- |void| **set_z_clip_scale**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_z_clip_scale**\ (\ )
将渲染的对象朝相机方向进行缩放,从而避免与墙壁等物体发生裁剪。主要用于相对于相机固定的对象,如玩家的手臂、工具等。调整该设置时,光照和阴影仍会正常工作,但 SSAO 和 SSR 等屏幕空间效果在较低的缩放值下可能会出现问题。因此,请尽量将其保持在尽可能接近 ``1.0`` 的位置。
.. 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**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`\ ) |const| :ref:`🔗<class_BaseMaterial3D_method_get_feature>`
Returns ``true`` if the specified ``feature`` is enabled.
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_method_get_flag:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`\ ) |const| :ref:`🔗<class_BaseMaterial3D_method_get_flag>`
Returns ``true`` if the specified ``flag`` is enabled.
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_method_get_texture:
.. rst-class:: classref-method
:ref:`Texture2D<class_Texture2D>` **get_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`\ ) |const| :ref:`🔗<class_BaseMaterial3D_method_get_texture>`
Returns the :ref:`Texture2D<class_Texture2D>` associated with the specified texture ``param``.
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_method_set_feature:
.. rst-class:: classref-method
|void| **set_feature**\ (\ feature\: :ref:`Feature<enum_BaseMaterial3D_Feature>`, enable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_BaseMaterial3D_method_set_feature>`
If ``enable`` is ``true``, enables the specified ``feature``. Many features that are available in **BaseMaterial3D** need to be enabled before use. This way, the cost for using the feature is only incurred when specified. Features can also be enabled by setting their corresponding property to ``true``.
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_method_set_flag:
.. rst-class:: classref-method
|void| **set_flag**\ (\ flag\: :ref:`Flags<enum_BaseMaterial3D_Flags>`, enable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_BaseMaterial3D_method_set_flag>`
If ``enable`` is ``true``, enables the specified ``flag``. Flags are optional behavior that can be turned on and off. Only one flag can be enabled at a time with this function, the flag enumerators cannot be bit-masked together to enable or disable multiple flags at once. Flags can also be enabled by setting their corresponding property to ``true``.
.. rst-class:: classref-item-separator
----
.. _class_BaseMaterial3D_method_set_texture:
.. rst-class:: classref-method
|void| **set_texture**\ (\ param\: :ref:`TextureParam<enum_BaseMaterial3D_TextureParam>`, texture\: :ref:`Texture2D<class_Texture2D>`\ ) :ref:`🔗<class_BaseMaterial3D_method_set_texture>`
设置 ``param`` 对应槽位的纹理。
.. |virtual| replace:: :abbr:`virtual (本方法通常需要用户覆盖才能生效。)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (本方法无副作用,不会修改该实例的任何成员变量。)`
.. |vararg| replace:: :abbr:`vararg (本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。)`
.. |constructor| replace:: :abbr:`constructor (本方法用于构造某个类型。)`
.. |static| replace:: :abbr:`static (调用本方法无需实例,可直接使用类名进行调用。)`
.. |operator| replace:: :abbr:`operator (本方法描述的是使用本类型作为左操作数的有效运算符。)`
.. |bitfield| replace:: :abbr:`BitField (这个值是由下列位标志构成位掩码的整数。)`
.. |void| replace:: :abbr:`void (无返回值。)`