Advertisement
Guest User

Untitled

a guest
Nov 9th, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.79 KB | None | 0 0
  1. void render()
  2. {
  3.   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  4.  
  5.   const glm::mat4 mvp = camera.transformation();
  6.  
  7.   suzanne1->draw(mvp);
  8.   teapot1->draw(mvp);
  9.   bunny1->draw(mvp);
  10.  
  11.   glEnable(GL_STENCIL_TEST);
  12.   glStencilFunc(GL_ALWAYS, 1, 0xFF);
  13.   glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
  14.   glStencilMask(0xFF);
  15.   glDepthMask(GL_FALSE);
  16.   glClear(GL_STENCIL_BUFFER_BIT);
  17.  
  18.   mirror1->draw(mvp);
  19.  
  20.   glStencilFunc(GL_EQUAL, 1, 0xFF);
  21.   glStencilMask(0x00);
  22.   glDepthMask(GL_TRUE);
  23.  
  24.   const glm::mat4 mirror_mvp = glm::scale(camera.transformation(), glm::vec3(1.0f, 1.0f, -1.0f))
  25.     * glm::translate(glm::mat4(1.0f), glm::vec3(0.0f, 0.0f, 10.0f));
  26.  
  27.   suzanne1->draw(mirror_mvp);
  28.   teapot1->draw(mirror_mvp);
  29.   bunny1->draw(mirror_mvp);
  30.  
  31.   glDisable(GL_STENCIL_TEST);
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement