After porting my fixed function pipeline volume rendering it was time to move on and implement real volume raycasting to overcome the bugs of the old implementation. Currently it’s only a very basic, quite unoptimized straight forward implementation (using threshold based early termination on fragment alpha saturation as the only optimzation). Maybe I should at least consider some of these techniques for an improved version, as the current implementation only runs @~15fps on my lowend 8800M GTX. Source as always on github: cube backface position shaders: .vs .fs and the real volume raycasting shaders: .vs .fs and last but not least the JOGL setup and initialization code: GL3_VolumetricRaycasting_VolumeTexture.java

Ported my first experiments in GPU based particle systems to JOGL2. The routine consist only of a single vertex shader implementing a simple stateless particle system. Setup and initialization code: GL3_BasicParticleSystem.java. The corresponding vertex shader: .vs

A more complicated JOGL2 port: “Parallax Occlusion Mapping”. Using multiple texture units for diffuse, specular-, normal- and displacement-map. Also shows quite nice vertex->fragment shader interaction and on-the-fly tangent and bitangent generation (need for the tangent-space-normal map). Java Code: GL3_ParallaxOcclusionMapping.java. Shader code: .vs .fs

JOGL2 routine simulating refraction (and reflection) using GLSL. Takes fresnels term into account to allow a view dependant blend of reflection/refraction. Code on Github: GL3_Refraction.java. Shader code: .vs .fs

Ported another GLSL routine to JOGL2. This time a couple of simple lighting vertex shaders implementing flat-, diffuse- and specular-(phong)-lighting with multiple lightsources. Github: GL2_BasicVertexShading.java. The code for the four vertex shaders can be found here: basiclightingshaders/

NIGHTNIGHT by DEDDY