Thanks to Pixelante!
Cyan fog demo
So here we go:
That wasn't so bad!
Cyan fog demo
So here we go:
/* Some constants for us */private const FARPLANE:Number = 10000;private const INVFARPLANE:Number = 1/FARPLANE;/* Set up the fragment constant for a cyan fog color (fc0) */context.setProgramConstantsFromVector(Context3DProgramType.FRAGMENT,0, Vector.<Number>([0, INVFARPLANE, INVFARPLANE, 1]));/* Set up vertex shader which will pass colour and depth to the fragment shader */var vertexShaderAssembler:AGALMiniAssembler = new AGALMiniAssembler();vertexShaderAssembler.assemble(Context3DProgramType.VERTEX,"m44 vt0, va0, vc0 \n"+ //transform vertex x,y,z"mov op, vt0 \n"+ //output vertex x,y,z"mov v0, vt0.z \n"+ //move vertex z (depth) to fragment shader"mov v1, va1" //move vertex r,g,b to fragment shader);/* Set up a fragment shader */var fragmentShaderAssembler:AGALMiniAssembler= new AGALMiniAssembler();fragmentShaderAssembler.assemble(Context3DProgramType.FRAGMENT,"mul ft0, fc0, v0 \n"+ //multiply fog r,g,b by vertex z (depth)"add ft1, ft0, v1 \n"+ //add final fog r,g,b to vertex r,g,b"mov oc, ft1" //output color); |
That wasn't so bad!