GPU Buffers: Introduction to OpenGL 4.3 Shader Storage Buffers Objects
OpenGL 4.3
Shader Storage Buffers
GPU Buffers: Introduction to OpenGL 3.1 Uniform Buffers Objects
OpenGL 3.1
Uniform Buffers
Simple Introduction to OpenGL 4 Shader Subroutines
Intro to OpenGL 4
Shader Subroutines
Lorenz Attractor (Butterfly Effect)
Lorenz Attractor
Butterfly Effect
Mesh Exploder with Geometry Shaders
Mesh Exploder
Geometry Shaders
GLSL Hacker
GLSL Hacker
v0.7.0.0

Posts Tagged ‘quake 2’


Modernizing the Quake2 renderer

Be the first to comment - What do you think?  Posted by JeGX - 2008/06/25 at 10:06

Categories: 3D Engines, OpenGL, Programming   Tags: , , , , ,

Jay Dolan recently blogged about some of the performance optimizations he made to his Quake2-based engine, Quake2World. He provides links to various points in the source code to give context around some of the topics he discusses.

Read the post HERE.

Quake2 was released in 1997. Hardware acceleration was only available on higher-end PC’s, and things like multitexture and vertex arrays which are commonplace today didn’t even exist then. So naturally, Quake2′s rendering techniques appear very dated in 2008. Multitexture was made a part of the OpenGL specification in version 1.2.1, and is available on most 2nd generation hardware (TNT or newer). I strongly recommend cleaning up the renderer and removing any non-multitexture rendering paths.

Texture binds (glBindTexture) are rather expensive too, and so to minimize these per frame, you should group the world surfaces by texture before iterating over them. Note that a simple grouping operation is significantly cheaper than a qsort — overall order is not important, we just want to minimize texture changes.

[via]