summaryrefslogtreecommitdiff
path: root/doc/qtdesignstudio
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@qt.io>2022-07-01 11:19:21 +0200
committerTim Jenssen <tim.jenssen@qt.io>2022-07-01 09:22:10 +0000
commit56bcad81adb7268773b902ece0fc065d01f3db27 (patch)
treead19b5f8f6bbeeedffcde2549bd83ab0ac0d25d1 /doc/qtdesignstudio
parenta920bbf59fb071af2e6bfb306dec07bb8ba94924 (diff)
parent234958a47a6edcd17bae255411a5b0f0bbaea6c7 (diff)
downloadqt-creator-56bcad81adb7268773b902ece0fc065d01f3db27.tar.gz
Merge remote-tracking branch 'origin/7.0' into 8.0
Change-Id: I7cd5d3808007ef739212f4347ba9b16e7b298943
Diffstat (limited to 'doc/qtdesignstudio')
-rw-r--r--doc/qtdesignstudio/images/icons/apply-material.pngbin0 -> 779 bytes
-rw-r--r--doc/qtdesignstudio/images/material-editor-browser.webpbin0 -> 49886 bytes
-rw-r--r--doc/qtdesignstudio/images/materials-remove-material.pngbin0 -> 15142 bytes
-rw-r--r--doc/qtdesignstudio/images/navigator-material-texture.pngbin0 -> 3820 bytes
-rw-r--r--doc/qtdesignstudio/images/studio-qtquick-3d-default-material.webpbin0 -> 13236 bytes
-rw-r--r--doc/qtdesignstudio/images/studio-qtquick-3d-material.webpbin0 -> 35562 bytes
-rw-r--r--doc/qtdesignstudio/images/timeline-bind-animation-state.pngbin0 -> 4262 bytes
-rw-r--r--doc/qtdesignstudio/images/timeline-insert-keyframe.pngbin0 -> 8974 bytes
-rw-r--r--doc/qtdesignstudio/images/timeline-per-property-recording.pngbin0 -> 6041 bytes
-rw-r--r--doc/qtdesignstudio/images/timeline-settings-dialog-second.pngbin0 -> 16649 bytes
-rw-r--r--doc/qtdesignstudio/images/timeline-settings-dialog.pngbin0 -> 14019 bytes
-rw-r--r--doc/qtdesignstudio/images/timeline-settings-property-binding.pngbin0 -> 14993 bytes
-rw-r--r--doc/qtdesignstudio/images/timeline-states.pngbin0 -> 12233 bytes
-rw-r--r--doc/qtdesignstudio/src/components/qtquick-component-context-menu.qdocinc2
-rw-r--r--doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc1
-rw-r--r--doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-editor.qdoc2
-rw-r--r--doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-materials-shaders.qdoc173
-rw-r--r--doc/qtdesignstudio/src/views/qtquick-components-view.qdoc2
-rw-r--r--doc/qtdesignstudio/src/views/qtquick-timeline-view.qdoc14
-rw-r--r--doc/qtdesignstudio/src/views/qtquick-timeline.qdoc244
-rw-r--r--doc/qtdesignstudio/src/views/studio-material-editor.qdoc266
21 files changed, 442 insertions, 262 deletions
diff --git a/doc/qtdesignstudio/images/icons/apply-material.png b/doc/qtdesignstudio/images/icons/apply-material.png
new file mode 100644
index 0000000000..d0b347470b
--- /dev/null
+++ b/doc/qtdesignstudio/images/icons/apply-material.png
Binary files differ
diff --git a/doc/qtdesignstudio/images/material-editor-browser.webp b/doc/qtdesignstudio/images/material-editor-browser.webp
new file mode 100644
index 0000000000..d3963b522e
--- /dev/null
+++ b/doc/qtdesignstudio/images/material-editor-browser.webp
Binary files differ
diff --git a/doc/qtdesignstudio/images/materials-remove-material.png b/doc/qtdesignstudio/images/materials-remove-material.png
new file mode 100644
index 0000000000..9ef0a91e5b
--- /dev/null
+++ b/doc/qtdesignstudio/images/materials-remove-material.png
Binary files differ
diff --git a/doc/qtdesignstudio/images/navigator-material-texture.png b/doc/qtdesignstudio/images/navigator-material-texture.png
new file mode 100644
index 0000000000..4256e959c6
--- /dev/null
+++ b/doc/qtdesignstudio/images/navigator-material-texture.png
Binary files differ
diff --git a/doc/qtdesignstudio/images/studio-qtquick-3d-default-material.webp b/doc/qtdesignstudio/images/studio-qtquick-3d-default-material.webp
new file mode 100644
index 0000000000..0306408df1
--- /dev/null
+++ b/doc/qtdesignstudio/images/studio-qtquick-3d-default-material.webp
Binary files differ
diff --git a/doc/qtdesignstudio/images/studio-qtquick-3d-material.webp b/doc/qtdesignstudio/images/studio-qtquick-3d-material.webp
new file mode 100644
index 0000000000..1c5b1cecf2
--- /dev/null
+++ b/doc/qtdesignstudio/images/studio-qtquick-3d-material.webp
Binary files differ
diff --git a/doc/qtdesignstudio/images/timeline-bind-animation-state.png b/doc/qtdesignstudio/images/timeline-bind-animation-state.png
new file mode 100644
index 0000000000..7e65c85a30
--- /dev/null
+++ b/doc/qtdesignstudio/images/timeline-bind-animation-state.png
Binary files differ
diff --git a/doc/qtdesignstudio/images/timeline-insert-keyframe.png b/doc/qtdesignstudio/images/timeline-insert-keyframe.png
new file mode 100644
index 0000000000..c46a711806
--- /dev/null
+++ b/doc/qtdesignstudio/images/timeline-insert-keyframe.png
Binary files differ
diff --git a/doc/qtdesignstudio/images/timeline-per-property-recording.png b/doc/qtdesignstudio/images/timeline-per-property-recording.png
new file mode 100644
index 0000000000..7daa337aa1
--- /dev/null
+++ b/doc/qtdesignstudio/images/timeline-per-property-recording.png
Binary files differ
diff --git a/doc/qtdesignstudio/images/timeline-settings-dialog-second.png b/doc/qtdesignstudio/images/timeline-settings-dialog-second.png
new file mode 100644
index 0000000000..03cd0be355
--- /dev/null
+++ b/doc/qtdesignstudio/images/timeline-settings-dialog-second.png
Binary files differ
diff --git a/doc/qtdesignstudio/images/timeline-settings-dialog.png b/doc/qtdesignstudio/images/timeline-settings-dialog.png
new file mode 100644
index 0000000000..aa910e67f6
--- /dev/null
+++ b/doc/qtdesignstudio/images/timeline-settings-dialog.png
Binary files differ
diff --git a/doc/qtdesignstudio/images/timeline-settings-property-binding.png b/doc/qtdesignstudio/images/timeline-settings-property-binding.png
new file mode 100644
index 0000000000..a774bcd84a
--- /dev/null
+++ b/doc/qtdesignstudio/images/timeline-settings-property-binding.png
Binary files differ
diff --git a/doc/qtdesignstudio/images/timeline-states.png b/doc/qtdesignstudio/images/timeline-states.png
new file mode 100644
index 0000000000..a1dc73e51e
--- /dev/null
+++ b/doc/qtdesignstudio/images/timeline-states.png
Binary files differ
diff --git a/doc/qtdesignstudio/src/components/qtquick-component-context-menu.qdocinc b/doc/qtdesignstudio/src/components/qtquick-component-context-menu.qdocinc
index af83a8e918..a8f1a172f2 100644
--- a/doc/qtdesignstudio/src/components/qtquick-component-context-menu.qdocinc
+++ b/doc/qtdesignstudio/src/components/qtquick-component-context-menu.qdocinc
@@ -60,7 +60,7 @@
\li \l{Lists and Other Data Models}
\row
\li Timeline
- \li \l{Creating Timelines}
+ \li \l{Creating a Timeline}
\if defined(qtdesignstudio)
\row
\li Event List
diff --git a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc
index f3a7a0d4f7..8cba9a7307 100644
--- a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc
+++ b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc
@@ -39,6 +39,7 @@
\list
\li \l{Form Editor}
\li \l{3D Editor}
+ \li \l{Material Editor and Browser}
\li \l{Components}
\li \l{Assets}
\li \l{Navigator}
diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-editor.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-editor.qdoc
index dee9a01a9d..1995c343b8 100644
--- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-editor.qdoc
+++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-editor.qdoc
@@ -26,7 +26,7 @@
/*!
\previouspage qtquick-form-editor.html
\page studio-3d-editor.html
- \nextpage quick-components-view.html
+ \nextpage studio-material-editor.html
\title 3D Editor
diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-materials-shaders.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-materials-shaders.qdoc
index 73d4f66937..abddc903a9 100644
--- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-materials-shaders.qdoc
+++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-materials-shaders.qdoc
@@ -32,7 +32,7 @@
\title Materials and Shaders
- \image studio-qtquick-3d-material.png "Material attached to model in Design mode"
+ \image studio-qtquick-3d-material.webp "Material attached to model in Design mode"
Materials and shaders define how object surfaces are rendered in \QDS and
live preview. As you change the properties of materials, new shaders are
@@ -40,6 +40,10 @@
a shader depends on a combination of the properties that are set on it, and
the context of the scene itself.
+ It is recommended that you use the \l {Material Editor and Browser} when
+ working with materials, but you can also add materials using the components
+ library.
+
The materials that you used in your imported scenes are imported to \QDS
as \l{Qt Quick 3D} components. When you add a View3D component, it contains
a DefaultMaterial component. You can use the following predefined Qt Quick
@@ -62,171 +66,12 @@
defines an image and how the image is mapped to meshes in a 3D scene. For
more information, see \l {Textures}.
- You can modify material properties in the \uicontrol Properties view, as
- instructed in the following sections. The availability of the properties
- depends on the material type.
-
- \image studio-qtquick-3d-default-material.png "DefaultMaterial properties"
+ You can create and modify materials in
+ \uicontrol {Material Editor} and \uicontrol {Material Browser}. The availability
+ of the properties depends on the material type.
- To enable the material to use vertex colors from the mesh, select the
- \uicontrol {Enable vertex colors} check box. These are multiplied
- by any other colors specified for the material.
+ \image studio-qtquick-3d-default-material.webp "DefaultMaterial properties"
You can animate material properties in the \uicontrol Timeline view, as
instructed in \l {Creating Timeline Animations}.
-
- \section1 Blending Colors
-
- To determine how the colors of a model blend with the colors of the models
- behind it, set the \uicontrol {Blend mode} property. To make opaque objects
- occlude the objects behind them, select \uicontrol {SourceOver}.
-
- For a lighter result, select \uicontrol Screen to blend colors using an
- inverted multiply or \uicontrol ColorDodge to blend them by inverted
- division. Color dodge procudes an even lighter result than screen.
-
- For a darker result, select \uicontrol Multiply to blend colors using a
- multiply or \uicontrol ColorBurn to blend them by inverted division, where
- the result also is inverted. Color burn produces an even darker result than
- multiply.
-
- The screen and multiply modes are order-independent, so select them to
- avoid \e popping, which can happen when using semi-opaque objects and
- sorting the back and front faces or models.
-
- For a result with higher contrast, select \uicontrol Overlay, which is a mix
- of the multiply and screen modes.
-
- \section1 Lighting Materials
-
- To set the lighting method for generating a material, use the
- \uicontrol Lighting property. Select \uicontrol {Fragment lighting} to
- calculate diffuse and specular lighting for each rendered pixel. Some
- effects, such as Fresnel or a bump map, require fragment lighting.
-
- To skip lighting calculation, select \uicontrol {No lighting}. This is very
- fast and quite effective when using image maps that do not need to be shaded
- by lighting.
-
- To set the base color for the material, use the \uicontrol {Diffuse Color}
- property. You can either use the color picker or specify a RBG value. Set
- the diffuse color to black to create purely-specular materials, such as
- metals or mirrors. To apply a texture to a material, set it as the value of
- the \uicontrol {Diffuse map} property. Using a texture with transparency
- also applies the alpha channel as an \uicontrol {Opacity map}. You can set
- the opacity of the material independently of the model as the value of the
- \uicontrol Opacity property.
-
- \section1 Self-Illuminating Materials
-
- To set the color and amount of self-illumination for a material, use the
- \uicontrol {Emissive color} and \uicontrol {Emissive factor} properties. In
- a scene with black ambient lighting, a material with an emissive factor of 0
- is black where the light does not shine on it. Setting the emissive factor
- to 1 shows the material in its diffuse color instead.
-
- To use a Texture for specifying the emissive factor for different parts of
- the material, set the \uicontrol {Emissive map} property. Using a grayscale
- image does not affect the color of the result, while using a color image
- produces glowing regions with the color affected by the emissive map.
-
- \section1 Using Highlights and Reflections
-
- You can control the highlights and reflections on a material by setting the
- properties in the \uicontrol Specular group. You can use the color picker
- or set a RGB value to specify the color used to adjust specular reflections.
- Use white for no effect
-
- To use a color texture to modulate the amount and the color of specularity
- across the surface of a material, set the \uicontrol {Specular map}
- property. Set the \uicontrol {Specular amount} property to specify the
- strength of specularity. This property does not affect the specular
- reflection map, but it does affect the amount of reflections from a scene's
- light probe.
-
- \note Unless your mesh is high-resolution, you may need to use fragment
- lighting to get good specular highlights from scene lights.
-
- To determine how to calculate specular highlights for lights in the scene,
- set the \uicontrol {Specular model}. In addition to the default mode, you
- can use the GGX or Ward lighting model.
-
- To use a Texture for specular highlighting on a material, set the
- \uicontrol {Reflection map} property. When the texture is applied using
- environmental mapping (not UV mapping), the map appears to be reflecting
- from the environment as you rotate the model. Specular reflection maps are
- an easy way to add a high-quality look at a relatively low cost.
-
- To specify an image to use as the specular reflection map, set the
- \uicontrol {Light probe} property.
-
- Crisp images cause your material to look very glossy. The more you
- blur your image, the softer your material appears.
-
- To decrease head-on reflections (looking directly at the surface)
- while maintaining reflections seen at grazing angles, set the
- \uicontrol {Fresnel power} property. To select the angles to control,
- set the \uicontrol {Index of refraction} property.
-
- To control the size of the specular highlights generated from lights and the
- clarity of reflections in general, set the \uicontrol {Specular roughness}
- property. Larger values increase the roughness, while softening specular
- highlights and blurring reflections. To control the specular roughness of
- the material using a Texture, set the \uicontrol {Roughness map property}.
-
- \section1 Simulating Geometry Displacement
-
- Specify the properties in the \uicontrol {Bump/Normal} group to simulate
- fine geometry displacement across the surface of the material. Set the
- \uicontrol {Bump map} property to use a grayscale texture for the
- simulation. Brighter pixels indicate raised regions.
-
- To use a RGB image for simulation, set the \uicontrol {Normal map} property.
- The RGB channels indicate XYZ normal deviations.
-
- The amount of displacement is controlled by the \uicontrol {Bump amount}
- property.
-
- Bump and normal maps do not affect the silhouette of a model. To affect the
- silhouette, set the \uicontrol {Displacement map} property. It specifies a
- grayscale image used to offset the vertices of geometry across the surface
- of the material. The \uicontrol {Displacement amount} property specifies the
- offset amount.
-
- \section1 Specifying Material Translucency
-
- Set the properties in the \uicontrol Translucency group to control how much
- light can pass through the material from behind. To use a grayscale texture,
- specify it as the value of the \uicontrol {Translucency map} property.
-
- To specify the amount of light wrap for the translucency map, set the
- \uicontrol {Diffuse light wrap} property. A value of 0 does not wrap the
- light at all, while a value of 1 wraps the light all around the object.
-
- To specify the amount of falloff for the translucency based on
- the angle of the normals of the object to the light source, set
- the \uicontrol {Translucency falloff} property.
-
- \section1 Culling Faces
-
- Set the \uicontrol {Culling mode} property to determine whether the front
- and back faces of a model are rendered. Culling modes check whether the
- points in the polygon appear in clockwise or counter-clockwise order when
- projected onto the screen. If front-facing polygons have a clockwise
- winding, but the polygon projected on the screen has a counter-clockwise
- winding, the projected polygon is rotated to face away from the camera and
- is not rendered. Culling makes rendering objects quicker and more efficient
- by reducing the number of polygons to draw.
-
- \section1 Applying Materials to Models
-
- To apply materials to models, you should first delete the default material,
- and then drag-and-drop a new material from \l Assets to a model component
- in \l Navigator.
-
- You can apply the same material to another component as well. Again,
- delete the default material first. You should then select the component and
- go to the \uicontrol Properties view. Find the \uicontrol Materials property,
- select the \inlineimage icons/plus.png
- icon, and choose the new material in the dropdown menu.
*/
diff --git a/doc/qtdesignstudio/src/views/qtquick-components-view.qdoc b/doc/qtdesignstudio/src/views/qtquick-components-view.qdoc
index 464926ea35..2d800909d6 100644
--- a/doc/qtdesignstudio/src/views/qtquick-components-view.qdoc
+++ b/doc/qtdesignstudio/src/views/qtquick-components-view.qdoc
@@ -25,7 +25,7 @@
/*!
\page quick-components-view.html
- \previouspage studio-3d-editor.html
+ \previouspage studio-material-editor.html
\nextpage quick-assets.html
\title Components
diff --git a/doc/qtdesignstudio/src/views/qtquick-timeline-view.qdoc b/doc/qtdesignstudio/src/views/qtquick-timeline-view.qdoc
index 9c6b729631..3245b28b59 100644
--- a/doc/qtdesignstudio/src/views/qtquick-timeline-view.qdoc
+++ b/doc/qtdesignstudio/src/views/qtquick-timeline-view.qdoc
@@ -38,9 +38,9 @@
\image studio-timeline-empty.png "Empty Timeline view"
Select the \inlineimage icons/plus.png
- (\uicontrol {Add Timeline}) button to \l{Creating Timelines}
- {create a timeline} and specify settings for it in the
- \uicontrol {Timeline Settings} dialog.
+ (\uicontrol {Add Timeline}) button to
+ \l{Creating a Timeline}{create a timeline} and specify settings for it in
+ the \uicontrol {Timeline Settings} dialog.
\image studio-timeline-settings.png "Timeline Settings dialog"
@@ -124,11 +124,11 @@
\li \inlineimage icons/animation.png
\li Opens the \uicontrol {Timeline Settings} dialog for editing
timeline settings.
- \li \l{Creating Timelines}
+ \li \l{Creating a Timeline}
\row
\li Timeline ID
\li Displays the ID of the current timeline.
- \li \l{Creating Timelines}
+ \li \l{Creating a Timeline}
\row
\li \inlineimage icons/to_first_frame.png
\li \uicontrol {To Start (Home)} moves to the first frame on the
@@ -170,7 +170,7 @@
\li Specifies the first frame of the timeline. Negative values are
allowed. The difference between the start frame and the end frame
determines the duration of the animation.
- \li \l{Creating Timelines}
+ \li \l{Creating a Timeline}
\row
\li \inlineimage icons/zoom_small.png
\li \uicontrol {Zoom Out} (\key Ctrl+-) zooms out of the view.
@@ -189,7 +189,7 @@
the start frame and the end frame determines the duration of the
animation, so if the start frame is 0, the end frame equals the
duration.
- \li \l{Creating Timelines}
+ \li \l{Creating a Timeline}
\row
\li State Name
\li Displays the name of the current state.
diff --git a/doc/qtdesignstudio/src/views/qtquick-timeline.qdoc b/doc/qtdesignstudio/src/views/qtquick-timeline.qdoc
index fc088945ca..e5d938a470 100644
--- a/doc/qtdesignstudio/src/views/qtquick-timeline.qdoc
+++ b/doc/qtdesignstudio/src/views/qtquick-timeline.qdoc
@@ -30,18 +30,19 @@
\title Creating Timeline Animations
- You can create timeline and keyframe based animations for linear
+ You can create timelines and keyframe-based animations for linear
interpolation through intermediate values at specified keyframes
instead of immediately changing to the target value.
- \section1 Creating Timelines
+ You can also bind the timeline to a property value of a component such as
+ a slider and control the animation this way.
- You specify settings for the timeline and for running the animation in the
- \uicontrol {Timeline Settings} dialog. The \uicontrol Animation radio button
- is selected for a timeline animation and the \uicontrol {Expression binding}
- radio button for a \l{Setting Bindings}{property animation}.
+ \section1 Creating an Animation
- \image studio-timeline-settings.png "Timeline Settings dialog"
+ To create an animation, whether it's a keyframe animation or an animation
+ bound to a property value, you first need to create a timeline.
+
+ \section2 Creating a Timeline
To create a timeline to animate a UI component:
@@ -50,95 +51,97 @@
(\uicontrol {Add Timeline}) button to specify settings
for the timeline and running the animation
in the \uicontrol {Timeline Settings} dialog.
- \li In the \uicontrol {Timeline ID} field, enter an ID that describes
- the animated component.
- \li In the \uicontrol {Start frame} field, set the first frame of the
- timeline. Negative values are allowed.
- \li In the \uicontrol {End frame} field, set the last frame of the
- timeline.
- \li In the \uicontrol {Animation ID} field, enter an ID for the
- animation.
- \li Select the \uicontrol {Running in Base State} check box to run the
- animation when the base state is applied. Deselect the check box
- if you want to run the animation when some other state is applied.
- For more information, see \l{Binding Animations to States}.
- \li In the \uicontrol {Start frame} field, set the first frame of the
- animation.
- \li In the \uicontrol {End frame} field, set the last frame of the
- animation.
- \li In the \uicontrol {Duration} field, set the length of the
- animation from the start frame to the end frame. If you set a
- shorter duration than the number of frames, frames are left out
- from the end of the animation when viewing it.
- \li Select the \uicontrol Continuous check box to loop the animation
- indefinitely.
- \li In the \uicontrol Loops field, select the number of times to run
- the animation as a loop. The default number of loops is one, which
- means that you must restart the animation to see it again
- \li Select the \uicontrol {Ping pong} check box to play the animation
- backwards back to the beginning when it reaches the end.
- \li In the \uicontrol Finished field, select the state
- to apply when the animation finishes.
+ \li On the \uicontrol {Timeline Settings} tab:
+ \list
+ \li In the \uicontrol {Timeline ID} field, enter an id that
+ describes the timeline.
+ \li In the \uicontrol {Start frame} field, set the first frame
+ of the timeline. Negative values are allowed.
+ \li In the \uicontrol {End frame} field, set the last frame
+ of the timeline.
+ \image timeline-settings-dialog.png
+ \endlist
+ \li On the \uicontrol {Animation Settings} tab:
+ \list
+ \li In the \uicontrol {Animation ID} field, enter an ID for the
+ animation.
+ \li Optional. Select the \uicontrol {Running in Base State}
+ check box to run the animation when the base state is applied.
+ Clear the check box to run the animation when some other state
+ is applied. For more information, see
+ \l{Binding Animations to States}.
+ \li In the \uicontrol {Start frame} field, set the first frame
+ of the animation.
+ \li In the \uicontrol {End frame} field, set the last frame of
+ the animation.
+ \li In the \uicontrol {Duration} field, set the length of the
+ animation in milliseconds.
+ \li Optional. Select the \uicontrol Continuous check box to
+ loop the animation indefinitely.
+ \li Optional. In the \uicontrol Loops field, set the number of
+ times to run the animation. The default number of
+ loops is one, which means that you must restart the animation
+ to see it again.
+ \li Optional. Select the \uicontrol {Ping pong} check box to
+ play the animation backwards back to the beginning when it
+ reaches the end.
+ \li Optional. In the \uicontrol Finished field, select the state
+ to transition to when the animation finishes.
+ \endlist
\li Select \uicontrol Close to close the dialog and save the settings.
\endlist
- To create additional timelines, select the \inlineimage icons/plus.png
- (\uicontrol {Add Timeline}) button next to the
- \uicontrol {Timeline Settings} tab.
-
- To specify settings for running timeline animations, select the
- \inlineimage icons/plus.png
- (\uicontrol {Add Animation}) button next to the
- \uicontrol {Animation Settings} tab. For example, you could create
- settings for running a part of the timeline animation between specified
- frames or for running the animation backwards from the last frame to the
- first.
+ Now, with the settings set for the timeline and the animation, you
+ set the keyframes for the properties to animate.
- To modify the settings, select the \inlineimage icons/animation.png
- (\uicontrol {Timeline Settings (S)}) button on the \l{Timeline Toolbar}
- {toolbar} (or press \key S) in the \l Timeline view.
-
- \section2 Binding Animations to States
+ \section3 Creating Additional Timelines
- The table at the bottom of the \uicontrol {Timeline Settings} dialog lists
- the available states. Double-click the values in the \uicontrol Timeline
- and \uicontrol Animation column to bind the states to animations. In the
- \uicontrol {Fixed Frame} column, you can bind the states that don't have
- animations to fixed frames.
+ You can create more than one timeline. The purpose of several timelines is
+ to use different timelines in different states.
- \section1 Managing Keyframes
+ To create a timeline for a second state:
- To animate components in the \l Timeline view, move to a frame
- on the timeline and specify changes in the values of a property. \QC
- automatically adds keyframes between two keyframes and sets their values
- evenly to create an appearance of movement or transformation.
+ \list 1
+ \li In \uicontrol {Timeline}, open the \uicontrol {Timeline Settings}
+ dialog.
+ \li Next to the \uicontrol {Timeline Settings} tab, select
+ \inlineimage icons/plus.png
+ . This creates another timeline.
+ \li In the table below the \uicontrol {Animation Settings} tab, set the
+ Timeline for the state where you want to use it.
+ \image timeline-settings-dialog-second.png
+ \endlist
+ To set the keyframe values for the timeline you created, first select the
+ state in \uicontrol {States} and the timeline is available in
+ \uicontrol{Timelines}.
- \image studio-timeline-with-tracks.png "Timeline view"
+ \image timeline-states.png
\section2 Setting Keyframe Values
- You can insert keyframes for all the properties of all the components that
- you want to animate first, and then record the changes in their values by
- selecting the \inlineimage icons/local_record_keyframes.png
- (\uicontrol {Per Property Recording}) button for one property at a time.
- For example, you can hide and show components by turning their visibility
- off and on or by setting their opacity to 0 or 1.
+ When you create a timeline, \QDS creates one animation for the timeline.
+ You can create as many animations for a timeline as you want. For example,
+ you can create animations to run just a small section of the timeline or to
+ run the timeline backwards.
- You can also select the \uicontrol {Auto Key (K)} button (or press \key K)
- to record changes in property values, but you need to be more careful about
- which property values you are changing to avoid surprises.
+ To animate components in the \l Timeline view, you set keyframe values for
+ the property to animate. \QDS automatically adds keyframes between two
+ keyframes and sets their values evenly to create, for example, movement or
+ transformation.
- To record the changes of property values:
+ To set keyframe values for a component property:
\list 1
\li In the \l Navigator view, select the component to animate.
\li In the \l Properties view, select \inlineimage icons/action-icon.png
(\uicontrol Actions) > \uicontrol {Insert Keyframe} for the property
that you want to animate.
+ \image timeline-insert-keyframe.png
\li In the \l Timeline view, select the
\uicontrol {Per Property Recording} button
to start recording property changes.
- \li Check that the playhead is in frame 0 and enter the value of the
+ \image timeline-per-property-recording.png
+ \li Ensure that the playhead is in frame 0 and enter the value of the
property in the field next to the property name on the timeline.
Press \key Enter to save the value.
\li Move the playhead to another frame on the timeline and specify
@@ -148,11 +151,67 @@
\uicontrol {Per Property Recording} again to stop recording.
\endlist
+ \section2 Binding a Timeline to a Property
+
+ When you bind a timeline to a component property, the animation's
+ current frame is controlled by the value of the property.
+
+ In this example, you bind the timeline to a slider component.
+
+ With a timeline created and keyframe values set:
+
+ \list 1
+ \li From \uicontrol {Components}, drag a slider to
+ \uicontrol {Form Editor} or \uicontrol {Navigator}.
+ \li In \uicontrol {Navigator}, select \e slider and in
+ \uicontrol {Properties}, set:
+ \list
+ \li \uicontrol To to 1000.
+ \note The \uicontrol From and \uicontrol To values of the slider
+ should match the \uicontrol {Start Frame} and
+ \uicontrol {End Frame} values of the timeline if you want to
+ control the complete animation with the slider.
+ \endlist
+ \li In the \uicontrol {Timeline Settings} dialog, select
+ \inlineimage icons/minus.png
+ next to the \uicontrol {Animation Settings} tab to delete the
+ animation. If you have several animations, delete all.
+ \li In \uicontrol {Expression binding}, enter \c {slider.value}.
+ \image timeline-settings-property-binding.png
+ \endlist
+
+ \section2 Binding Animations to States
+
+ You can bind animations to states, this means that the animation will run
+ when you enter the state.
+
+ To bind an animation to a state:
+ \list 1
+ \li In the table at the bottom of the \uicontrol {Timeline Settings}
+ dialog lists:
+ \list
+ \li Double-click the value in the \uicontrol Timeline field and select
+ the timeline with the animation you want to bind to the state.
+ \li Double-click the value in the \uicontrol Animation field and
+ select the animation you want to bind to the state.
+ \image timeline-bind-animation-state.png
+ \endlist
+ \endlist
+ To bind a state to a certain keyframe in an animation without running the
+ animation, set the keyframe in the \uicontrol{Fixed Frame} field.
+
+ \section1 Managing Keyframes
+
+ \image studio-timeline-with-tracks.png "Timeline view"
+
+ \section2 Editing Keyframes
+
To remove all the changes you recorded for a property, right-click the
property name on the timeline and select \uicontrol {Remove Property}.
To add keyframes to the keyframe track of a component at the current
- position of the playhead, select \uicontrol {Add Keyframes at Current Frame}.
+ position of the playhead, right-click the component name on the timeline and
+ select \uicontrol {Add Keyframes at Current Frame}.
Keyframes are marked on the timeline by using \l{keyframe_marker}{markers}
of different colors and shapes, depending on whether they are active or
@@ -162,7 +221,7 @@
\section2 Editing Keyframe Values
To fine-tune the value of a keyframe, double-click a keyframe marker or
- select \uicontrol {Edit Keyframe} in the context menu.
+ right-click it and select \uicontrol {Edit Keyframe} in the context menu.
The \uicontrol {Edit Keyframe} dialog displays the name of the property
you are animating and its current value at the frame specified in the
@@ -173,27 +232,36 @@
\section2 Copying Keyframes
You can copy the keyframes from the keyframe track for a component and
- paste them to the keyframe track of another component. To copy all
- keyframes from one track to another one, first right-click the component ID
- and select \uicontrol {Copy All Keyframes} in the context menu.
- Then right-click the other component ID, and select
- \uicontrol {Paste Keyframes} in the context menu.
+ paste them to the keyframe track of another component.
+
+ To copy all keyframes from one track to another one:
+ \list 1
+ \li Right-click the component ID and select
+ \uicontrol {Copy All Keyframes} in the context menu.
+ \li Right-click the other component ID, and select
+ \uicontrol {Paste Keyframes} in the context menu.
+ \endlist
\section2 Deleting Keyframes
- To delete the selected keyframe, select \uicontrol {Delete Keyframe} in the
- context menu.
+ To delete a keyframe, right-click it and select \uicontrol {Delete Keyframe}
+ in the context menu.
- To delete all keyframes from the selected component, select
+ To delete all keyframes from the selected component, right-click the
+ component name in \uicontrol {Timeline} and select
\uicontrol {Delete All Keyframes} in the context menu.
\section1 Viewing the Animation
- You can view the animation on the canvas by moving the playhead along the
- timeline.
+ To preview your animation, do one of the following in the
+ \uicontrol{Timeline} view:
+ \list
+ \li Drag the playhead along the timeline.
+ \li Select \inlineimage icons/start_playback.png
+ button or press \key Space.
+ \endlist
- To preview the animation, select the \uicontrol {Play (Space)}
- button or press \key Space. To preview the whole UI, select the
+ To preview the whole UI, select the
\inlineimage icons/live_preview.png
(\uicontrol {Show Live Preview}) button on the canvas toolbar
or press \key {Alt+P}.
diff --git a/doc/qtdesignstudio/src/views/studio-material-editor.qdoc b/doc/qtdesignstudio/src/views/studio-material-editor.qdoc
new file mode 100644
index 0000000000..fcfa9823e9
--- /dev/null
+++ b/doc/qtdesignstudio/src/views/studio-material-editor.qdoc
@@ -0,0 +1,266 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Creator 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-material-editor.html
+ \previouspage studio-3d-editor.html
+ \nextpage quick-components-view.html
+
+
+ \title Material Editor and Browser
+
+ In the \uicontrol {Material Editor} and \uicontrol {Material Browser} views,
+ you create and manage materials.
+
+ \image material-editor-browser.webp "Material Editor and Browser"
+
+ \section1 Creating a Material
+
+ To create a new material, do one of the following:
+
+ \list
+ \li In \uicontrol {Material Browser}, select \inlineimage icons/plus.png
+ .
+ \li In \uicontrol {Material Editor}, select \inlineimage icons/plus.png
+ .
+ \endlist
+
+ \section1 Editing a Material
+
+ To edit a material, select it in \uicontrol{Material Browser} and edit its
+ properties in \uicontrol{Material Editor}. If \uicontrol {Material Editor}
+ is closed, open it in one of the following ways:
+
+ \list
+ \li In \uicontrol{Navigator}, right-click an object that has the material
+ assigned to it and select \uicontrol {Edit Material}.
+ \li In \uicontrol{Material Browser}, double-click a material.
+ \endlist
+
+ \section1 Assigning a Material to an Object
+
+ To assign a material to a 3D object in your project, first select the object
+ in \uicontrol Navigator or \uicontrol {3D Editor}. Then, do one of the
+ following:
+
+ \list
+ \li In \uicontrol {Material Browser}, right-click the material and select
+ \uicontrol {Apply to Selected}. If there already is any material assigned
+ to the object, you can select whether to replace the material or to add
+ another material to the object.
+ \li In \uicontrol {Material Editor}, select
+ \inlineimage icons/apply-material.png
+ . This replaces any material already assigned to the object.
+ \endlist
+
+ \section1 Removing a Material from an Object
+
+ To remove an assigned material from an object:
+ \list 1
+ \li In \uicontrol{Navigator}, select the object.
+ \li In \uicontrol{Properties}, select
+ \inlineimage icons/close.png
+ next to the material.
+ \image materials-remove-material.png
+ \endlist
+
+ \section1 Using Texture Maps
+
+ In \QDS you can add many different texture maps to your material.
+
+ To add a texture map to a material:
+ \list 1
+ \li Select the material in \uicontrol{Material Browser}.
+ \li From \uicontrol {Assets}, drag an image to the correct map field
+ in \uicontrol {Material Editor}. For example, to add a diffuse map, drag
+ the image to \uicontrol{Diffuse Map} in \uicontrol{Material Editor}.
+ \endlist
+
+ \section2 Using a Reflection Map for Environmental Mapping
+
+ To use a texture for environmental mapping, you need to set the mapping
+ mode to \e {environment}.
+
+ To add a reflection map for environmental mapping to a material:
+
+ \list 1
+ \li Select the material in \uicontrol {Material Browser}.
+ \li From \uicontrol{Assets}, drag an image to
+ \uicontrol{Reflection Map}.
+ \li In \uicontrol {Navigator}, select
+ \inlineimage icons/filtericon.png
+ and then clear \uicontrol {Show Only Visible Components}. Now the
+ texture you just added to the material is visible in
+ \uicontrol {Navigator}.
+ \image navigator-material-texture.png
+ \li In \uicontrol {Navigator}, select the texture.
+ \li In \uicontrol {Properties}, set \uicontrol {Texture Mapping} to
+ \uicontrol {Environment}.
+ \endlist
+
+ \section1 Blending Colors
+
+ To determine how the colors of a model blend with the colors of the models
+ behind it, set the \uicontrol {Blend mode} property. To make opaque objects
+ occlude the objects behind them, select \uicontrol {SourceOver}.
+
+ For a lighter result, select \uicontrol Screen to blend colors using an
+ inverted multiply or \uicontrol ColorDodge to blend them by inverted
+ division. Color dodge produces an even lighter result than screen.
+
+ For a darker result, select \uicontrol Multiply to blend colors using a
+ multiply or \uicontrol ColorBurn to blend them by inverted division, where
+ the result also is inverted. Color burn produces an even darker result than
+ multiply.
+
+ The screen and multiply modes are order-independent, so select them to
+ avoid \e popping, which can happen when using semi-opaque objects and
+ sorting the back and front faces or models.
+
+ For a result with higher contrast, select \uicontrol Overlay, which is a mix
+ of the multiply and screen modes.
+
+ \section1 Lighting Materials
+
+ To set the lighting method for generating a material, use the
+ \uicontrol Lighting property. Select \uicontrol {Fragment lighting} to
+ calculate diffuse and specular lighting for each rendered pixel. Some
+ effects, such as Fresnel or a bump map, require fragment lighting.
+
+ To skip lighting calculation, select \uicontrol {No lighting}. This is very
+ fast and quite effective when using image maps that do not need to be shaded
+ by lighting.
+
+ To set the base color for the material, use the \uicontrol {Diffuse Color}
+ property. You can either use the color picker or specify a RBG value. Set
+ the diffuse color to black to create purely-specular materials, such as
+ metals or mirrors. To apply a texture to a material, set it as the value of
+ the \uicontrol {Diffuse map} property. Using a texture with transparency
+ also applies the alpha channel as an \uicontrol {Opacity map}. You can set
+ the opacity of the material independently of the model as the value of the
+ \uicontrol Opacity property.
+
+ \section1 Self-Illuminating Materials
+
+ To set the color and amount of self-illumination for a material, use the
+ \uicontrol {Emissive color} and \uicontrol {Emissive factor} properties. In
+ a scene with black ambient lighting, a material with an emissive factor of 0
+ is black where the light does not shine on it. Setting the emissive factor
+ to 1 shows the material in its diffuse color instead.
+
+ To use a Texture for specifying the emissive factor for different parts of
+ the material, set the \uicontrol {Emissive map} property. Using a grayscale
+ image does not affect the color of the result, while using a color image
+ produces glowing regions with the color affected by the emissive map.
+
+ \section1 Using Highlights and Reflections
+
+ You can control the highlights and reflections on a material by setting the
+ properties in the \uicontrol Specular group. You can use the color picker
+ or set a RGB value to specify the color used to adjust specular reflections.
+ Use white for no effect.
+
+ To use a color texture to modulate the amount and the color of specularity
+ across the surface of a material, set the \uicontrol {Specular map}
+ property. Set the \uicontrol {Specular amount} property to specify the
+ strength of specularity. This property does not affect the specular
+ reflection map, but it does affect the amount of reflections from a scene's
+ light probe.
+
+ \note Unless your mesh is high-resolution, you may need to use fragment
+ lighting to get good specular highlights from scene lights.
+
+ To determine how to calculate specular highlights for lights in the scene,
+ set the \uicontrol {Specular model}. In addition to the default mode, you
+ can use the GGX or Ward lighting model.
+
+ To use a Texture for specular highlighting on a material, set the
+ \uicontrol {Reflection map} property. When the texture is applied using
+ environmental mapping (not UV mapping), the map appears to be reflecting
+ from the environment as you rotate the model. Specular reflection maps are
+ an easy way to add a high-quality look at a relatively low cost.
+
+ To specify an image to use as the specular reflection map, set the
+ \uicontrol {Light probe} property.
+
+ Crisp images cause your material to look very glossy. The more you
+ blur your image, the softer your material appears.
+
+ To decrease head-on reflections (looking directly at the surface)
+ while maintaining reflections seen at grazing angles, set the
+ \uicontrol {Fresnel power} property. To select the angles to control,
+ set the \uicontrol {Index of refraction} property.
+
+ To control the size of the specular highlights generated from lights and the
+ clarity of reflections in general, set the \uicontrol {Specular roughness}
+ property. Larger values increase the roughness, while softening specular
+ highlights and blurring reflections. To control the specular roughness of
+ the material using a Texture, set the \uicontrol {Roughness map property}.
+
+ \section1 Simulating Geometry Displacement
+
+ Specify the properties in the \uicontrol {Bump/Normal} group to simulate
+ fine geometry displacement across the surface of the material. Set the
+ \uicontrol {Bump map} property to use a grayscale texture for the
+ simulation. Brighter pixels indicate raised regions.
+
+ To use an image for simulation, set the \uicontrol {Normal map} property.
+ The RGB channels indicate XYZ normal deviations.
+
+ The amount of displacement is controlled by the \uicontrol {Bump amount}
+ property.
+
+ Bump and normal maps do not affect the silhouette of a model. To affect the
+ silhouette, set the \uicontrol {Displacement map} property. It specifies a
+ grayscale image used to offset the vertices of geometry across the surface
+ of the material. The \uicontrol {Displacement amount} property specifies the
+ offset amount.
+
+ \section1 Specifying Material Translucency
+
+ Set the properties in the \uicontrol Translucency group to control how much
+ light can pass through the material from behind. To use a grayscale texture,
+ specify it as the value of the \uicontrol {Translucency map} property.
+
+ To specify the amount of light wrap for the translucency map, set the
+ \uicontrol {Diffuse light wrap} property. A value of 0 does not wrap the
+ light at all, while a value of 1 wraps the light all around the object.
+
+ To specify the amount of falloff for the translucency based on
+ the angle of the normals of the object to the light source, set
+ the \uicontrol {Translucency falloff} property.
+
+ \section1 Culling Faces
+
+ Set the \uicontrol {Culling mode} property to determine whether the front
+ and back faces of a model are rendered. Culling modes check whether the
+ points in the polygon appear in clockwise or counter-clockwise order when
+ projected onto the screen. If front-facing polygons have a clockwise
+ winding, but the polygon projected on the screen has a counter-clockwise
+ winding, the projected polygon is rotated to face away from the camera and
+ is not rendered. Culling makes rendering objects quicker and more efficient
+ by reducing the number of polygons to draw.
+
+*/