| /**************************************************************************** |
| ** |
| ** Copyright (C) 2017 The Qt Company Ltd. |
| ** Contact: https://www.qt.io/licensing/ |
| ** |
| ** This file is part of the documentation of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:FDL$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/contact-us. |
| ** |
| ** GNU Free Documentation License Usage |
| ** Alternatively, this file may be used under the terms of the GNU Free |
| ** Documentation License version 1.3 as published by the Free Software |
| ** Foundation and appearing in the file included in the packaging of |
| ** this file. Please review the following information to ensure |
| ** the GNU Free Documentation License version 1.3 requirements |
| ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| /*! |
| \example advancedcustommaterial |
| \title Qt 3D: Advanced Custom Material QML Example |
| \ingroup qt3d-examples-qml |
| \brief Demonstrates creating advanced materials in Qt3D. |
| |
| \image advanced-custom-material.jpg |
| |
| \e This example demonstrates creating advanced custom materials. |
| |
| \include examples-run.qdocinc |
| |
| \section1 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 \c {.obj} file. |
| Shader properties that user can control, are defined in \c {advancedcustommaterial/WaterMaterial.qml}. |
| |
| \section1 Controls |
| \section2 Texture scale slider |
| |
| Multiplies texture coordinates inside the vertex shader. Controls the size of the textures |
| on water surface. |
| |
| \section2 Texture speed slider |
| |
| Offsets values for texture coordinates which are animated in |
| \c {advancedcustommaterial/Water.qml} and then passed to vertex shader. |
| Creates the effect of textures scrolling over the surface. |
| |
| \section2 Specularity |
| |
| Multiplies specular texture values inside fragment shader. Makes the water reflective. |
| |
| \section2 Distortion |
| |
| Multiplies the offset in red and blue channels of wave texture in fragment shader. |
| Makes the surface textures animate more randomly. |
| |
| \section2 Normal amount |
| |
| Multiplies the normal map values inside fragment shader. Controls the visibility of |
| smaller waves on the water surface. |
| |
| \section2 Wave speed |
| |
| Modifies the frequency of the sine wave inside vertex shader. Controls the speed of the waves. |
| |
| \section2 Wave height |
| |
| Multiplies the vertex \c {Y} position inside vertex shader. Controls the height of the waves. |
| |
| \section2 Mesh rotation |
| |
| Rotates the water mesh in \c {advancedcustommaterial/Water.qml}. |
| */ |