Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. glPushAttrib( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_ENABLE_BIT | GL_POLYGON_BIT | GL_STENCIL_BUFFER_BIT );
  2. glDisable( GL_LIGHTING ); /* Turn Off Lighting*/
  3. glDepthMask( GL_FALSE ); /* Turn Off Writing To The Depth-Buffer*/
  4. glDepthFunc( GL_LEQUAL );
  5. glEnable( GL_STENCIL_TEST ); /* Turn On Stencil Buffer Testing*/
  6. glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE ); /* Don't Draw Into The Colour Buffer*/
  7. glStencilFunc( GL_ALWAYS, 1, 0xFFFFFFFFL );
  8. /* First Pass. Increase Stencil Value In The Shadow*/
  9. glFrontFace( GL_CCW );
  10. glStencilOp( GL_KEEP, GL_KEEP, GL_INCR );
  11. doShadowPass( object, lightPosition );
  12. /* Second Pass. Decrease Stencil Value In The Shadow*/
  13. glFrontFace( GL_CW );
  14. glStencilOp( GL_KEEP, GL_KEEP, GL_DECR );
  15. //glDepthFunc(GL_GEQUAL);
  16. doShadowPass( object, lightPosition );
  17. //glDepthFunc( GL_LEQUAL );
  18. glFrontFace( GL_CCW );
  19. glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE ); /* Enable Rendering To Colour Buffer For All Components*/
  20.  
  21. /* Draw A Shadowing Rectangle Covering The Entire Screen*/
  22. glColor4f( 0.0f, 0.0f, 0.0f, 0.4f );
  23. glEnable( GL_BLEND );
  24. glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
  25. glStencilFunc( GL_NOTEQUAL, 0, 0xFFFFFFFFL );
  26. glStencilOp( GL_KEEP, GL_KEEP, GL_KEEP );
  27. glPushMatrix();
  28. glLoadIdentity();
  29. glBegin( GL_TRIANGLE_STRIP );
  30. glVertex3f(-0.1f, 0.1f,-0.10f);
  31. glVertex3f(-0.1f,-0.1f,-0.10f);
  32. glVertex3f( 0.1f, 0.1f,-0.10f);
  33. glVertex3f( 0.1f,-0.1f,-0.10f);
  34. glEnd();
  35. glPopMatrix();
  36. glPopAttrib();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement