vertex_shader "varying vec3 texcoord; void main() { gl_Position = ftransform(); texcoord = gl_MultiTexCoord0.xyz; }"; fragment_shader "uniform sampler3D texture; varying vec3 texcoord; void main() { float heat = max((texture3D(texture, texcoord).r-0.1)*12.0, 0.0); gl_FragColor = vec4(1.0, heat, max(heat-1.0, 0.0), heat/4.0); }";