Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions docs/user_manual/map_views/3d_map_view.rst
Original file line number Diff line number Diff line change
Expand Up @@ -323,14 +323,13 @@ Effects
* Check |unchecked| :guilabel:`Show shadows` to display shadows within your scene,
given:

* a :guilabel:`Directional light`
* a :guilabel:`Light source`: can be directional or sun light
* a :guilabel:`Shadow rendering maximum distance`: to avoid rendering shadow
of too distant objects, particularly when the camera looks up along the horizon
* a :guilabel:`Shadow bias`: to avoid self-shadowing effects that could make
some areas darker than others, due to differences between map sizes.
The lower the better
* a :guilabel:`Shadow map resolution`: to make shadows look sharper.
It may result in less performance if the resolution parameter is too high.


.. _eye_dome_lighting:

Expand Down
64 changes: 52 additions & 12 deletions docs/user_manual/style_library/3d_symbols.rst
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
.. _`3dsymbols`:

*********************
Creating 3D Symbols
*********************
************************************
Creating 3D Symbols and Materials
************************************

.. only:: html

.. contents::
:local:

The :guilabel:`Style Manager` helps you create and store 3D symbols for every geometry type
The :guilabel:`Style Manager` helps you create and store 3D symbols and materials for every geometry type
to render in the :ref:`3D map view <label_3dmapview>`.

As of the other items, enable the |3d| :guilabel:`3D Symbols` tab and expand the |symbologyAdd|
Expand All @@ -19,6 +19,9 @@ button menu to create:
* :ref:`3D line symbols <3d_linelayers>`
* :ref:`3D polygon symbols <3d_polygonlayers>`

Or click the :guilabel:`Materials` tab and expand the |symbologyAdd|
button to select a material type.


.. _`3d_pointlayers`:

Expand Down Expand Up @@ -171,18 +174,19 @@ in order to visualise features.
Various techniques of shading are used in QGIS and their availability depends
on the geometry type of the symbol:

* :guilabel:`Realistic (Phong)`: describes the way a surface reflects light as
* :guilabel:`Legacy (Phong)`: describes the way a surface reflects light as
a combination of the :guilabel:`Diffuse` reflection of rough surfaces with
the :guilabel:`Specular` reflection of shiny surfaces (:guilabel:`Shininess`).
It also includes an :guilabel:`Ambient` option to account for the small amount
of light that is scattered about the entire scene.
Use the :guilabel:`Opacity` slider to render semi-transparent objects in 3D.
Read more at `Phong reflection description <https://en.wikipedia.org/wiki/Phong_reflection_model>`_.
* :guilabel:`Realistic Textured (Phong)`: same as the :guilabel:`Realistic (Phong)`
* :guilabel:`Legacy Textured (Phong)`: same as the :guilabel:`Legacy (Phong)`
except that an image is used as :guilabel:`Diffuse Texture`.
The image can be a file on disk, a remote URL or :ref:`embedded in the project
<embedded_file_selector>`.
The :guilabel:`Texture scale` and :guilabel:`Texture rotation` are required.
To transform the texture, adjust the :guilabel:`Texture scale`, :guilabel:`Texture rotation` or
:guilabel:`Texture offset` as needed.
Use the :guilabel:`Opacity` slider to render semi-transparent objects in 3D.
* :guilabel:`CAD (Gooch)`: this technique allows shading to occur only in mid-tones
so that edge lines and highlights remain visually prominent. Along with the
Expand All @@ -192,11 +196,47 @@ on the geometry type of the symbol:
Also, the relative contributions to the cool and warm colors by the diffuse color
are controlled by :guilabel:`Alpha` and :guilabel:`Beta` properties respectively.
See also `Gooch shading <https://en.wikipedia.org/wiki/Gooch_shading>`_.
* :guilabel:`Metal Roughness`: a physically based rendering material
that provides an accurate representation of how light interacts with surfaces.
Options are available for setting the material :guilabel:`Base color`,
:guilabel:`Metalness` and :guilabel:`Roughness`.
* :guilabel:`Embedded Textures` with 3D models shape
* :guilabel:`Physically Based`: renders materials that respond naturally to light, making objects look
like real-world materials. Available options are:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* :guilabel:`Physically Based`: renders materials that respond naturally to light,
making objects look like real-world materials. Following options are available:

or Available options are

* :guilabel:`Base color`: allows users to put base color on surface.
* :guilabel:`Metalness`: sets how metallic the surface appears.
* :guilabel:`Roughness`: controls how rough or smooth the surface is.
* :guilabel:`Reflectance`: controls how much light the surface reflects.
* :guilabel:`Anisotropy`: creates directional reflections that align with
the direction specified in :guilabel:`Anisotropy direction`.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fail to understand how the user knows the anisotropy direction they set. The widget is a simple slider with no values. @nyalldawson should there not be a numerical value? I assume, an angle.

* :guilabel:`Clear coat strength`: controls the intensity of the clear coat layer. Higher values
create a stronger glossy appearance, lower values create a more subtle protective layer.
* :guilabel:`Clear coat roughness`: controls the roughness of the clear coat surface. Higher values
create a matte clear coat, lower values create a shiny, glossy clear coat.
* :guilabel:`Emission`: an optional setting where users can select solid emission color for metal rough material.
Useful for creating emissive solid color material. Adjust the :guilabel:`Emission strength` value
to control the intensity of the light.

Use the :guilabel:`Opacity` slider to adjust transparency.
* :guilabel:`Physically Based (with textures)`: same as the :guilabel:`Physically Based`, but users can
input more complex texture maps. Available options are:

* :guilabel:`Base color texture`: represents color, pattern, visual detail of the material.
* :guilabel:`Metalness texture`: applies metallic material to the surface.
* :guilabel:`Roughness texture`: defines surface roughness.
* :guilabel:`Normal texture`: adds details to the material. For example: bumps, grooves, scratch and grain.
* :guilabel:`Height (displacement) texture`: displaces geometry to add surface depth, making it appear more realistic.
Set the :guilabel:`Height texture strength` to modify the depth effect as needed.
* :guilabel:`Ambient occlusion texture`: a grayscale image that adds soft shadows to corners, gaps, and areas where objects
are close together, making it look more realistic.
* :guilabel:`Emission texture`: adds emissive objects to the surface. To brighten
the objects, increase the :guilabel:`Emission strength`.

Set the desired transparency with the :guilabel:`Opacity` slider.
To transform the texture, adjust :guilabel:`Texture scale`
and :guilabel:`Texture rotation` as desired.

.. figure:: img/physicallybased_withtextures.png
:align: center
:width: 50%

Physically based (with textures) configuration.


Application example
Expand Down

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This dialog isn't the right one for this tool. It should be taken from adding new item from the Style Manager --> Materials tab. To show only the material, same as symbols.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user_manual/style_library/img/stylemanager.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions docs/user_manual/style_library/style_manager.rst
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,8 @@ previewed items organized into tabs:
* |legend| :guilabel:`Legend Patch Shapes` to manage custom legend patch
shapes, which include :guilabel:`Marker`, :guilabel:`Line` and
:guilabel:`Fill` geometries.
* |materials| :guilabel:`Materials` to manage :ref:`shading textures <shading_texture>`
by adjusting predefined options or import textures from external sources.
* |3d| :guilabel:`3D Symbols` to configure symbols with :ref:`3D properties
<3dsymbols>` (extrusion, shading, altitude, ...) for the features to render
in a :ref:`3D Map view <label_3dmapview>`
Expand Down Expand Up @@ -423,6 +425,8 @@ back to the :guilabel:`New Legend Patch Shape` dialog to keep creating new shape
:width: 1.2em
.. |lineLayer| image:: /static/common/mIconLineLayer.png
:width: 1.5em
.. |materials| image:: /static/common/materials.png
:width: 1.5em
.. |newPage| image:: /static/common/mActionNewPage.png
:width: 1.5em
.. |openTable| image:: /static/common/mActionOpenTable.png
Expand Down
Binary file added static/common/materials.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions substitutions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -744,6 +744,8 @@
:width: 1.5em
.. |mapIdentification| image:: /static/common/mActionMapIdentification.png
:width: 1.5em
.. |materials| image:: /static/common/materials.png
:width: 1.5em
.. |mapTips| image:: /static/common/mActionMapTips.png
:width: 1.5em
.. |meanCoordinates| image:: /static/common/mAlgorithmMeanCoordinates.png
Expand Down