Jump to content

OpenGL: Difference between revisions

43 bytes added ,  5 March 2023
m
replacing 404 link with archive link
m (→‎OpenGL in Oni: linking to our documentation of Oni's erstwhile lightmapping, and wiki-linking a definition for Gouraud)
m (replacing 404 link with archive link)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
OpenGL is what Oni uses for rendering in-game components as well as the menu system and splashscreens – basically everything you see, except for those dialogs and window elements that are handled directly by the operating system (e.g., "[[Troubleshooting/Blam|Blam]]").
OpenGL is what Oni uses for rendering in-game components as well as the menu system and splashscreens – basically everything you see, except for those dialogs and window elements that are handled directly by the operating system (e.g., "[[Troubleshooting/Blam|Blam]]").


Oni's development in the late '90s corresponds to an era when GFX hardware was booming<ref>Quake (1996) is widely regarded as having played a key part in the breakthrough of real-time 3D technology in the late '90s [https://popculthq.com/2018/02/26/evolution-polygons-3d-video-game-graphics/]. See [[wp:First-person_shooter#Advances_in_3D_graphics:_1995–1999|HERE]] (Wikipedia) for a more detailed account citing other remarkable games, such as Descent (1995) or Half-Life (1999).</ref>, but the compatibility standards of such frameworks as OpenGL were still emergent. Starting with OpenGL 1.2.1 (October 1998), new OpenGL features were subject to approval by the Architecture Review Board (the "ARB extensions" concept), based on wide enough availability and reliability on the hardware side. Multitexturing ("GL_ARB_multitexture") was the only extension officially introduced by the OpenGL 1.2.1 spec (section F.2), but other extensions were gradually added on the way to OpenGL 1.3 (August 2001).
Oni's development in the late '90s corresponds to an era when GFX hardware was booming<ref>Quake (1996) is [http://web.archive.org/web/20220515195126/https://popculthq.com/2018/02/26/evolution-polygons-3d-video-game-graphics/ widely regarded] as having played a key part in the breakthrough of real-time 3D technology in the late '90s. See [[wp:First-person_shooter|First-person shooter]] (Wikipedia) for a more detailed account citing other noteworthy games such as Half-Life (1998).</ref>, but the compatibility standards of such frameworks as OpenGL were still emergent. Starting with OpenGL 1.2.1 (October 1998), new OpenGL features were subject to approval by the Architecture Review Board (the "ARB extensions" concept), based on wide enough availability and reliability on the hardware side. Multitexturing ("GL_ARB_multitexture") was the only extension officially introduced by the OpenGL 1.2.1 spec (section F.2), but other extensions were gradually added on the way to OpenGL 1.3 (August 2001).


==OpenGL in Oni==
==OpenGL in Oni==
Line 13: Line 13:


==Learning OpenGL==
==Learning OpenGL==
If you are looking for an introduction to modern OpenGL, with shaders and such, then [http://www.opengl-tutorial.org/ opengl-tutorial.org] is a good place to look. [https://www.3dgep.com/introduction-to-opengl-and-glsl/#OpenGL_1x_Fixed-Function_Pipeline THIS] mini-tutorial is also a good place to start, as it fully details the creation of an interactive OpenGL/freeglut app (however, the camera class used by the author is no longer available for download).
If you are looking for an introduction to modern OpenGL, with shaders and such, then [http://www.opengl-tutorial.org/ opengl-tutorial.org] is a good place to look. [http://web.archive.org/web/20221114170719/https://www.3dgep.com/introduction-to-opengl-and-glsl/#OpenGL_1x_Fixed-Function_Pipeline THIS] mini-tutorial is also a good place to start, as it fully details the creation of an interactive OpenGL/freeglut app (however, the camera class used by the author is no longer available for download).


If you are more specifically interested in normal mapping, then a really neat GLSL snippet can be found [http://www.geeks3d.com/20130122/normal-mapping-without-precomputed-tangent-space-vectors/ HERE] (an implementation of normal mapping that uses no precomputed TBN matrices and does all the tangent space math at shader level).
If you are more specifically interested in normal mapping, then a really neat GLSL snippet can be found [http://www.geeks3d.com/20130122/normal-mapping-without-precomputed-tangent-space-vectors/ HERE] (an implementation of normal mapping that uses no precomputed TBN matrices and does all the tangent space math at shader level).