OpenGL: Difference between revisions

83 bytes added ,  5 March 2023
m
replacing 404 link with archive link
m (the section links in the WP "FPS" article keep changing and the desired material has been split into two sections anyway, so let's not use a section link; removing mention of Descent because it was removed from the WP article :-()
m (replacing 404 link with archive link)
 
(One intermediate revision 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 [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).
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).