Difference between revisions of "Render to texture"

From DoomWiki.org

[checked revision][checked revision]
m (Orthographic, not isometric. Though for all I know you might make either work with the right camera view point *shrugs*)
m (Official implementations: Just call it full-screen here; I'm not familiar enough with the internals.)
Line 13: Line 13:
 
==Official implementations==
 
==Official implementations==
  
[[Doom Classic]], included as part of [[Doom 3: BFG Edition]], renders to an isometric id Tech 4 UI surface. It inherited this system from the [[Xbox]] and [[Xbox 360]] ports from which it descends.
+
[[Doom Classic]], included as part of [[Doom 3: BFG Edition]], renders to a full-screen id Tech 4 UI surface. It inherited this system from the [[Xbox]] and [[Xbox 360]] ports from which it descends.
  
 
The port of [[Hexen (Sony PlayStation)|Hexen]] to the Sony PlayStation used a similar approach. As a result of the hardware being poorly tuned to this sort of application, however, it had a lower framerate than the [[Sony PlayStation|Doom]] port to the same console, which used an original polygon-based rendering engine.
 
The port of [[Hexen (Sony PlayStation)|Hexen]] to the Sony PlayStation used a similar approach. As a result of the hardware being poorly tuned to this sort of application, however, it had a lower framerate than the [[Sony PlayStation|Doom]] port to the same console, which used an original polygon-based rendering engine.

Revision as of 20:11, 12 April 2014

The ability to render to texture is a feature of a number of Doom source ports which allows use of hardware-accelerated rendering contexts without conversion of the rendering engine to a "true 3D" polygon-based approach.

Support for the feature is increasingly important due to the number of new computing devices such as tablets which only support APIs such as OpenGL ES for graphics. Other advantages of the feature include the ability to do hardware scaling, support for vertical synchronization and page flipping, and possible reductions in the amount of main RAM and CPU time needed for the rendering process.

Details

In its most basic form, an orthographic projection is set up in OpenGL or Direct3D and a triangle strip or quad is rendered to the screen in a fashion which results in each texel being equivalent to one pixel on the screen. The game's framebuffer is then uploaded as a texture to the video card each frame and the texture is mapped to the polygon(s) used as the display surface.

Use of GL extensions such as the ARB pixel buffer object extension can provide for asynchronous update capability and faster uploads, taking greater advantage of modern graphics cards' vast bus bandwidth.

In more advanced forms, it is possible for the game to be rendered onto an arbitrary surface within a larger three-dimensional environment. Such is the case for the Terminal DOOM source port, which modifies the engine to render onto an id Tech 4 user interface surface which is integrated into an arcade-cabinet-like world mesh. The player walks up to the device to play the game as it renders to the surface within the environment of the Doom 3 level.

Official implementations

Doom Classic, included as part of Doom 3: BFG Edition, renders to a full-screen id Tech 4 UI surface. It inherited this system from the Xbox and Xbox 360 ports from which it descends.

The port of Hexen to the Sony PlayStation used a similar approach. As a result of the hardware being poorly tuned to this sort of application, however, it had a lower framerate than the Doom port to the same console, which used an original polygon-based rendering engine.

Source ports

Custom implementations

Direct3D implementations

OpenGL implementations