Hi Mobeen,
I've looked at the references you suggested but I still haven't got my head around the shadowShader.getProgram() in Listing 17.5 and the volumeShader.getProgram() in Listing 17.7.
This is different to the way I usually create and use a shader program.
I would normally just use gl.useProgram(shaderProgram) with shaderProgram defined as follows...
var fragmentShader = createShader(gl, document.getElementById("fShader").innerHTML, "fragment");
var vertexShader = createShader(gl, document.getElementById("vShader").innerHTML, "vertex");
shaderProgram = gl.createProgram();
gl.attachShader(shaderProgram, vertexShader);
gl.attachShader(shaderProgram, fragmentShader);
gl.linkProgram(shaderProgram);
Is the shadowShader code described in Listings 17.12 and 17.13?
Where can I find the volumeShader code?