New in Quest3D 5

From Quest3D Documentation
Jump to: navigation, search


New Functionality

  • QFramework
    • Sun shadows
    • Screen space ambient occlusion
    • Import and placing of models
    • Procedural sky and clouds
    • Volumetric fog
    • Ocean rendering
    • Terrain modeling and rendering
    • Deferred lighting
    • Morphological antialiasing
  • 64 bit version.
  • Newton 2.0. Support multiple cores.
  • A New Importing System.
  • VRPN support
  • Support for Quaternion math.
  • Extended SDK with sources of the channels library

QFramework overview

Using Containers over Arrays

VRPN for Quest3D

Quaternions for Quest3D

Other changes

  • Textures can now have random sizes.
  • Render to texture can create a z-buffer for the texture and initialize the color buffers to NULL (Usefull for PCF shadow maps).
  • Textures can load the PSD format.
  • Updated HLSL channel with new compiler and improved user interface.
  • Volumetric Textures.
  • New function window for quickly implementing OO functions.
  • Improved memory management.
  • Textures never have duplicate memory when you load the same twice.
  • Clip planes now work on HLSL shaded models.
  • Improved Unicode Support
  • New OO mode for editor for streamlined development of object oriented projects
  • Added WinEditBox channel, for (multi-line) text editing.

Naming conventions

Several channels now have new names to make things easier to find.

  • 3D ObjectData is now called a "Mesh" channel
  • All textures now start with texture, like: Texture, Texture 3D, Texture Render etc...

New Graphic features

  • Sun shadows
  • Screen space ambient occlusion
  • Import and placing of models
  • Procedural sky and clouds
  • Volumetric fog
  • Ocean rendering
  • Terrain modeling and rendering
  • Deferred lighting
  • Morphological antialiasing

Deprecated Channels

These are channels which contain outdated functionality an many have been replaced by better alternatives. Note that Quest3D 5 will load old projects so some are still included. Many of these channels are hidden in OO mode.

Winamp, Hybrid channels, Fast Skinning, Ocean, Stencil shadow, ActiveXchannels, ODE Physics, Cloth, ClothObject, FastColissionResponse, Dynamic LOD, Rope, Rope action, 3D Graph, 3D Graph command, 3D Text from Texture,Array Table, Array Buffer, Array Command, Array InfoValue, Array Matrix, Array Text, Array Value, Array ValueOperator, Array VEctor, Array VectorOperator, Bone, Brightness, Contrast, Gamma, CallOnGetChild, Create Cube Camera Matrix, DepthSortRender, Detect3DSettings, FastMultiObjectData, FastShaderStencilObject, FastSkinning, FiniteStateMachine, GroupArrayPointer, GroupLoader, GroupLoaderStatus, GroupSElfsave, High Dynamic Range Process, InActiveX, InScreenSaver, InScreenSaverPreview, Light, MoonPosition, Mooninfo, SunPosition, Suninfo, MorphObject, MotionPlanning, MotionPlanningInfoValue, MotionplanningInfoVector, Naturepainter, ObjectDataNormalDisplace, Ocean Info, PrintRenderBuffer, ProjectionMatrix, ResourceManager, Shadersurface, Shaderinfo, SoftwareStencilShadowObject, StaticLOD, StencilShadow, TextureLighting, TimerCommand, Timer Value, Tick Count, VertexAnimation, Wake Particles, Wake Waves

Trackers (Quest3D VR)

The individual drivers for motion trackers have been replaced by the VRPN system which support numerous trackers. Because of this the following trackers have been deprecated: Glove Driver 5DT,Glove Driver Immersion, Glove Driver P5, Glove Source, Glove Value, Glove5DTCommand, Flock of Birds Command, Flock of Birds Matrix, FasTRAK Command, Patriot Command, Minuteman Command, MinutemanCommand,ARTTrack Command


Because of the declining support for web plug-ins Quest3D 5 now only exports to a self executable or cgr files viewable by the Quest3D viewer. The source of the web plug-ins are available in the extended SDK in case you want to build, distribute and maintain these plug-ins for your own web applications.

Important Shader (HLSL) changes

  • UseTangent and UseBiNormal are removed from the HLSL semantics. Instead the Command channel contains the "Add Tangents and BiNormal" command to add tangents and Binormals to a mesh.
  • Tangents and Binormals can only be used with shaders which are rendered using a global shader.
  • The DisableObjectClipping semantic still works although clipping can be turned off now also by using Command#Render Mesh With Custom Vertex Format
  • The Command#Render Mesh With Custom Vertex Format should be used when you want to render a mesh which used tangent and binormals.
  • We advise you to not use the semantics for retrieving light positions and things like fog settings anymore. In modern projects things like lights and fog go beyond the capabilities of the old fixed function pipeline and there for the old semantics are not good enough anymore. Instead you can now specify your own standard using Set HLSL and Set GlobalShader commands. The first allows you to set parameters using a keyword so you can specify your own semantics the latter allows you to pass on parameters to a shader using an index.
Dialog changes
  • The option to save the HLSL code in a seperate file has been removed. Instead, you can now point the shader to an external file using #include.
  • The option to store the shader in a text channel connected to the HLSL channel has been removed.
Alternatives for the object section
  • Since the object section has been removed the texture mapping features of the object section are now available as a Command. This function allows you to apply simple UV mappings on a mesh. Note that you will have to recalculate tangents and binormals after applying new texture coordinates (see the first point above).
  • In the object section it was possible to set different surface properties like alpha blending and texture wrapping. These functions have been replaced by specifying effect states in the HLSL channel. Effect states are render states you can specify in the technique section of your shader code.
New capabilities
  • Quest3D supports instancing. This is a quick way to render multiple duplicates of a single object. Each instance reuses the same mesh and shader parameters although you can specify a single matrix for each instance so you can give each one a different position, size or color.
  • Quest3D supports Volume Textures. This channel works similar to normal textures but it contain a 3D texture instead of a 2D texture.
  • Quest3D supports hardware PCF filtered shadow maps. For this to work you should turn on the Return depth map and Create custom depth buffer features of the RenderTexture channel. The first function ensures you get the depth buffer and not the color buffer and the second option ensures the texture gets its own depth buffer instead of the buffer shared by all other render buffers. The exact details on using shadow maps goes beyond the scope of this topic so we advise you to check the Qframework or an example for more details.
  • Quest3D has a new HLSL compiler. This means you can use new features like compiler directives and improved compilation.
More information

For more details on all the ins and outs of HLSL shading please go here: HLSL

Editor changes (in OO mode)

Quest3D strives to move the technology forward by relying on the new QFramework. This means we have removed several old windows from the editor because many of them do not make sense anymore in the new context. For example the object section is of little use because the latest Quest3D projects load their models in an OO stucture and can have completely different shaders for different objects. The best way to tackle this is by using a GUI build in Quest3D itself. The Qframeworks already includes a simple interface to change shaders, parameters and change textures.

Public callers and group arrays are solutions for problems that are now completely solved with OO. You can now define a class in a cgr file and create instances of this class. There's a nice method to call functions on the interface so public callers, parameters and group arrays are not needed anymore. Arrays are also easily replaceable by OO. It's very simple to define a class with several members and create class list of this class. In essence a list of classes is similar to an array in Quest3D 4. This is why arrays are not depricated in Quest3D 5.

  • Removed all object section windows
  • Removed all animation section windows
  • Removed all naturepainting/pathfinding windows
  • Removed Array windows
  • Removed the ability to create public callers and parameter channels
Personal tools