mirror of
https://github.com/godotengine/godot-docs.git
synced 2026-01-05 22:09:56 +03:00
Convert SpatialMaterial references to StandardMaterial3D.
This commit is contained in:
@@ -13,7 +13,7 @@ To do this, the exporter attempts to find Godot materials with names that match
|
||||
those of the material name in Blender. So if you export an object in Blender
|
||||
with the material name ``PurpleDots`` then the exporter will search for the
|
||||
file ``PurpleDots.tres`` and assign it to the object. If this file is not a
|
||||
``SpatialMaterial`` or ``ShaderMaterial`` or if it cannot be found, then the
|
||||
``StandardMaterial3D`` or ``ShaderMaterial`` or if it cannot be found, then the
|
||||
exporter will fall back to exporting the material from Blender.
|
||||
|
||||
|
||||
|
||||
@@ -209,4 +209,4 @@ A few HDR files are broken and contain sRGB color data. It is advised not to use
|
||||
Invert Color
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Reverses the image's color. This is useful, for example, to convert a height map generated by external programs to depth map to use with :ref:`doc_spatial_material`.
|
||||
Reverses the image's color. This is useful, for example, to convert a height map generated by external programs to depth map to use with :ref:`doc_standard_material_3d`.
|
||||
|
||||
@@ -11,7 +11,7 @@ Introduction
|
||||
when using the GLES2 renderer.
|
||||
|
||||
Just like with :ref:`doc_reflection_probes`, and as stated in
|
||||
the :ref:`doc_spatial_material`, objects can show reflected or diffuse light.
|
||||
the :ref:`doc_standard_material_3d`, objects can show reflected or diffuse light.
|
||||
GI Probes are similar to Reflection Probes, but they use a different and more
|
||||
complex technique to produce indirect light and reflections.
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
using_transforms
|
||||
optimizing_3d_performance
|
||||
3d_rendering_limitations
|
||||
spatial_material
|
||||
standard_material_3d
|
||||
lights_and_shadows
|
||||
reflection_probes
|
||||
gi_probes
|
||||
|
||||
@@ -17,7 +17,7 @@ result. Light can come from several types of sources in a scene:
|
||||
- Baked Light (read :ref:`doc_baked_lightmaps`).
|
||||
|
||||
The emission color is a material property. You can read more about it
|
||||
in the :ref:`doc_spatial_material` tutorial.
|
||||
in the :ref:`doc_standard_material_3d` tutorial.
|
||||
|
||||
Light nodes
|
||||
-----------
|
||||
|
||||
@@ -52,7 +52,7 @@ Reuse shaders and materials
|
||||
|
||||
The Godot renderer is a little different to what is out there. It's designed
|
||||
to minimize GPU state changes as much as possible.
|
||||
:ref:`class_SpatialMaterial`
|
||||
:ref:`class_StandardMaterial3D`
|
||||
does a good job at reusing materials that need similar shaders but, if
|
||||
custom shaders are used, make sure to reuse them as much as possible.
|
||||
Godot's priorities will be like this:
|
||||
@@ -62,7 +62,7 @@ Godot's priorities will be like this:
|
||||
of objects (in the hundreds or thousands) try reusing the materials
|
||||
or in the worst case use atlases.
|
||||
- **Reusing Shaders**: If materials can't be reused, at least try to
|
||||
re-use shaders (or SpatialMaterials with different parameters but the same
|
||||
re-use shaders (or StandardMaterial3Ds with different parameters but the same
|
||||
configuration).
|
||||
|
||||
If a scene has, for example, 20.000 objects with 20.000 different
|
||||
|
||||
@@ -6,7 +6,7 @@ Reflection probes
|
||||
Introduction
|
||||
------------
|
||||
|
||||
As stated in the :ref:`doc_spatial_material`, objects can show reflected or diffuse light.
|
||||
As stated in the :ref:`doc_standard_material_3d`, objects can show reflected or diffuse light.
|
||||
Reflection probes are used as a source of reflected and ambient light for objects inside their area of influence.
|
||||
|
||||
A probe of this type captures the surroundings (as a sort of 360 degrees image), and stores versions
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
.. _doc_spatial_material:
|
||||
.. _doc_standard_material_3d:
|
||||
|
||||
Spatial Material
|
||||
================
|
||||
Standard Material 3D
|
||||
====================
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
``SpatialMaterial`` is a default 3D material that aims to provide most of the features
|
||||
``StandardMaterial3D`` is a default 3D material that aims to provide most of the features
|
||||
artists look for in a material, without the need for writing shader code. However,
|
||||
it can be converted to shader code if additional functionality is needed.
|
||||
|
||||
This tutorial explains most parameters present in ``SpatialMaterial``.
|
||||
This tutorial explains most parameters present in ``StandardMaterial3D``.
|
||||
|
||||
There are three ways to add a ``SpatialMaterial`` to an object. It can be added in
|
||||
There are three ways to add a ``StandardMaterial3D`` to an object. It can be added in
|
||||
the *Material* property of the mesh. It can be added in the *Material* property of
|
||||
the node using the mesh (such as a MeshInstance node), or in the *Material Override*
|
||||
property of the node using the mesh.
|
||||
@@ -160,7 +160,7 @@ option on will help them look correct.
|
||||
Parameters
|
||||
-----------
|
||||
|
||||
``SpatialMaterial`` also has several configurable parameters to tweak
|
||||
``StandardMaterial3D`` also has several configurable parameters to tweak
|
||||
many aspects of the rendering:
|
||||
|
||||
.. image:: img/spatial_material5.png
|
||||
@@ -50,10 +50,10 @@ GLES2 is not capable of using High Dynamic Range (HDR) rendering features. If HD
|
||||
project, or for a given viewport, Godot will still user Low Dynamic Range (LDR) which limits
|
||||
viewport values to the ``0-1`` range.
|
||||
|
||||
SpatialMaterial features
|
||||
------------------------
|
||||
StandardMaterial3D features
|
||||
---------------------------
|
||||
|
||||
In GLES2, the following advanced rendering features in the :ref:`SpatialMaterial <class_SpatialMaterial>` are missing:
|
||||
In GLES2, the following advanced rendering features in the :ref:`StandardMaterial3D <class_StandardMaterial3D>` are missing:
|
||||
|
||||
- Refraction
|
||||
- Subsurface scattering
|
||||
@@ -61,7 +61,7 @@ In GLES2, the following advanced rendering features in the :ref:`SpatialMaterial
|
||||
- Clearcoat
|
||||
- Depth mapping
|
||||
|
||||
When using SpatialMaterials they will not even appear in the editor.
|
||||
When using StandardMaterial3Ds they will not even appear in the editor.
|
||||
|
||||
In custom :ref:`ShaderMaterials <class_ShaderMaterial>`, you can set values for these features but they
|
||||
will be non-functional. For example, you will still be able to set the ``SSS`` built-in (which normally adds
|
||||
|
||||
@@ -147,13 +147,13 @@ way by the engine.
|
||||
::
|
||||
|
||||
func get_resource_type():
|
||||
return "SpatialMaterial"
|
||||
return "StandardMaterial3D"
|
||||
|
||||
The imported resource has a specific type, so the editor can know which property
|
||||
slot it belongs to. This allows drag and drop from the FileSystem dock to a
|
||||
property in the Inspector.
|
||||
|
||||
In our case it's a :ref:`class_SpatialMaterial`, which can be applied to 3D
|
||||
In our case it's a :ref:`class_StandardMaterial3D`, which can be applied to 3D
|
||||
objects.
|
||||
|
||||
.. note:: If you need to import different types from the same extension, you
|
||||
@@ -324,10 +324,10 @@ it sets the color as a pure red instead.
|
||||
|
||||
::
|
||||
|
||||
var material = SpatialMaterial.new()
|
||||
var material = StandardMaterial3D.new()
|
||||
material.albedo_color = color
|
||||
|
||||
This part makes a new :ref:`SpatialMaterial <class_SpatialMaterial>` that is the
|
||||
This part makes a new :ref:`StandardMaterial3D <class_StandardMaterial3D>` that is the
|
||||
imported resource. We create a new instance of it and then set its albedo color
|
||||
as the value we got before.
|
||||
|
||||
@@ -382,7 +382,7 @@ in a different file:
|
||||
|
||||
::
|
||||
|
||||
var next_pass = SpatialMaterial.new()
|
||||
var next_pass = StandardMaterial3D.new()
|
||||
next_pass.albedo_color = color.inverted()
|
||||
var next_pass_path = "%s.next_pass.%s" % [save_path, get_save_extension()]
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ Introduction
|
||||
------------
|
||||
|
||||
For the most common cases, Godot provides ready to use materials for
|
||||
most types of shaders, such as :ref:`SpatialMaterial <class_SpatialMaterial>`,
|
||||
most types of shaders, such as :ref:`StandardMaterial3D <class_StandardMaterial3D>`,
|
||||
:ref:`CanvasItemMaterial <class_CanvasItemMaterial>` and :ref:`ParticlesMaterial <class_ParticlesMaterial>`.
|
||||
They are flexible implementations that cover most use cases.
|
||||
|
||||
@@ -69,7 +69,7 @@ your visual shader to a text shader.
|
||||
Converting to ShaderMaterial
|
||||
----------------------------
|
||||
|
||||
It is possible to convert from SpatialMaterial, CanvasItemMaterial and
|
||||
It is possible to convert from StandardMaterial3D, CanvasItemMaterial and
|
||||
ParticlesMaterial to ShaderMaterial. To do so, go to the material properties
|
||||
and select the convert option.
|
||||
|
||||
@@ -77,5 +77,5 @@ and select the convert option.
|
||||
|
||||
.. note::
|
||||
|
||||
Using the convert option will turn the SpatialMaterial into a ShaderMaterial
|
||||
Using the convert option will turn the StandardMaterial3D into a ShaderMaterial
|
||||
with a text shader, not a visual shader.
|
||||
|
||||
@@ -58,7 +58,7 @@ Global built-ins are available everywhere, including custom functions.
|
||||
Vertex built-ins
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
In order to use the ``COLOR`` variable in a SpatialMaterial, set ``use_vertex_as_albedo``
|
||||
In order to use the ``COLOR`` variable in a StandardMaterial3D, set ``use_vertex_as_albedo``
|
||||
to ``true``. In a ShaderMaterial, access it with the ``COLOR`` variable.
|
||||
|
||||
+---------------------------------+-------------------------------------------------------------------------------------+
|
||||
|
||||
@@ -141,7 +141,7 @@ when you are looking at the surface head-on or at a glancing angle.
|
||||
float fresnel = sqrt(1.0 - dot(NORMAL, VIEW));
|
||||
|
||||
And mix it into both ``ROUGHNESS`` and ``ALBEDO``. This is the benefit of ShaderMaterials over
|
||||
SpatialMaterials. With SpatialMaterials, we could set these properties with a texture, or to a flat
|
||||
StandardMaterial3Ds. With StandardMaterial3D, we could set these properties with a texture, or to a flat
|
||||
number. But with shaders we can set them based on any mathematical function that we can dream up.
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user