Truevision3D

From Wikipedia, the free encyclopedia
Truevision3D Engine
TV3DLogo1.jpg
Developer(s)Truevision3D, LLC.
Stable release
6.3 / May 5, 2007
Preview release
6.5 / September 2, 2007
Operating systemMicrosoft Windows
Type3D Engine
LicenseUS$150 for a single-title license, $500 for a multiple-title license
WebsiteTruevision3D.com

Truevision3D is a commercial computer software 3D engine first created as a hobby project by Sylvain Dupont in 1999. With the addition of Arli Mujkic and John Hart, Truevision3D LLC. was formed.

The Truevision3D (commonly abbreviated as TV3D) engine is written in Visual Basic 6 and C++ and layered on top of the Microsoft DirectX API, currently supporting DirectX version 8. The engine is accessible from a number of programming languages including C++, C#, Delphi and Visual Basic (6 and .NET). The current version of Truevision3D is 6.3. Version 6.5, currently in public pre-release and very stable, includes significant updates to the engine, including DirectX 9 and shader support, as well as being rewritten in 100% C++. There are no plans to support DirectX 10 or XNA until a new version is worked on (TV7).

Known issues[]

Versions 6.2 and 6.3 have issues with C++ support, it is not possible for example to make it work in certain compilers. Version 6.5 works with any language that can utilize COM, managed libraries, or static libs.

There is also a known issue between the version 6.3 on Windows Vista since it needs a dll from DirectX 8 which Vista does not have and it is contractually illegal to simply add it. Microsoft has been contacted regarding this issue but has not demonstrated in their forums any will to include the dll.

Features[]

Version 6.5 is a complete development solution which includes 3D, Media, and Network Engines.

Included with the SDK are multiple tools to help speed up development: a shader editor, model viewer, exporting plugins for various modeling software (3D Studio Max, Maya, and Milkshape 3D currently) and particle effects editors. Because version TV3D 6.5 no longer supports outdated mesh formats, many converters are also available. An official world or map editor is not currently planned because it hinders the end-user, since there is no way one editor can be used for every project this engine is used for. Furthermore, TV3D is a 3D engine, not a game engine, and an official editor would limit it too much. However, there are some user-created map editors available.

Truevision3D is free to use as long as the user doesn't mind a logo in the corner of the rendering viewport. To remove the logo and publish a commercial project, a license needs to be acquired. Currently, the cost is $150 for a single-title license, $500 for a multi-title license. A source license can be purchased for an as yet undisclosed price.

Languages Supported[]

  • Visual Basic 6 (VB6) via ATL/COM Library
  • Visual Basic.Net (VB.Net) via Managed Library
  • C# via Managed Library
  • Delphi via ATL/COM Library
  • C++ via Direct Library Support (not fully working in 6.3)
  • BlitzMax (6.5 only)
  • ...and any ATL/COM or .NET-compliant language

3D Engine[]

Features of SDK version 6.5 only

Rendering System[]

  • Windowed or fullscreen support, with the ability to switch between modes during rendering
  • 32-bit standard rendering pipeline for main buffer rendering
  • 64-bit and 128-bit floating point rendering pipeline available
  • Multiple viewport mode available in windowed mode
  • Multiple adapter support, with full enumeration of devices and supported rendering modes
  • Antialiasing and anisotropic filtering up to 16x supported
  • Switch between point, line, and solid rendering modes

HLSL Shader Support[]

  • Full DirectX 9.0c effect file support for shaders, in HLSL or Assembly
  • Support for Shader Model 1.0 to Shader Model 3.0
  • Extensive support of predefined semantics for access to internal parameters
  • Shaders supported on most TV3D objects, including mesh, actor, landscape, and minimesh

Landscape and Terrain System[]

  • Highly optimized chunk-based terrain rendering
  • Chunked Level of detail with geomorphing for progressive LOD
  • Realtime deformable terrain with single- or array-based point updates
  • Detailed texturing using texture splatting with up to 16 simultaneous layers
  • 8-bit or 24-bit heightmap support for terrain generation
  • Custom terrain data format for fast terrain loading and parsing
  • Fast altitude queries and collision detection
  • Automated fast culling using internal quadtree
  • Complex integrated water system for realistic-looking water

Static Mesh Support[]

  • Flexible mesh system including on-the-fly mesh creation
  • Supports meshes up to 16 million triangles and vertices
  • Various vertex formats supported
  • Frustum culling via sphere or box
  • Up to 8 textures per group for combinations of diffuse, normalmap, specular, emissive, and heightmap
  • Accurate triangle or bounding volume collision

Animated Meshes (Actors)[]

  • High-performance skeletal or morph target animations
  • Supports 3 skinning modes, including CPU, blended, and shader-based
  • Full support for custom shaders on actors
  • Animation transition support from one animation to another
  • Animation blending with up to 4 simultaneous tracks
  • Exporters for Maya, 3DS Max, and Milkshape 3D
  • Included conversion utility for Half-Life 1 MDL files
  • Accurate collision detection and mousepicking support
  • Full attachment system for actor bones
  • Bone manipulation via internal calls for custom animation systems

Material and Lighting System[]

  • Point, directional, and spot lights supported
  • Managed lighting system to automatically select the best active lights for the object
  • Standard per-vertex lighting with transform and lighting support
  • Per-pixel lighting with bump mapping support
  • Offset/parallax tangent bump mapping support
  • Cubemap filter for point light and bump mapping
  • Material system with ambient, diffuse, emissive, specular, and power support
  • Per-pixel and per-vertex precomputed radiance transfer (PRT) for meshes
  • Lightmap support for meshes and terrain

Particle Systems[]

  • Multiple emitters and attractors supported per particle system
  • Point sprite, billboard, and minimesh particles can be mixed in one particle system
  • Full keyframe support for particles and particle emitters
  • Spherical, box, and direction emitters supported
  • Direction filtering via cubemap for emitters

Minimesh System[]

  • Internal shader instancing allowing up to 52 meshes to be rendered per batch
  • Full custom shader support for special effects
  • Minimeshes can be used as particles, allowing complex effects
  • Per item frustum culling and fading

GPGPU (General Processing on GPU)[]

  • Full floating point surface support, including 64bits and 128bits
  • Full custom pixel shader rendering via standard DirectX effect files
  • Read pixel data from the user's pixel shader results in real-time

Integrated Newton Physics Engine[]

  • Based upon the Newton Game Dynamics physics engine
  • Direct integration for engine objects, including meshes, actors, terrain
  • Accurate collision detection and friction solver with configurable accuracy
  • Rigid body colliders support includes box, sphere, cylinder, cone, and convex hull
  • Static body colliders support includes mesh and terrain
  • Combine multiple colliders into one rigid body
  • Full joint support with limits including ball, hinge, universal, up, and sliders
  • Motorized joints supported
  • Fully configurable vehicle system
  • Buoyancy for bodies based upon a water plane
  • Configurable auto freezing of bodies when they are idle
  • Ragdolls supported by direct actor bone manipulation

Built-in Special Effects and Controls[]

  • , and fullscreen fading and flash effects
  • Glow and bloom with full support
  • Per object velocity-based motion blur (PS 2.0+)
  • Depth of field (PS 2.0+)

Additional Features[]

  • Full unicode support
  • Global stream system for data loading from a file, file part, memory stream, or package
  • Included math library with all standard functions for vectors, matrices, and quaternions
  • Internal profiler with on screen output to help determine bottlenecks in rendering
  • Unified angle system for all internal functions allowing the user to use degrees or radians

API Standards[]

  • Simple and easy to use OOP classes
  • Initialize the engine and begin rendering in less than 5 lines of code!
  • Multiple languages supported via the various libraries, all using the same C++ core
  • Static Library supported for C++ for one-file distribution, no dependent files required

Media Engine[]

Only present in 6.2 and 6.3 versions

Audio Features[]

  • Hardware acceleration support
  • 3D positional audio
  • Multiple audio effects, including distortion, echo, reverb and more

Video Features[]

  • Hardware acceleration support
  • Playback of any video format, providing the codec is available
  • Video playback to a TV3D texture is supported for rendering videos in TV3D Scenes

Network Engine[]

Only present in final 6.5 version

Connection Support[]

  • Patching Server
  • Lobby w/ Chat
  • Client/Server
  • Peer-to-Peer

Networking Features[]

  • UDP, TCP, and Mixed-Mode Support
  • Highly Optimized ASM Packet Controller
  • Reliable, Unreliable, and Broadcast Packets
  • Multiple Communications Channels with Priorities

About Truevision3D[]

Truevision3D began as a hobby project back in January 1999. Sylvain Dupont created a 3D engine in Visual Basic 6 with DirectX 7 & 8. With the later addition of Arli Mujkic and John Hart, Truevision3D, LLC. was formed to make TV3D a commercial product. Today, it has grown into a global company, supporting thousands of clients and community users.

External links[]

Retrieved from ""