From 1a3da3a06d46e6b71a57cae40284bc1de8512acc Mon Sep 17 00:00:00 2001 From: Johanna Vanhatapio Date: Thu, 26 Aug 2021 14:47:55 +0300 Subject: [PATCH] Doc: Describe Instancing Components New components in the QtQuick3D module: - Instancing (FileInstancing QML Type) - Instancing List - Instancing List Entry Task-number: QDS-4888 Change-Id: Iadf3bd75aee8fad3444681bd07eb1c26ddb7b554 Reviewed-by: Leena Miettinen Reviewed-by: Miikka Heikkinen Reviewed-by: Mahmoud Badri --- doc/qtcreator/src/qtcreator-toc.qdoc | 1 + .../library/qtquick-preset-components.qdoc | 1 + .../src/qtquick/qtquick-library.qdoc | 1 + ...tancing-instance-list-entry-properties.png | Bin 0 -> 27649 bytes .../studio-3d-instancing-instance-list.png | Bin 0 -> 11023 bytes .../images/studio-3d-instancing-model.png | Bin 0 -> 23266 bytes .../studio-3d-instancing-properties.png | Bin 0 -> 15426 bytes .../src/qtdesignstudio-toc.qdoc | 1 + .../qtdesignstudio-3d-instancing.qdoc | 153 ++++++++++++++++++ .../qtdesignstudio-3d-model.qdoc | 5 +- .../qtdesignstudio-3d-node.qdoc | 2 +- .../studio-skeletal-components.qdoc | 2 +- 12 files changed, 163 insertions(+), 3 deletions(-) create mode 100644 doc/qtdesignstudio/images/studio-3d-instancing-instance-list-entry-properties.png create mode 100644 doc/qtdesignstudio/images/studio-3d-instancing-instance-list.png create mode 100644 doc/qtdesignstudio/images/studio-3d-instancing-model.png create mode 100644 doc/qtdesignstudio/images/studio-3d-instancing-properties.png create mode 100644 doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-instancing.qdoc diff --git a/doc/qtcreator/src/qtcreator-toc.qdoc b/doc/qtcreator/src/qtcreator-toc.qdoc index 43396743138..8f331922ff4 100644 --- a/doc/qtcreator/src/qtcreator-toc.qdoc +++ b/doc/qtcreator/src/qtcreator-toc.qdoc @@ -132,6 +132,7 @@ \li \l{Animations} \li \l{3D Views} \li \l{Group} + \li \l{Instanced Rendering} \li \l{Skeletal Animation} \li \l{3D Models} \li \l{Materials and Shaders} diff --git a/doc/qtcreator/src/qtquick/library/qtquick-preset-components.qdoc b/doc/qtcreator/src/qtquick/library/qtquick-preset-components.qdoc index 68c1875c068..2ab482358b2 100644 --- a/doc/qtcreator/src/qtquick/library/qtquick-preset-components.qdoc +++ b/doc/qtcreator/src/qtquick/library/qtquick-preset-components.qdoc @@ -70,6 +70,7 @@ \list \li \l {3D Views} \li \l {Group} + \li \l {Instanced Rendering} \li \l {Skeletal Animation} \li \l {3D Models} \li \l {Materials and Shaders} diff --git a/doc/qtcreator/src/qtquick/qtquick-library.qdoc b/doc/qtcreator/src/qtquick/qtquick-library.qdoc index ae206f3e4fd..dad5e9b9282 100644 --- a/doc/qtcreator/src/qtquick/qtquick-library.qdoc +++ b/doc/qtcreator/src/qtquick/qtquick-library.qdoc @@ -71,6 +71,7 @@ \li \l Animations \li \l{3D Views} \li \l{Group} + \li \l{Instanced Rendering} \li \l{Skeletal Animation} \li \l{3D Models} \li \l{Materials and Shaders} diff --git a/doc/qtdesignstudio/images/studio-3d-instancing-instance-list-entry-properties.png b/doc/qtdesignstudio/images/studio-3d-instancing-instance-list-entry-properties.png new file mode 100644 index 0000000000000000000000000000000000000000..72d465e562893fbea91b7c07de5658d67d271f6e GIT binary patch literal 27649 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

KcIK+wHCmNbTW`EQp&^maXv_a* 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 F69B_>DC7VD literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/studio-3d-instancing-instance-list.png b/doc/qtdesignstudio/images/studio-3d-instancing-instance-list.png new file mode 100644 index 0000000000000000000000000000000000000000..f7bb9f8f1f3e27e77c0543b1edcb0abfc807d109 GIT binary patch literal 11023 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 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/studio-3d-instancing-model.png b/doc/qtdesignstudio/images/studio-3d-instancing-model.png new file mode 100644 index 0000000000000000000000000000000000000000..b93b90794506e88aaa0545103974d4870063bddb GIT binary patch literal 23266 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%0DF55bp3XiRFLZhGkq|?Fq2N$mFCOm|3q=`wOtppQ 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 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc index ceb5d458611..8427aa74938 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc @@ -89,6 +89,7 @@ \li \l Animations \li \l{3D Views} \li \l{Group} + \li \l{Instanced Rendering} \li \l{Skeletal Animation} \li \l{3D Models} \li \l{Materials and Shaders} diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-instancing.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-instancing.qdoc new file mode 100644 index 00000000000..cde225b547c --- /dev/null +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-instancing.qdoc @@ -0,0 +1,153 @@ +/**************************************************************************** +** +** Copyright (C) 2021 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Design Studio documentation. +** +** 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. +** +****************************************************************************/ + +/*! + \page studio-3d-instancing.html + \previouspage studio-3d-node.html + \nextpage studio-skeletal-components.html + + \title Instanced Rendering + + Instancing allows duplicating a model with variations. In contrast to using + the \uicontrol Repeater3D component, the model and its graphics resources are + only allocated once. The rendering of the duplicated instances is done at a + low level by the GPU. Depending on the complexity of the model, this can + give a performance improvement of several orders of magnitude. + + In practice, instancing is done by defining a table that specifies how each + instance is modified relative to the base model. + + You can add instancing to your scenes by using the instancing components + available in \uicontrol Library > \uicontrol Components > + \uicontrol {Qt Quick 3D} > \uicontrol {Qt Quick 3D}: + \list + \li \uicontrol {Instancing} + \li \uicontrol {Instance List} + \li \uicontrol {Instance List Entry}. + \endlist + + \section1 Reading Instance Tables from Files + + The \uicontrol Instancing component makes it possible to read instance tables + from files in XML or binary format. The binary file format uses the same + layout as the table that is uploaded to the GPU, so it can be directly mapped + to memory. + + In order to be valid, the XML file must have a top-level instance table + element. Each instance is represented by an Instance element inside the + InstanceTable. Unknown elements are silently ignored. + + An Instance element can have a number of attributes. Color attributes are + specified by using SVG color names, such as "red", "green", or + "lightsteelblue", or by using a hexadecimal notation. \c Vector3d and + \c vector4d attributes are specified by a string of space-separated numbers, + where missing trailing numbers indicate zeroes. The following attributes are + supported: position, scale, eulerRotation, quaternion, custom, and color. + For more information about instance tables, see the documentation for the + \l[Instancing]{FileInstancing} QML type. + + To use the \uicontrol Instancing component, drag-and-drop it from + \uicontrol Library to \uicontrol Scene in \uicontrol Navigator. + + \section2 Instancing Properties + + Define the location of an XML or a binary file containing the instance data + in \uicontrol Properties > \uicontrol {File Instancing} > \uicontrol Source. + + \image studio-3d-instancing-properties.png "File Instancing in the Properties View" + + If the file name has a \c .bin extension, it is assumed to refer to a binary + file. Otherwise it is assumed to refer to an XML file. If an XML file + \c foo.xml is specified, and the file \c foo.xml.bin exists, the binary file + \c foo.xml.bin will be loaded instead. + + After defining the \uicontrol Source property for the \uicontrol Instancing + component, select a model in \uicontrol Navigator, and in + \uicontrol Properties > \uicontrol Model > \uicontrol Instancing, select the + name of the \uicontrol Instancing component. + + \image studio-3d-instancing-model.png "The Instancing property" + + \section1 Using Instance Lists to Build Instance Tables + + Use the \uicontrol {Instance List} component to define an instance table in + \QDS. An instance table consists of instances defined as + \uicontrol {Instance List Entry} components, which can have property bindings + and animation. This gives great flexibility but also causes memory overhead. + Therefore, it is not recommended to use \uicontrol {Instance List} + for procedurally generated tables containing a large number of instances. + Also, any property change to an entry will cause the entire instance table + to be recalculated and uploaded to the GPU. + + \image studio-3d-instancing-instance-list.png "Instance List and Instance Entries in Navigator" + + To build an instance table: + \list 1 + \li Drag-and-drop an \uicontrol {Instance List} component from + \uicontrol Library > \uicontrol Components > \uicontrol {Qt Quick 3D} + > \uicontrol {Qt Quick 3D} to \uicontrol Scene in + \uicontrol Navigator. + \li Drag-and-drop \uicontrol {Instance List Entry} components to the + \uicontrol {Instance List} component to create list items. + \image studio-3d-instancing-instance-list.png "Instance List and Instance Entries in Navigator" + + \li Select the \uicontrol {Instance List} in \uicontrol Navigator, and in + \uicontrol Properties > \uicontrol {Instance List} > + \uicontrol Instances, select each \uicontrol {Instance List Entry} + you wish to include in the \uicontrol {Instance List} by using + the dropdown menu. You can add more fields for the property by + clicking the \inlineimage plus.png + icon. + \li To define an \uicontrol {Instance List Entry}, select it in + \uicontrol Navigator, and specify its properties in + \uicontrol Properties > \uicontrol {Instance List Entry}. + \li Select a model component in \uicontrol Navigator, and in + \uicontrol Properties > \uicontrol Instancing, select the name + of the \uicontrol {Instance List} component. + \endlist + + \section2 Defining Instance List Entries + + Use the \uicontrol {Instance List Entry} component to specify each instance + in an \uicontrol {Instance List}. + + Each of the \uicontrol {Instance List Entry} properties can have + \l {Adding Bindings Between Properties}{bindings} and animation. Select an + \uicontrol {Instance List Entry} in \uicontrol Navigator to specify the + properties in \uicontrol Properties > \uicontrol {Instance List Entry}. + + \image studio-3d-instancing-instance-list-entry-properties.png "Instance List Entry Properties" + + Use the \uicontrol Color property to \l{Picking Colors}{specify the color} + for the instance. + + Specify the position for the instance using the \uicontrol Position property, + and the scale by defining the scale factors of the \uicontrol Scale property + along the x, y, and z axes. + + Set the rotation for the instance using the \uicontrol Rotation + property, which specifies the rotation for the instance as an Euler vector + containing the rotation in degrees around the x, y, and z axes. +*/ diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-model.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-model.qdoc index 26d0685296d..33c5e23b9a0 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-model.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-model.qdoc @@ -77,7 +77,10 @@ The \uicontrol Source field must be empty when custom geometry is used. Set the \uicontrol Instancing property to render a number of instances of - the model as defined by the instance table. + the model as defined by an instancing table. The instancing tables can be + defined by using one of the \l{Instanced Rendering}{instancing components} + available in \uicontrol Library > \uicontrol Components > + \uicontrol {Qt Quick 3D} > {Qt Quick 3D}. Set the \uicontrol {Instance root} property to define the origin of the instance's coordinate system. diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-node.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-node.qdoc index 9c50ec4232d..d524fd8da00 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-node.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-node.qdoc @@ -26,7 +26,7 @@ /*! \page studio-3d-node.html \previouspage quick-animations.html - \nextpage studio-skeletal-components.html + \nextpage studio-3d-instancing.html \title Group diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/studio-skeletal-components.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/studio-skeletal-components.qdoc index c6edcc7197c..c73c561adf6 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/studio-skeletal-components.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/studio-skeletal-components.qdoc @@ -25,7 +25,7 @@ /*! \page studio-skeletal-components.html - \previouspage studio-3d-node.html + \previouspage studio-3d-instancing.html \nextpage studio-3d-model.html \title Skeletal Animation