- Qt 5.15
- Qt 3D
- Qt 3D: Advanced Custom Material QML Example
- Qt 5.15.2 Reference Documentation

# Qt 3D: Advanced Custom Material QML Example

Demonstrates creating advanced materials in Qt3D.

This example demonstrates creating advanced custom materials.

#### Running the Example

To run the example from Qt Creator, open the Welcome mode and select the example from Examples. For more information, visit Building and Running an Example.

#### Description

Advanced custom material example shows more complex shaders, and demonstrates controlling your shader properties with QtQuick user interface and Animation. Water is a 3D mesh, that is modeled and uv mapped inside Blender, and then brought into Scene 3D as an `.obj` file. Shader properties that user can control, are defined in `advancedcustommaterial/WaterMaterial.qml`.

#### Controls

##### Texture scale slider

Multiplies texture coordinates inside the vertex shader. Controls the size of the textures on water surface.

##### Texture speed slider

Offsets values for texture coordinates which are animated in `advancedcustommaterial/Water.qml` and then passed to vertex shader. Creates the effect of textures scrolling over the surface.

##### Specularity

Multiplies specular texture values inside fragment shader. Makes the water reflective.

##### Distortion

Multiplies the offset in red and blue channels of wave texture in fragment shader. Makes the surface textures animate more randomly.

##### Normal amount

Multiplies the normal map values inside fragment shader. Controls the visibility of smaller waves on the water surface.

##### Wave speed

Modifies the frequency of the sine wave inside vertex shader. Controls the speed of the waves.

##### Wave height

Multiplies the vertex `Y` position inside vertex shader. Controls the height of the waves.

##### Mesh rotation

Rotates the water mesh in `advancedcustommaterial/Water.qml`.

Example project @ code.qt.io