Skip to content

jayschwa/Quake2.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quake2.jl

Experimental Quake 2 map renderer written with Julia and modern OpenGL. Created at Hacker School. It is a toy and not actively developed.

Screenshot

Features

  • Map (.bsp) rendering
  • Per-pixel lighting
  • Support for bump and parallax effects from heightmaps

Requirements

  • Julia v0.2 (still in development - must be built from source)
  • Official Julia packages (can be added with Pkg.add()):
  • Unofficial Julia packages (must be added manually):
    • GL (requires at least OpenGL 3.x)
  • Quake 2 game data (i.e. pak0.pak)

Due to the fast-moving nature of Julia development and its packages, setting up an environment is not easy. In its current state, the code will likely not run outside the author's environment.

Lighting

Traditional Phong shading is applied per-pixel and used in conjunction with point lights parsed from the BSP's entity list. Lightmaps baked into the BSP are not currently being used due to their low resolution and lack of direction information.

Bump and parallax effects can be created by providing an optional height map. Normal maps are calculated automatically from the height map at initialization.

Height map

Normal map

Bump and parallax

The bump and parallax effects breathe new life into the original, low resolution Quake 2 textures.

Diffuse

Combined effect

About

Experimental Quake 2 map renderer written with Julia and modern OpenGL.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages