Truevision3d
Encyclopedia
Truevision3D is a 3D commercial
Commerce
While business refers to the value-creating activities of an organization for profit, commerce means the whole system of an economy that constitutes an environment for business. The system includes legal, economic, political, social, cultural, and technological systems that are in operation in any...

 3D engine first created by Sylvain Dupont in 1999.

The Truevision3D (commonly abbreviated as TV3D) engine is written in Visual Basic 6 and C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 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
Visual Basic
Visual Basic is the third-generation event-driven programming language and integrated development environment from Microsoft for its COM programming model...

 (6 and .NET). The current version of Truevision is 6.3. Version 6.5, currently in public prerelease and very stable, includes significant updates to the engine, including DirectX 9 and shader
Shader
In the field of computer graphics, a shader is a computer program that is used primarily to calculate rendering effects on graphics hardware with a high degree of flexibility...

 support, as well as being rewritten in 100% C++. There are no plans to support DirectX 10 or XNA
Microsoft XNA
Microsoft XNA is a set of tools with a managed runtime environment provided by Microsoft that facilitates video game development and management. XNA attempts to free game developers from writing "repetitive boilerplate code" and to bring different aspects of game production into a single system...

 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
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...

 since it needs a dll
Dynamic-link library
Dynamic-link library , or DLL, is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems...

 from DirectX 8 which Vista does not have and it is contractually illegal to simply add it. Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 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
3D Studio Max
Autodesk 3ds Max, formerly 3D Studio MAX, is for making 3D animations. It was developed and produced by Autodesk Media and Entertainment. It has modeling capabilities, a flexible plugin architecture and can be used on the Microsoft Windows platform. It's frequently used by video game developers, TV...

, Maya
Maya (software)
Autodesk Maya , commonly shortened to Maya, is 3D computer graphics software that runs on Microsoft Windows, Mac OS and Linux, originally developed by Alias Systems Corporation and currently owned and developed by Autodesk, Inc. It is used to create interactive 3D applications, including video...

, and Milkshape currently) and particle effects editor. Because version TV3D 6.5 no longer supports outdated mesh formats, many converters are also available. An official world or map editor
Level editor
A level editor is a software tool used to design levels, maps, campaigns, etc and virtual worlds for a video game. In some cases the creator of a video game releases an official level editor for a game, but other times the community of fans step in to fill the void...

 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
Game engine
A game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers...

, 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 single title license, $500 for 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

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
    Anisotropic filtering
    In 3D computer graphics, anisotropic filtering is a method of enhancing the image quality of textures on surfaces that are at oblique viewing angles with respect to the camera where the projection of the texture appears to be non-orthogonal In 3D computer graphics, 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
    Terrain rendering
    Terrain rendering covers a variety of methods of depicting real-world or imaginary world surfaces. Most common terrain rendering is the depiction of Earth's surface.It is used in various applications to give an observer a frame of reference...

  • Chunked Level of detail
    Level of detail
    In computer graphics, accounting for level of detail involves decreasing the complexity of a 3D object representation as it moves away from the viewer or according other metrics such as object importance, eye-space speed or position....

     with geomorphing
    Geomorphing
    In computer graphics, geomorphing is the process of smoothly interpolating between models of different levels of detail so as to create a more pleasing visual effect than just suddenly changing detail levels. It was invented out of the need to lessen the otherwise noticeable effect known as...

     for progressive LOD
  • Realtime deformable terrain with single- or array-based point updates
  • Detailed texturing using texture splatting
    Texture Splatting
    In computer graphics, texture splatting is a method for combining different textures. The method works by applying an alphamap to the higher levels, revealing the layers underneath where the alphamap is partially or completely transparent...

     with up to 16 simultaneous layers
  • 8-bit or 24-bit heightmap
    Heightmap
    In computer graphics, a heightmap or heightfield is a raster image used to store values, such as surface elevation data, for display in 3D computer graphics...

     support for terrain generation
  • Custom terrain data format for fast terrain loading and parsing
  • Fast altitude queries and collision detection
    Collision detection
    Collision detection typically refers to the computational problem of detecting the intersection of two or more objects. While the topic is most often associated with its use in video games and other physical simulations, it also has applications in robotics...

  • Automated fast culling
    Culling
    Culling is the process of removing animals from a group based on specific criteria. This is done either to reinforce certain desirable characteristics or to remove certain undesirable characteristics from the group...

     using internal quadtree
    Quadtree
    A quadtree is a tree data structure in which each internal node has exactly four children. Quadtrees are most often used to partition a two dimensional space by recursively subdividing it into four quadrants or regions. The regions may be square or rectangular, or may have arbitrary shapes. This...

  • 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, heightmap
  • Accurate triangle or bounding volume collision

Animated Meshes (Actors)

  • High performance skeletal
    Skeletal animation
    Skeletal animation is a technique in computer animation in which a character is represented in two parts: a surface representation used to draw the character and a hierarchical set of interconnected bones used to animate the mesh...

     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 Milkshape3D
  • 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
    Bump mapping
    Bump mapping is a technique in computer graphics for simulating bumps and wrinkles on the surface of an object. This is achieved by perturbing the surface normals of the object and using the perturbed normal during lighting calculations. The result is an apparently bumpy surface rather than a...

     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
    Precomputed Radiance Transfer
    Precomputed Radiance Transfer is a computer graphics technique used to render a scene in real time with complex light interactions being precomputed to save time...

     (PRT) for meshes
  • Lightmap
    Lightmap
    A lightmap is a data structure which contains the brightness of surfaces in 3d graphics applications such as video games. Lightmaps are precomputed and used for static objects. Quake was the first computer game to use lightmaps to augment rendering. Before lightmaps were invented, realtime...

     support for meshes and terrain

Particle Systems

  • Multiple emitters and attractors supported per particle system
    Particle system
    The term particle system refers to a computer graphics technique to simulate certain fuzzy phenomena, which are otherwise very hard to reproduce with conventional rendering techniques...

  • Point sprite
    Sprite (computer graphics)
    In computer graphics, a sprite is a two-dimensional image or animation that is integrated into a larger scene...

    , 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 your pixel shader results in real time

Integrated Newton Physics Engine

  • Based upon the Newton Game Dynamics
    Newton Game Dynamics
    Newton Game Dynamics is an open source physics engine for realistically simulating rigid bodies in games and other real-time applications. Its solver is deterministic and not based on traditional LCP or iterative methods....

     physics engine
    Physics engine
    A physics engine is computer software that provides an approximate simulation of certain physical systems, such as rigid body dynamics , soft body dynamics, and fluid dynamics, of use in the domains of computer graphics, video games and film. Their main uses are in video games , in which case the...

  • Direct integration for engine objects, including meshes, actors, terrain
  • Accurate collision detection and friction solver with configurable accuracy
  • Rigid body colliders support include 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

  • Gamma control, and fullscreen fading and flash effects
  • Glow and bloom
    Bloom (shader effect)
    Bloom is a computer graphics effect used in computer games, demos and high dynamic range rendering to reproduce an imaging artifact of real-world cameras. The effect produces fringes of light around very bright objects in an image, obscuring fine details...

     with full emissive map support
  • Per object velocity-based motion blur (PS 2.0+)
  • Depth of field
    Depth of field
    In optics, particularly as it relates to film and photography, depth of field is the distance between the nearest and farthest objects in a scene that appear acceptably sharp in an image...

     (PS 2.0+)

Additional Features

  • Full unicode
    Unicode
    Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems...

     support
  • Global stream system for data loading from 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 you to use degrees or radians

API Standards

  • Simple and easy to use OOP
    OOP
    -Science and technology:* Object-oriented programming, a computer programming paradigm* Object-oriented positioning, another name for feature-oriented positioning in microscopy...

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

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

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
DirectX
Microsoft DirectX is a collection of application programming interfaces for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with Direct, such as Direct3D, DirectDraw, DirectMusic, DirectPlay,...

7 & 8. With the later addition of Arli Mujkic and John Hart, Truevision3D, LLC. was formed to make TV3D a commercial product. Today, has grown into a global company, supporting thousands of clients and community users.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK