Jump to content

OpenGL: Difference between revisions

141 bytes added ,  7 November 2021
m
→‎OpenGL in Oni: linking to our documentation of Oni's erstwhile lightmapping, and wiki-linking a definition for Gouraud
(throwing together some notes; may link to more tutorials later)
 
m (→‎OpenGL in Oni: linking to our documentation of Oni's erstwhile lightmapping, and wiki-linking a definition for Gouraud)
Line 6: Line 6:
Oni's release predates OpenGL 1.3 only slightly, so most if not all of the new ARB extensions from the OpenGL 1.3 spec were already approved and available at the time of Oni's development: most notably, compressed textures ("GL_ARB_texture_compression", March 2000) and multisampling a.k.a. antialiasing ("GL_ARB_multisample", December 1999), as well as some environment mapping techniques.
Oni's release predates OpenGL 1.3 only slightly, so most if not all of the new ARB extensions from the OpenGL 1.3 spec were already approved and available at the time of Oni's development: most notably, compressed textures ("GL_ARB_texture_compression", March 2000) and multisampling a.k.a. antialiasing ("GL_ARB_multisample", December 1999), as well as some environment mapping techniques.


Vertex Buffer Objects (i.e., optimized storage of 3D data at GPU level) were not implemented until OpenGL 1.5 (July 2003), and advanced pixel shaders (GLSL scripts) were only added in OpenGL 2.0 (September 2004). Therefore Oni has practically no hardware acceleration and is limited to Gouraud shading.
Vertex Buffer Objects (i.e., optimized storage of 3D data at GPU level) were not implemented until OpenGL 1.5 (July 2003), and advanced pixel shaders (GLSL scripts) were only added in OpenGL 2.0 (September 2004). Therefore Oni has practically no hardware acceleration and is limited to [[wp:Gouraud_shading|Gouraud shading]].


Lightmapping was technically possible since OpenGL 1.2.1 (through multitexturing) and may have been active in pre-beta versions of Oni<ref>Proper multitextured lightmaps should not be confused with [[Lightmapping levels|THIS]] hackish emulation of lightmaps, which uses an extra layer of transparent polygons.</ref>, although it is missing from the final game.
Lightmapping was technically possible since OpenGL 1.2.1 (through multitexturing)<ref>Proper multitextured lightmaps should not be confused with [[Lightmapping levels|THIS]] hackish emulation of lightmaps, which uses an extra layer of transparent polygons.</ref> and was [[Pre-beta_features#Lightmapping|initially present]] in pre-beta versions of Oni, although it was removed from the final game due to either performance reasons or last-minute remodeling of the game's levels.


A basic implementation of environment mapping was used for hair and metal parts, although the reflection math seems incorrect and some NVIDIA cards completely fail to render Oni's reflectivity.
A basic implementation of environment mapping was used for hair and metal parts, although the reflection math seems incorrect and some NVIDIA cards completely fail to render Oni's reflectivity.