Working with 3D Content
- Use Triangles - Qt 3D Studio only supports geometry exported as triangles. When exporting you must ensure that this option is selected. Many of the exporters provide an option for this at export time, and Studio will tell you what went wrong if you forget to export with this option.
- Time-based Animations - By default in Max or Maya, when you are creating keyframes you are associating them with certain frame numbers. This is great in the film industry where frame rates are constant, but this technique necessarily has problems in applications where the frame rate may or may not be rock solid. Our solution to this problem is to express the locations of keyframes in time values instead of frame numbers. That way, if you say "this logo animation will play for 3 seconds" we can guarantee that it will play for 3 seconds. If you express it in frames, "this logo animation will play for 180 frames" it may play for 3 seconds if you're getting 60 fps, but if you drop to 30 fps the animation is going to go much slower.
Luckily, accounting for this is relatively simple. Max and Maya both default to a setting of 24 frames per second, so your keyframes will be translated at that ratio. If you want a keyframe at one second, put it on frame 24. Two seconds? Frame 48, etc. Both Max and Maya offer configurable frame rates, and the frame rate setting should be respected upon import, if changed. It's also worthwhile to note that Maya, by default, starts at frame 1. If you have a keyframe at frame one, the time for that keyframe will be 1/24 or 0.041 seconds. It may be a good idea to go into your Maya animation settings and start your animations at frame 0, or 0/24 = 0 seconds.
- Different Animation Systems - DCC packages offer highly complex and specialized animation systems. We recommend using Studio's animation capabilities whenever practical. This helps keep mesh information on import clean and reduces conflicts between imported mesh animation and Studio's animation upon refreshing.
The animation system in Studio is a full implementation of bezier keys, and the full complement of bezier animation that you can create with Max or Maya and export with COLLADA will be represented in Studio. The more extreme differences between the various animation systems are mitigated by the limitations imposed by the COLLADA and FBX formats, but there could be some animations that you would be able to create in Max or Maya that would not be represented correctly in Studio. If you believe you've found such an animation, and you'd like to use it in your UI, please bring it up with us. We love finding edge cases we haven't covered yet, and look forward to improving our animation support to meet your needs.
- Handling Pivot Points - DCC packages all handle pivot points differently. In Qt 3D Studio there is only one pivot per object and it is used as the origin for position, scale, and rotation operations. In your DCC package, feel free to adjust the position of a 3D model's pivot as needed. However, extreme edits to pivots in Modo, Max, or Maya can cause problems upon import into Studio, especially if animated. This difference is often manifested as a difference in the position or orientation of an object. As an artist you can prevent these kinds of problems by only making simple edits to your pivot points. Keep your pivot points to the default (world) alignment, don't scale them, and make sure that if you have multiple pivots (Maya) that they are all at the same location in space.
Studio can import 3D geometry and animations exported using FBX. Please use the following settings when exporting:
- Uncheck all options, except check the following:
- Split per-vertex Normals
- Tangents and Binormals
- Referenced Assets Content
- Uncheck all options, except check the following:
- Animation - enable or disable as desired; bake or unbake animations as desired
- Cameras and Lights - these objects will only come into Studio as empty nodes (groups). This can be useful if you need to animate these objects and use those animations in Studio (by attaching Studio cameras and lights to the animated groups).
- Axis Conversion - Qt 3D Studio uses a Y-up coordinate system, so ensure that
Up Axisis set to
- FBX File Format
- Type - Studio supports either ASCII or Binary FBX files. ASCII files are preferred for any bug reports.
- Version - Studio supports FBX versions from 2013 up to 2016.1.2. We recommend 2016.1.2.
Each 3D modeling application uses a specific COLLADA exporter that produces a format recognized by Studio. Autodesk's 3D Studio Max 2011 and Maya 2011 use OpenCOLLADA which can be found by visiting www.opencollada.org/download.html
Download the correct version of OpenCOLLADA for 3D Studio Max and Maya. Maya and 3D Studio Max need to be installed prior to installing the correct OpenCOLLADA version. In addition, be sure that no 3D programs are open during the installation of OpenCOLLADA.
The following section describes the features supported by COLLADA import into Studio. Where appropriate, caveats, limitations, and differences between different DCC applications are discussed.
Generally speaking, the geometry import capabilities are very solid. We've stress tested different high poly count scenarios. The one caveat here is mentioned above, Studio only supports triangulated geometry, so be sure to check that option when exporting COLLADA data for use in Studio.
As you would expect with COLLADA you can import full 3D transform information including position, rotation, scale, and pivot. Studio can import left and right handed coordinate systems, Y-up or Z-up and rotations applied in any order. The principal limitation in this area is pivot points. As discussed above, only simple edits to pivot points are supported.
Most DCC tools allow artists to freeze transformations and we highly recommend performing this operation before importing mesh data into Studio. This operation ensures that the mesh coming into Studio has clean transformation data and no arbitrary transformation values which can be confusing or an impediment to your work.
Please note: After freezing transforms, you may have to reposition the pivot point in some DCC tools.
The plug-in supports translating hierarchical information from COLLADA into Scene Graph information inside of Studio. Hierarchies of arbitrary depth are supported, including grouped nodes. Hierarchical transforms are applied as expected.
The plug-in supports translating material settings from the DCC application into material settings inside of Studio. Specific mappings have been made to ensure consistent control of the look inside of NVIDIA from within the DCC application. Material settings for diffuse, specular, ambient, and opacity are all imported correctly.
Images applied to different material IDs will be imported with the COLLADA file and applied inside of Studio. Note that the COLLADA files reference the images on disk. (Rather than include them in the COLLADA file.) This means that a path to the image is stored in the COLLADA file, Studio uses this path to import the image. Studio can import transformed UV sets (e.g.~Tiling, Rotation) as well as multi-textured setups.
We recommend using .png and .dds image formats. These formats support alpha channels and allow for lossless editing. With .dds, you can set the compression to DXT5 with alpha blending if your image has transparency.
As is the case with most real-time graphics, texture maps run optimally when their pixel dimensions are set to powers of two. An example of powers of two texture maps include 32X32, 64X64, 128X128, 512X512, 1024X1024, 2048X2048 and tall or wide images that could be 512X64 or 128X1024. Dimensions do not have to be square but they should be powers of two.
Materials are found parented to a mesh object in the timeline. The image below describes the hierarchy of meshes, materials and texture maps:
- A: Mesh object
- B: Material
- C: Texture map
When a material is selected, the Inspector palette lists properties relevant to editing the material.
The animation toggle is associated with animatable properties.
- Lighting: Vertex, Pixel. Per pixel lighting mode is used primarily for materials that utilize Specular Amount and Specular Roughness. Vertex lighting is the default.
- Blending Mode: Normal, Screen, Multiply, Overlay. Setting the Blend Mode to Screen will result in an additive type effect. Multiply and Overlay are similar to what is found in most photo editing programs. The default is Normal blending which yields no special effect.
- Diffuse Color: Change the diffuse color of your material. There are predefined swatches and a custom color palette where specific RGB values can be input.
- Diffuse Map: This channel UV maps a bitmap image onto a material's surface.
Add texture maps to any channel by clicking on the channel slot and choosing an image from the pop-up menu. This menu displays all supported images in your project directory.
- Emissive Power: The default value is zero. Increasing the emissive power causes the material to become luminous. At 100% emissive, lights will not have an effect on your material.
- Emissive Map: Control the amount and location of the emissive value with a texture map.
- Specular Reflection: When a map is assigned to this channel, it is environmentally mapped to the surface and treated as a reflection.
- Specular Amount: With per pixel lighting turned on, this setting adjusts the specular amount of a material surface.
- Specular Roughness: Controls the spread and falloff of the specular appearance.
- Opacity: Controls the general opacity of the material.
- Opacity Map: Adding a texture map to this channel controls the amount and location of opacity on a material.
With a texture map selected in the timeline, the inspector palette will display the following properties:
The animation toggle is associated with animatable properties.
- A: U and V repeat. These properties adjust the texture map's repeat values in U and V space. Default is set to 1.
- B: Sets the texture mapping mode to either UV Mapping or Environmental Mapping.
- C: U and V tiling. Sets the texture map to either tile or not tile (repeat) in either U or V direction. Default is set to No Tiling.
- D: UV Rotation, U and V position, U and V pivot. These properties allow for transforming a texture map in U and V space. To rotate a texture map about its center, set the U and V positions to -.500 and the U and V pivot to .500.
In order to use text in Studio, fonts need to be added to the fonts folder within the user's project directory. Before adding fonts to your project, be sure that you have the rights to distribute the fonts or use open source fonts from www.google.com/webfonts
Studio comes packaged with a default library of open source webfonts. These fonts can be found in the project palette font library directory.
Select the font in file explorer and click Open. A copy of the font will be generated and added to the project.
Next, drag the font from the fonts folder in the project palette to the scene.
If there are multiple fonts in the font folder, the user can change the font in the scene by first selecting the text, then choosing a different font in the font property found in the inspector palette.
Replacing missing fonts is as easy as locating the missing font and adding it to the fonts folder.
Note: To replace a specific font in your presentation without having to tediously locate each font in the presentation, open your
.uip file in a text editor and perform a find/replace operation. For example, if you wish to replace all 100 instances of "TitilliumWeb" with "Michroma", you simply need to find all instances of "TitilliumWeb" in a text editor and replace with "Michroma". Be sure to correctly identify the font names or this operation will not work. Save the
.uip file after find/replace is complete and reopen the .uip in Studio. Voila! All specified fonts will be replaced with the desired font.
Animations can be brought into Studio using COLLADA. Animation is supported on any imported attribute. Position, rotation, scale, pivot, and material attributes can all be animated. An example of our advanced support for animations would be a hierarchy of items, rotated simultaneously on arbitrary axes in arbitrary axis order. Studio also supports importing bezier tangent value tweaked into animations.
Available under certain Qt licenses.
Find out more.