--- libgender/view.C 2004/11/06 04:26:18 1.74 +++ libgender/view.C 2004/11/07 02:28:18 1.75 @@ -115,10 +115,10 @@ { matrix &m = perspective; - m(0,0) = 1.F / xmax; m(0,1) = 0; m(0,2) = 0; m(0,3) = 0; - m(1,0) = 0; m(1,1) = 1.F / ymax; m(1,2) = 0; m(1,3) = 0; - m(2,0) = 0; m(2,1) = 0; m(2,2) = -2.F / z_far; m(2,3) = 0; - m(3,0) = 0; m(3,1) = 0; m(3,2) = -1; m(3,3) = 0; + m(0,0) = 1.F / xmax; m(0,1) = 0; m(0,2) = 0; m(0,3) = 0; + m(1,0) = 0; m(1,1) = 1.F / ymax; m(1,2) = 0; m(1,3) = 0; + m(2,0) = 0; m(2,1) = 0; m(2,2) = -1e10F / z_far; m(2,3) = 1; + m(3,0) = 0; m(3,1) = 0; m(3,2) = -1; m(3,3) = 0; glLoadMatrixf (perspective); } @@ -215,8 +215,10 @@ case DEPTH: glColorMask (1, 1, 1, 1); glDepthMask (1); + glDisable (GL_BLEND); - glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); + //glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); + glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //glEnable (GL_STENCIL_TEST); // for depth-passes //glStencilOp (GL_KEEP, GL_KEEP, GL_REPLACE); @@ -224,6 +226,7 @@ //glEnable (GL_POLYGON_OFFSET_FILL); //glPolygonOffset (0, 5); + glEnable (GL_CULL_FACE); glDisable (GL_MINMAX); glDepthRange (DEPTH_OFFSET, 1.); glDepthFunc (GL_LESS); @@ -242,6 +245,7 @@ glDepthMask (0); glEnable (GL_DEPTH_CLAMP_NV); glDisable (GL_STENCIL_TEST); + glDisable (GL_CULL_FACE); // check occlusion queries for (vector::iterator i = occ_queries.begin (); i != occ_queries.end (); ++i) @@ -255,7 +259,10 @@ break; case LIGHTED: - glClear (GL_STENCIL_BUFFER_BIT); + glEnable (GL_CULL_FACE); + //glEnable (GL_BLEND);//TODO, only when not first lighted pass + glBlendFunc (GL_ONE, GL_ONE); + //glClear (GL_STENCIL_BUFFER_BIT); //glEnable (GL_STENCIL_TEST); glEnable (GL_MINMAX); glDepthRange (0., 1. - DEPTH_OFFSET); @@ -321,7 +328,7 @@ using namespace shader::compile; sh_lightvec = lightvec; - sh_colour = float3 (c.r / 255.F, c.g / 255.F, c.b / 255.F) * (min (intensity * camdist * 0.6F + 0.9F, 1.F)); + sh_colour = float3 (c.r / 255.F, c.g / 255.F, c.b / 255.F) * (min (intensity * camdist * 100.F + 0.9F, 1.F)); }