summaryrefslogtreecommitdiffstats
path: root/doc/src/03-studio/7-inspector-palette.qdoc
blob: 70cc9f5967169f2eaf4f9736895a6fe74852f910 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
/****************************************************************************
**
** Copyright (C) 1993-2009 NVIDIA Corporation.
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt 3D Studio.
**
** $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$
**
****************************************************************************/

/*!

\title Studio: Inspector Palette
\page studio-inspector-palette.html
\ingroup qt3dstudio-studio

The Inspector palette is the most-used
palette in Studio. It is used to control which properties are animated
or change on a per-slide basis and the values for each of those
properties.

\section1 Animating Properties

Almost every property of every element may be animated at runtime.
Non-animatable exceptions are properties with discrete values (booleans,
text strings, or drop-down lists).

Properties that \e{can} be animated have a small stopwatch icon next
to them in the Inspector palette. Click on this icon to enable animation
for an property.

Turning off the toggle for an property with complex animation saves the
keyframes during the same session; if you accidentally turn off
animation you can turn it back on and all your keyframes will come back.
However, if you save your presentation with the animation turned off,
those keyframes are discarded. Re-enabling animation after re-opening
the presentation will start with a blank slate.

\section1 Unlinking from the Master Slide

By default, elements on the
\l{studio-slide-palette.html#the-master-slide}{master slide} have the same property values on all
slides. If you change the scale of an object that change is applied on all slides. However, it
is also possible to unlink any property of a master element. An
unlinked property can have custom values and animations for each slide.

To unlink a property, right-click on the property name in the inspector
palette and choose \uicontrol {Unlink Property from Master Slide}. The name of
the property will change from green to light grey. This is the same
color used for the name of elements that are present only on a single
slide, and the properties of such elements.

Tip: When you first unlink a property, the current value for that
property (including any animation keyframes) is used as the value for
every slide. If you want a similar but slightly different animation on
all or most slides, first create the animation on the master slide and
then unlink the property and tweak the animation on other slides.

\section1 Editing Numeric Values

Studio provides two mechanisms for experimentally changing numeric
values in the Inspector palette when you are not sure of the exact value
you want.

\list 1
\li
  When a numeric input is \b{not} already focused (ready to be
  typed into), click and drag the mouse up and down on the number you
  want to change. The value will increase or decrease as you drag the
  mouse, and the scene view will update to show the effect of the
  change.
\li
  With a numeric input focused, press the up/down arrow keys to
  increment/decrement the value by 1 for each key press.
\endlist
With both of these techniques, you can hold down the \b{shift} key
to make the values adjust by 10 instead of 1, or hold down the
\b{control} key to make the values adjust by 0.1 instead.

\target scenecomponent-properties
\section1 Scene/Component Properties

Scenes and components are both \"time contexts\". When their contents
are displayed in the Timeline palette (when you are \"inside\" the scene
or component) and the element is selected, the following properties are
shown in the Inspector palette \e{specific to the active slide}:

\list
\li
  \b{Play Mode}: Controls what happens when the playhead reaches
  the end time for the slide:
\list
\li
  \c{Stop at end} - This default value simply holds the playhead at
  the end time, with any animated properties holding their final value.
\li
  \c{Looping} - Upon reaching the final time the playhead starts
  over at time 0.
\li
  \c{PingPong} - Upon reaching the final time the playhead starts
  playing backwards; upon reaching time 0 the playhead starts playing
  forwards again.
\li
  \c{Ping} - Similar to \e{PingPong}, but when the playhead
  reaches time 0 it stops playback and holds that time.
\li
  \c{Play Through To...} - Upon reaching the final time the
  scene or component will switch to a new slide. This is useful to have
  an intro animation that then leads into a looping animation (on a
  separate slide). You may specify a specific slide to play through to,
  or simply the next/previous slide in the Slide palette.
\endlist
\li
  \b{Initial Play State} - When entering this slide, should the
  playhead immediately start playing, or wait to be started? Using the
  \b{Pause} setting is particularly useful when QML application is going
  to control the time for the context and you don't
  need or want the runtime attempting to do its own work.
\li
  \b{Use Background} - Clear the contents to a solid color before each frame.
\li
  \b{Background Color} - Color to use for the background.
\endlist

\target layer-properties
\section1 Layer Properties

Selecting a layer in the Timeline palette shows the following properties
in the Inspector palette:

\list
\li
  \b{Layer Background} - Controls how the layer clears when it
  starts to render each frame:
\list
\li
  \c{Transparent} - Clear the layer to transparent each frame so
  that content behind it can be seen.
\li
  \c{Solid Color} - Clear this layer to a non-transparent color.
  This provides a slight performance boost if the layer fills the
  viewport \b{and} if you turn off \"Enable Background Color\" for
  the Scene.
\li
  \c{Unspecified} - Do not clear layer each frame. This provides a
  slight performance boost if the layer is filled with content, and
  hence will fully overwrite the previous result.
\endlist
\li
  \b{Blend Mode} - Controls how colors in the active layer blends with colors in the background
  layer. For details see the discussion on the
  \e{\l{best-practices-blend-mode.html}{Blend Mode}} page.
\list
\li
  \c{Normal} - Default blend mode. Opaque objects will occlude objects in layers behind.
\li
  \c{Screen} - Colors are blended using an inverted multiply, producing a lighter result.
\li
  \c{Multiply} - Colors are blended using a multiply, producing a darker result.
\li
  \c{Add} - Colors are blended by addition, producing a lighter result.
\li
  \c{Subtract} - Colors are blended by subtraction, producing a darker result.
\li
  \c{Overlay} - A mix of \c Multiply and \c Screen modes, producing a result with higher contrast.
\li
  \c{Colorburn} - Colors are blended by inverted division where the result also is inverted,
  producing a darker result. Darker than \c Multiply.
\li
  \c{Colordodge} - Colors are blended by inverted division, producing a lighter result. Lighter
  than \c Screen.
\endlist
\li
  \b{Sub-Presentation} - Select a presentation (\.uip) or QML (\c.qml) file to render as a
  sub-presentation on this layer. Other objects on the layer will not render when a sub-presentation
  is applied. For more information, see
  \e{\l{Using Sub-Presentations}}.
\li
  \b{Progressive AA} - Controls whether progressive anti-aliasing
  is used when rendering the layer. For details see the discussion on
  \e{\l{best-practices-antialiasing.html#progressive-aa}{Progressive Anti-Aliasing}}.
\li
  \b{Multisample AA} - Controls whether multisample anti-aliasing
  is used when rendering the layer. For details see the discussion on
  \e{\l{best-practices-antialiasing.html#multisample-aa}{Multisample Anti-Aliasing}}.
\li
  \b{Temporal AA} - Controls whether temporal anti-aliasing is used
  when rendering the layer. For details see the discussion on
  \e{\l{best-practices-antialiasing.html#temporal-aa}{Temporal Anti-Aliasing}}.
\li
  \b{Horizontal Fields} - Choose which two fields of \c{Left},
  \c{Width}, and \c{Right} are used to control the horizontal
  placement and sizing of the layer within the presentation.
\li
  \b{Left} - The distance between the left edges of the
  presentation and the layer, either in pixels or as a percentage of the
  presentation's width.
\li
  \b{Width} - The width of the layer, either in pixels or as a
  percentage of the presentation's width.
\li
  \b{Right} - The distance between the right edges of the
  presentation and the layer, either in pixels or as a percentage of the
  presentation's width.
\li
  \b{Vertical Fields} - Choose which two fields of \c{Top},
  \c{Height}, and \c{Bottom} are used to control the vertical
  placement and sizing of the layer within the presentation.
\li
  \b{Top} - The distance between the top edges of the presentation
  and the layer, either in pixels or as a percentage of the
  presentation's height.
\li
  \b{Height} - The height of the layer, either in pixels or as a
  percentage of the presentation's height.
\li
  \b{Bottom} - The distance between the bottom edges of the
  presentation and the layer, either in pixels or as a percentage of the
  presentation's height.
\li
  \b{Ambient Occlusion} - Controls the strength of ambient
  occlusion (AO). AO is a form of approximated global illumination which
  causes non-directional self-shadowing where objects are close
  together. A value of \c{100} causes full darkness shadows; lower
  values cause the shadowing to appear lighter. A value of \c{0}
  disables ambient occlusion entirely, improving performance at a cost
  to the visual realism of 3D objects rendered in the layer. All values
  other than \c{0} have the same impact to the performance.
\li
  \b{AO Distance} - Roughly how far (in world units) ambient
  occlusion shadows spread away from objects. The following graphic
  illustrates a variety of distances, starting with 0 (no AO) at left.
  Greater distances cause increasing impact to performance.
\raw HTML
<a href=images/Runtime-AODistances.jpg>
\endraw
\image Runtime-AODistances.jpg
\raw HTML
</a>
\endraw
\li
  \b{AO Softness} - How smooth the edges of the AO shading are. The
  following graphic illustrates a variety of softness values, going from
  \c{0} at left to \c{100} at right.
  \raw HTML
<a href=images/Runtime-AOSoftnesses.jpg>
\endraw
\image Runtime-AOSoftnesses.jpg
\raw HTML
</a>
\endraw
\li
  \b{AO Threshold} - A cutoff distance preventing objects from
  exhibiting AO at close distances. Higher values increase the distance
  required between objects before AO is seen.
  \list
  \li
    \note If you see AO shadowing on objects where there should be
    no shadowing, increase the AO Threshold value slightly to clip away
    close results.
  \li
    \note On objects with smooth shading, it is possible that AO makes the faces of an object appear
    since AO occurs on the original mesh without smooth shading applied. To avoid this,
    adjusting the AO Threshold value might help. Usually a value between 0.1 and 1.0 will give
    a good result.
    \raw HTML
    <a href=images/ao-threshold.png>
    \endraw
    \image ao-threshold.png
    \raw HTML
    </a>
    \endraw
  \endlist
\li
  \b{AO Sampling Rate} - Larger values result in better AO quality
  (more shades of gray) at the expense of performance.
\li
  \b{AO Detail} - Scatters the edges of the AO shadow bands to
  improve smoothness (at the risk of sometimes producing obvious
  patterned artifacts).
  \list
  \li
    \note Very large distances between the clipping planes of your
    camera may cause problems with AO. If you are seeing odd banding in
    your AO, try adjusting the Far Clip Plane of your camera to be closer
    to your content.
  \endlist
\li
  \b{Light Probe} - Select an image (preferably a high dynamic
  range image (\c{.hdr})) to use to light the scene, either instead of or
  in addition to standard lights. If selected, note that this image will
  be used as the environment for any custom \c{.shader}, instead
  of the environment often associated with them. For details see \l{Using Image-based Lighting}.
\li
  \b{IBL Brightness} - The amount of light emitted by the light probe.
\li
  \b{IBL Horizon Cutoff} - Increasing the value will add darkness (black)
  to the bottom half of the environment, forcing the lighting to come
  predominantly from the top of the image (and removing specific
  reflections from the lower half).
\li
  \b{IBL FOV Angle} - The image source field of view.
\li
  \b{Secondary Light Probe} - Select an image to use as secondary IBL light source.
\li
  \b{Probe Crossfade} - The blend amount between the primary and secondary light probes.
\li
  \b{Disable Depth Test} - Controls whether depth-testing is used
  when rendering objects in the layer. For details see the discussion on
  the
  \e{\l{best-practices-disable-depth-test.html}{Disable Depth Test}} page.
\li
  \b{Disable Depth Prepass} - Controls whether depth prepassing is used when rendering objects
  in the layer. Can be enabled to optimize render speed on layers with low depth complexity.
\endlist

\target transform-properties
\section1 Transform Properties

Selecting an element in the Timeline palette that has a 3D presence
shows the following properties in the Inspector palette:

\list
\li
  \b{Position} - The local position of the element in the space
  established by the parent element. Note that Qt 3D Studio uses
  a Y-up \"left-handed\" coordinate system. Increasing values of X go to
  the right (as seen from the default camera location), increasing
  values of Y go up, and increasing values of Z go away from the camera.
\li
  \b{Rotation} - The local rotation of the element in the space
  established by the parent element. Each value is the left-handed
  rotation about the axis in question, with the direction of the axes as
  described above. Rotations are applied in the order ZXY.
\li
  \b{Scale} - The local scale of the element in the space
  established by the parent element. Note that an odd-number of negative
  scale values will cause your element to render 'inside-out', which
  cannot be seen due to backface-culling.
\li
  \b{Pivot} - The local pivot offset for the object. You can think
  of the pivot as offsetting the geometry for the element away from the
  origin, allowing an object to rotate and scale around a point other
  than its local origin. Pivots are applied before scaling and rotation.
\li
  \b{Opacity} - Although not technically a transformation, every
  transformable element has an opacity applied to it. An opacity of 100
  causes the object to be fully opaque, while an opacity of 0 prevents
  an object from rendering at all.
\endlist

Just as modifying the position or rotation of a parent element affects
all descendant elements, opacity is multiplicatively cumulative through
the transform hierarchy. A cube that is 50\% opaque inside a group that
is 80\% opaque will render with an equivalent apperance of 40\% opacity
(\c{0.8 * 0.5 = 0.4}). Setting the opacity of a group to 0 will
prevent any descendants within the group from rendering.

For models, having an equivalent opacity of 0 also prevents any touch
events from being processed for the element. If you can't see the cube,
you can't click on it. Note, however, that you may alternatively adjust
the \l{material-properties}{opacity of a material} to 0. In this
case you cannot see the model but you \b{can} click on it.

\section1 Camera Properties

A camera selected in the Timeline palette shows the following properties
in the Inspector palette (in addition to the
\l{transform-properties}{transform properties} described above):

\list
\li
  \b{Orthographic} - When enabled, the layer for this camera
  renders all contents with no perspective. Additionally the default
  scale of the camera ensures that each world unit renders at exactly
  one pixel in the final presentation.
\endlist

Orthographic layers (layers with a camera set to be orthographic) are
ideal for layering 2D UI elements. Not only are your images guaranteed
to be the right size on the screen, you can use the Z position of
objects to bring them closer to/farther from the camera (z-sorting) with
no foreshortening artifacts.

\list
\li
  \target field of view
  \b{Field of View} - By default, vertical field of view is used. This value is the
  number of degrees between the top and bottom edges of the camera frustum.
  The larger the value, the stronger the sense of 3D in your scene. The horizontal
  field of view is automatically calculated based on the aspect ratio of the
  presentation as authored in Studio.
  \note Field of view is ignored when using Orthographic cameras.
\li
  \b{FOV Horizontal} - When enabled, the \l{field of view} value will be the number of
  degrees between the left and right edges of the camera frustum. The vertical field of
  view is then automatically calculated based on the aspect ratio of the presentation
  as authored in Studio. This property can be used when you want to translate field of view values
  from software that are using horizontal fov; Maya and Blender in most cases for example.
\li
  \b{Clipping Start/End} - Content closer to the camera than the
  clipping start or farther than the clipping end will not be rendered.
  This occurs at the pixel level, not the element level: a model that
  crosses the clipping plane may be only partially rendered.
\endlist

\e{The default values are intended to cause anything within the view
of the camera to be rendered. Aside from special clipping effects, you
may need to adjust these values to more closely contain your content for
better results with Ambient Occlusion, or with a layer effect that uses
the depth buffer of the camera, such as the
\l{Depth of Field}{Depth of Field effect}.}

\list
\li
  \b{Scale Mode} - When the final size of the layer is different
  than the presentation size (due to the
  \l{file-formats-uia.html#application}{application scale mode} and/or
  the \l{layer-properties}{layer size}), this
  setting controls how the camera adjusts to fill the space:
\list
\li
  \c{Fit} - render the content seen by the camera (based on the
  aspect ratio of the presentation) larger or smaller to fit within the
  layer. When the aspect ratio of the layer is different than the
  presentation additional content will be shown \e{either}
  above/below or left/right; the content seen by the camera will never
  be cropped.
\li
  \c{Same Size} - render the content seen by the camera at the same
  size (same number of pixels) as seen when the layer size is the same
  as the presentation sized authored in Studio. Layers smaller than the
  original presentation size will cause content to be cropped, while
  larger layers will cause additional content (beyond the original
  bounds of the camera) to be shown.
\endlist
\li
  \b{Scale Anchor} - When changes to the layer size cause the
  camera to render more or less content this property controls which
  part of the content stays in the same spot relative to the layer. A
  value of \c{Center} causes the center of the camera to always
  remain in the center of the layer, a value of \c{NW} causes the
  upper left corner of the content seen in Studio to always be at the
  upper left corner of the layer, a value of \c{N} causes the top
  middle of the content seen in Studio to always be at the top middle
  edge of the layer, and so forth.
\endlist

\section1 Light Properties

A light selected in the Timeline palette shows the following properties
in the Inspector palette (in addition to the
\l{transform-properties}{transform properties} described above):

\list
\li
  \b{Scope} - Select an element to have this light affect only that
  element and its descendants.
\li
  \b{Light Type}\target light-properties\_light-type
 - Choose whether the light is a directional or point light:
\list
\li
  \c{Directional} - Lighting is applied uniformly in the direction
  of the Z axis for this light. The rotation of directional lights
  affects the result, but not the position or scale.
\li
  \c{Point} - Lighting is applied outwards from the center of the
  light, becoming increasingly dim away from the center. (See the
  \e{Brightness} and \e{Linear}/\e{Exponential Fade} properties
  below.) The position of point lights affects the result, but not the
  rotation or scale.
\li
  \c{Area} - Lighting emits from the +Z face of a rectangular
  light. Use the X/Y scale transforms to control the size of the area
  light.
  \list
  \li
    \e{Tip: turn on Bounding Boxes (Ctrl-B) to see the size of the
    area light when selected.}
  \endlist
\endlist
\li
  \b{Light Color} - The diffuse color (and intensity) applied to
  models illuminated by this light.
\li
  \b{Specular Color} - The specular color (and intensity) applied
  to models illuminated by this light. Note that a model's material must
  have a non-zero \e{Specular Amount} for any specular lighting to
  take effect.
\li
  \b{Ambient Color} - The diffuse color (and intensity) applied to
  materials before being lit by this light.
\li
  \b{Brightness} - An overall multiplier for the
  light's effects.
\li
  \b{Linear Fade} (point light only) - Turn up this value to
  increase the rate at which the lighting effect dims the farther
  surfaces are from the light.
\li
  \b{Exponential Fade} (point light only) - Turn up this value to
  increase the rate at which the lighting effect dims on surfaces that
  are extra far away from the light.
\li
  \b{Cast Shadows?}\target light-properties\_cast-shadows
 - Simulate
  shadows using this light?
\li
  \b{Shadow Darkness} - Darkness of the shadows.
\li
  \b{Shadow Softness} - Amount of blur applied to the shadows.
\li
  \b{Shadow Resolution} - Size of the shadow map created for the
  shadows (affects performance and memory usage).
\li
  \b{Shadow Depth Bias} - Tweak this value by small amounts if you
  see objects casting shadows on themselves.
\li
  \b{Shadow Far Clip} - Maximum distance for the shadow map;
  smaller values may improve the precision and effects of the map.
\endlist

\b Notes:

\list
\li
  Each additional light will reduce rendering performance of your
  presentation. Use them sparingly. Employ a
  \l{layer-properties}{light probe} on the layer for image-based
  lighting that can produce soft and subtle lighting.
\li
  The \e{Lighting} property for materials (see below) affects the
  quality/performance of lighting on a per-material basis.
\li
  When using only a light probe, or when using an interface layer where
  the materials are all set to use \c{None} for the lighting, it is
  valid and beneficial to delete all lights from a layer.
\li
  Cast shadows work best with area or point lights.
\endlist

\target model-properties
\section1 Model Properties

A model selected in the Timeline palette shows the following properties
in the Inspector palette (in addition to the
\l{transform-properties}{transform properties} described above):

\list
\li
  \b{Mesh} - A \"model\" is just a notional placeholder for
  displaying geometry, and you may change which geometry is displayed
  (when authoring in Studio, or during Runtime) by picking a new mesh
  for the geometry. Clicking the drop-down for this property will open a
  floating mesh picker. Hover a mesh to see how it appears in the scene
  for this model, and click on a mesh to pick it as the new mesh.
\omit
\li
  \b{Tesselation Mode} - Dynamically generate additional geometry
  for the model. Tessellation is useful if you are using a
  \l{material-properties_displacement-map}{displacement map} with
  your geometry, or if you wish to generate a smoother silhouette (Phong
  and NPatch tessellation modes only) when zooming in.
\li
  \e{Tip: turn on tessellation wireframe mode (View menu or toolbar)
  to display the tessellation result.}
\endomit
\endlist

\target material-properties
\section1 Material Properties

Editing a material shows the different properties in the Inspector palette. For more information
about working with materials, see \l {Materials and Shaders}.

\list
\li
  \b{Material Type} - Controls the type of material to be used. The
  values are Basic Material, Animatable Material and Referenced Material.
\li
  \e{Tip: Material Type is a special type of property that cannot be
  unlinked or changed at runtime. If you want to change the type of
  material used for a model, set the material type to \"Referenced
  Material\" and then unlink the
  \l{referenced-materials}{Referenced Material property} to
  reference different materials during runtime.}
\endlist

\target standard-materials
\section2 Basic Materials

\list
\li
  \b{Name} - Name of the material.
\li
  \b{IBL override} - IBL probe to use in place of the layer probe.
\endlist
\list
\li
  \b{Shader} - Choose a customer shader (\c{.shader}) file to use for the material.
\li
  \b{Lighting} - Choose the type of lighting calculations used for
  this material:
\list
\li
  \c{Pixel} - Diffuse and specular lighting is calculated for each
  rendered pixel. This produces better results than Vertex lighting, but
  is slightly more expensive to compute. Certain effects (such as a
  Fresnel or bump map) require Pixel lighting to work.
\li
  \c{None} - No lighting is calculated. This mode is (predictably)
  very fast, and is quite effective when image maps are used that you do
  not need to be shaded by lighting.
\endlist
\li
  \b{Blending Mode} - Choose how the colors of this object blend
  with those behind it. For details see the discussion on the
  \e{\l{best-practices-blend-mode.html}{Blend Mode}} page.
\list
\li
  \c{Normal} - Default blend mode. Opaque objects occlude objects behind them.
\li
  \c{Screen} - Colors are blended using an
  inverted multiply, producing a lighter result. This blend mode is
  order-independent; if you are using semi-opaque objects and
  experiencing 'popping' as faces or models sort differently, using
  Screen blending is one way to produce results without popping.
\li
  \c{Multiply} - Colors are blended using a multiply, producing a darker result.
  This blend mode is also order-independent.
\li
  \c{Overlay} - A mix of \c Multiply and \c Screen modes, producing a result with higher contrast.
\li
  \c{Colorburn} - Colors are blended by inverted division where the result also is inverted,
  producing a darker result. Darker than \c Multiply.
\li
  \c{Colordodge} - Colors are blended by inverted division, producing a lighter result.
  Lighter than \c Screen.
\endlist
\li
  \b{Enable Vertex Colors} - Use vertex colors from the mesh. These will be multiplied by any other
  colors specified for the material.
\li
  \b{Diffuse Color} - The base color for the material. Set to black
  to create a purely-specular material (e.g. metals or mirrors).
\li
  \b{Diffuse Map/2/3} - Image maps to apply to the material as a
  texture. Click to pick an image from the project directory. Using an
  image format with transparency (e.g. PNG or DDS with DXT5) will also
  apply the alpha channel as an opacity map.
\li
  \b{Specular Reflection} - An image map used for specular
  highlights on the material. By default the map is applied using
  environmental mapping (not UV mapping): as you rotate the model the
  map will appear as though it is reflecting from the environment.
  Specular Reflection maps are an easy way to add a high-quality look
  with relatively low cost.
\list
\li
  \e{Tip: Using a Light Probe on your Layer for image-based lighting
  will automatically use that image as the specular reflection.}
\li
  \e{Tip: Studio comes installed with a variety of helpful specular
  maps for your use. Click the maps button at the bottom of the Project
  palette to open the library, open the Specular Reflection folder, and
  drag maps into the Project palette to copy them to your project.}
\li
  \e{Tip: Crisp images cause your material to look very glossy; the
  more you blur your image the softer your material will appear.}
\endlist
\li
  \b{Specular Tint} - A color used to adjust the specular
  reflections. Use white for no effect
\li
  \b{Specular Amount} - Controls the strength of specularity
  (highlights and reflections). Note that this property does not affect
  the Specular Reflection map, but does affect the amount of reflections
  from a layer's \l{layer-properties}{Light Probe}.
\list
\li
  \e{Tip: Unless your mesh is high resolution, you may need to use
  Pixel lighting (see above) to get good specular highlights from scene
  lights.}
\endlist
\li
  \b{Specular Map} - An RGB image map to modulate the amount and the color
  of specularity across the surface of the material. These values are
  multiplied by the Specular Amount.
\li
  \b{Specular Model} - Equation to use when calculating specular highlights for CG lights.
\li
  \b{Specular Roughness} - Controls the size of the specular
  highlight generated from lights, and the clarity of reflections in
  general. Larger values increase the roughness, softening specular
  highlights and blurring reflections.
\li
  \b{Roughness Map} - An image to control the specular roughness of the material.
\li
  \b{Fresnel Power} - Decreases head-on reflections (looking
  directly at the surface) while maintaining reflections seen at grazing
  angles.
\li
  \b{Index of Refraction} - Controls what angles of reflections are
  affected by the Fresnel Power.
\li
  \b{Bump Map} - A grayscale image map to \e{simulate} fine
  geometry displacement across the surface of the material. Brighter
  pixels indicate raised regions. The amount of the effect is controlled
  by the Bump Amount property.
\list
\li
  \note Bump maps will not affect the silhouette of a model. Use a
  displacement map if this is required.
\endlist
\li
  \b{Normal Map} - An RGB image used to \e{simulate} fine
  geometry displacement across the surface of the material. The RGB
  channels indicate XYZ normal deviations. The amount of the effect is
  controlled by the Bump Amount property.
\list
\li
  \note Normal maps will not affect the silhouette of a model. Use
  a displacement map if this is required.
\endlist
\li
  \b{Bump Amount} - Controls the amount of simulated displacement
  for a Bump Map or a Normal Map.
\li
  \b{Displacement Map}\target material-properties\_displacement-map

  - A grayscale image used to offset the vertices of geometry across the
  surface of the material. Brighter pixels indicate raised regions.
\list
\li
  \note Displacement maps require vertices to offset. I.e. the result will be
  more accurate on a high poly model than on a low poly model.
\li
  \note Displacement maps do not affect the normals of your
  geometry. To look correct with lighting or reflections you will likely
  want to also add a matching bump map or normal map to your material.
\endlist
\li
  \b{Displacement Amount} - Controls the offset amount for the displacement map.
\li
  \b{Opacity} - Drop the opacity of just this material, separate
  from the model.
\list
\li
  \note Setting the opacity of a \e{model} very low (below 1\% or
  less) will prevent it from receiving touch events, but setting the
  opacity of its \e{material} very low still allows touch events to
  occur.
\endlist
\li
  \b{Opacity Map} - An image map used to control the opacity
  differently for different parts of the material. Note that you must
  use an image format with transparency (e.g. a 32-bit PNG, or a DDS
  with an alpha portion) for the opacity to be applied. You cannot use a
  grayscale PNG file, for example, to control the opacity.
\li
  \b{Emissive Color} - Color of self-illumination for this material.
\li
  \b{Emissive Power} - The amount of self-illumination from the
  material. In a scene with black ambient lighting a material with 0
  emissive power will appear black wherever the light does not shine on
  it; turning the emissive power to 100 will cause the material to
  appear as its diffuse color instead.
\list
\li
  \e{Tip: When you want a material to not be affected by lighting,
  instead of using 100\% emissive power consider setting the lighting
  mode to} \c{None} \e{for a performance benefit.}
\endlist
\li
  \b{Emissive Map/2} - An image map used to set the emissive power
  for different parts of the material. Using a grayscale image will not
  affect the color of the result, while using a color image will produce
  glowing regions with the color affected by the emissive map.
\li
  \b{Translucency Map} - Grayscale image controlling how much light can pass through the material
  from behind.
\li
  \b{Translucent Falloff} - The amount of falloff for the translucency based on the angle of the
  normals of the object to the light source.
\li
  \b{Diffuse Light Wrap} - The amount of light wrap for the translucency map. A value of 0 will not
  wrap the light at all while a value of 1 will wrap the light all around the object.
\endlist
\note The Runtime custom-compiles shaders for each unique
combination of material properties used. Each additional material
feature that you use results in a (slight) additional performance hit.

\target animated-materials
\section2 Animated Materials

Animatable materials are used when you want to animate properties of a material. The properties in
the inspector palette are the same as for a basic material.

\target referenced-materials
\section2 Referenced Materials

A \"referenced material\" uses the material properties on another
material. These are used when you want to re-use an animatable material on another
object. Changing material properties on one object will affect all object using the material
The Inspector palette shows only a single property:

\list
\li
  \b{Referenced Material} - a picker for selecting an animatable material
  within the presentation.
  \list
    \li
      \note The material you reference does \b{not} have to be
      visible or even active for this to work. It is valid to have a small
      pile of models with custom materials on them all eyeballed off, and
      then reference those materials for rendering on other objects.}
  \endlist
\endlist
\section1 Image Properties

When image maps (e.g. Diffuse, Specular, Opacity, etc.) are applied to an animated material,
a new element appears in the scene graph as a child of the material. This element represents
the properties that control that image, allowing them to be animated over time. Selecting one of
these images shows the image properties in the Inspector palette.

For basic and referenced materials, you need to first select the material in the scene graph. Then,
right-click the map property name in the inspector and select \uicontrol {Open in inspector} from
the context menu. Now the properties of the image map will show in the inspector palette.

\image material-open-in-inspector.png

\list
\li
  \b{U/V Repeat} - Controls how many copies of the image are
  displayed across the UV coordinates of the material. With UV Tiling
  set to \"No Repeat\" this will cause the image to only show once on a
  smaller portion of the material.
\li
  \b{Texture Mapping} - Choose how the image is applied to the
  material:
\list
\li
  \c{UV Mapping} - The default for diffuse and opacity maps, this
  causes the image to be stuck to the mesh. The same portion of the
  image will always appear on the same vertex (unless the UV properties
  are animated).
\li
  \c{Environmental Mapping} - The default for specular reflection,
  this causes the image to be 'projected' onto the material as though it
  is being reflected. Using Environmental Mapping for diffuse maps
  provides a mirror effect.
\endlist
\li
  \b{U/V Tiling} - Controls how the image map is applied across the
  material when the U/V repeat values are greater than 1.
\li
  \b{UV Rotation} - Rotates the image map around the pivot point.
\li
  \b{U/V Position} - Slides the image map across the UV
  coordinates.
\li
  \b{U/V Pivot} - Sets the pivot location in UV space.
\li
  \b{Sub-Presentation} - If you specify a value here, it is
  intepreted to be the \c{id} attribute of another presentation in
\omit
  TODO: Not really usable yet.
  \l{file-formats-uia.html}{the \c{.uia} application file}.
\endomit
  the \c{.uia} application file.
  Instead of displaying the contents of this image on
  the material, the specified presentation will be rendered and the
  resulting image will be used instead. For more information, see the
  discussion on the
  \e{\l{best-practices-using-sub-presentations.html}{Using Sub-Presentations}} page.
\endlist

\section1 Text Properties

A text element selected in the Timeline palette shows the following
properties in the Inspector palette (in addition to the
\l{transform-properties}{transform properties} described above):

\list
\li
  \b{Text String} - The text to display for the text element.
\list
\li
  \note Qt 3D Studio does not (currently) support styled
  text. There is no way to make one word in a paragraph bold, larger, or
  a different color.}
\endlist
\li
  \b{Text Color} - The color for the text.
\li
  \b{Font} - Click to open a font browser. This will only look for
  font files \e{inside the \c{fonts} directory} for your
  project.
\omit
TODO: Only one font for now. More to be added?
\list
\li
  \e{Tip: Studio comes with a small library of fonts licensed under
  the Open Font License. Click the second button at the bottom of the
  Project palette to open the Font Library, find one or more font files
  that you like and drag them into the \c{fonts} folder of your
  Project palette to copy the font(s) to your project.}
\endlist
\endomit
\li
  \b{Font Size} - Changes the size of the font. In addition to
  clicking the drop-down to pick from predefined font sizes, you can
  also type a new value for the font.
\list
\li
  \note Although the font size is just a number, it is
  intentionally not animatable. Each time the font size changes a rather
  expensive rasterization of the text string occurs. You should animate
  the scale of the text element instead.}
\endlist
\li
  \b{Horizontal/Vertical Alignment} - Controls the placement of the
  text with respect to the text element's origin. Note that this is for
  the entire text box, and as such may include padding reserved for
  characters not present in your text string. \e{(For example, using
  the Text String \"Text\" with Vertical Alignment of \b{Bottom}
  will cause the baseline of the letters to appear above the origin for
  the element. Adding characters with descenders, such as \"y\",
  illustrates why this occurs.)}
\li
  \b{Leading} - Controls the amount of extra (or negative) vertical
  spacing between lines of text.
\li
  \b{Tracking} - Controls the amount of extra (or negative)
  horizontal spacing between every character pair.
\li
  \b{Text Area} - Define size of fixed text area. If no values are set, the text size will
  grow with the text.
\li
  \b{Word Wrapping} - Define how text will be wrapped when using a fixed text area size.
  \list
    \li
      \c Clip - Cut the text if it doesn't fit in the text area.
    \li
      \c WrapWord - Wraps between words, if possible.
    \li
      \c WrapAnywhere - Wraps anywhere, also in the middle of words.
  \endlist
\li
  \b{Eliding} - Elide text that does not fit into a fixed size text area.
  \list
    \li
      \note Text eliding does not work with distance field rendering disabled or when
      drop shadows are used.
  \endlist
\li
  \b{Drop-Shadow} - Add a drop shadow to the text. The drop shadow will be a darker shade of the
  text color.
\li
  \b{Shadow Darkness} - Darkness of the drop shadow. 100 is black and 0 is the same color as the
  text.
\li
  \b{Horizonal Offset} - Horizontal offset of the shadow. The offset is relative to the font size.
\li
  \b{Vertical Offset} - Vertical offset of the shadow. The offset is relative to the font size.
\endlist


\section1 Guide Properties

A guide selected in the scene view shows the following properties in the inspector palette:

\list
\li
  \b Position - Position of the guide, in pixels. (0,0) is the lower left corner of the
  scene view.
\li
  \b Orientation - Orientation of the guide.
\li
  \b Width - Width of the guide, in pixels.
\endlist

\omit
\section1 Path Properties

A \l{best-practices-paths.html}{path} selected in the
Timeline palette shows the following properties in the Inspector palette
(in addition to the \l{transform-properties}{transform properties}
described above):

\list
\li
  \b{Path} - the \c{.path} file on disk to reference for this
  path, or \c{[None]} if this path has been
  \l{best-practices-paths.html#internalized-paths}{internalized}.
\li
  \b{Stroke Width} - the size of the stroke in local units.
\li
  \b{Path Type}
\list
\li
  \c{Painted} - the path is filled and/or stroked with perfect
  precision and UV coordinates relative to the bounding box.
\li
  \c{Geometry} the path is stroked with geometry with customizable
  tessellation. UV coordinates are relative to the path, i.e. along and
  across the length.
\endlist
\endlist

\section2 For Painted Paths

\list
\li
  \b{Paint Style}
\list
\li
  \c{Filled and Stroked} - the path has independent materials for
  the fill and stroke.
\li
  \c{Filled} - the path has only one material, for the fill.
\li
  \c{Stroked} - the path has only one material, for the stroke.
\endlist
\endlist

\section2 For Geometry Paths

\list
\li
  \b{CPU Limit} - amount of tessellation work done on the CPU
  before GPU tessellation is involved; lower numbers use more CPU
  values. Edge and Width Detail are applied after the CPU is done.
\list
\li
  \e{Tip: for best performance you usually want to leave this at a
  high value, leaning mostly on the GPU for tessellation.}
\endlist
\li
  \b{Edge Detail} - amount of GPU tessellation detail used to
  improve the appearance of the stroke.
\list
\li
  \e{Tip: Turn on Wireframe
  view (from the View menu or the toolbar) to see the underlying
  geometry being created for the stroke.}
\endlist
\li
  \b{Width Detail} - amount of GPU tessellation detail used to
  create geometry across the width of the stroke. Unless you are using a
  material with a displacement map for the stroke, you likely should
  leave this set at the lowest setting to improve performance.
\list
\li
  \e{Tip: Turn on Wireframe view (from the View menu or the toolbar)
  to see the underlying geometry being created for the stroke.}
\endlist
\li
  \b{Begin/End Cap Style} - set this to \"Taper\" to finely taper
  the end of your stroke over a specified distance. Additional
  properties will appear allowing you to control the length of the
  taper, and the size and opacity at the end of the taper.
\endlist

\section1 SubPath Properties

When you have
\l{best-practices-paths.html#internalized-paths}{internalized}
a path you will see a SubPath child element in the Timeline for each set
of path commands in the path. Selecting this element shows a single
property allowing you to modify whether the SubPath is \"closed\" or
not:

\list
\li
  \b{Closed Path?} - should the stroke for the path be 'closed',
  drawing a straight line from the last anchor point to the first?
\li
  \e{SubPaths in SVG are always 'closed' with respect to the fill.
  This property only affects the stroke.}
\endlist

\section1 Anchor Point Properties

When you have
\l{best-practices-paths.html#internalized-paths}{internalized}
a path each SubPath element in the Timeline will have child Anchor Point
elements for each point along the path. Selecting these elements shows
the following properties in the Inspector palette:

\list
\li
  \b{Position} - the 2D location of the point with respect to the
  origin of the path. \e{(Though the entire path lives in 3D space
  within the presentation, the points are all constrained to the same 2D
  plane, which you may choose to position or rotate in 3D space.)}
\li
  \b{Handle Angle} - every anchor is treated as a cubic Bézier with
  a locked (smooth) tangent. This property controls the angle of that
  tangent measured counter-clockwise from horizontal going right to
  left.
\li
  \b{Incoming/Outgoing Distance} - the distance of the control
  point from the anchor. The \"Incoming\" value is meaningless for the
  first anchor point, as is the \"Outgoing\" value for the last anchor
  point.
\endlist
\endomit
*/