Guest User

Untitled

a guest
Feb 18th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | None | 0 0
  1.     // Ellipsoid Buffers
  2.     vec3* ellipsoidVBO;
  3.     unsigned short* ellipsoidIBO;
  4.  
  5.     WireframeSphere(0.5f, slicesCount, stacksCount, ellipsoidVBO, ellipsoidIBO);
  6.  
  7.     glGenBuffers(1, &ellipsoidBuffer);
  8.     glBindBuffer(GL_ARRAY_BUFFER, ellipsoidBuffer);
  9.     glBufferData(GL_ARRAY_BUFFER, (slicesCount * (stacksCount - 1) + 2) * 2 * 12, ellipsoidVBO, GL_STATIC_DRAW);
  10.  
  11.     glGenBuffers(1, &ellipsoidIndexBuffer);
  12.     glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ellipsoidIndexBuffer);
  13.     glBufferData(GL_ELEMENT_ARRAY_BUFFER, (2 * slicesCount * (stacksCount - 1) + slicesCount + 1) * 2, ellipsoidIBO, GL_STATIC_DRAW);
  14.  
  15.     // Axii Buffers
  16.     vec3* axiiVBO;
  17.     unsigned short* axiiIBO;
  18.  
  19.     AxiiLines(30, axiiVBO, axiiIBO);
  20.  
  21.     glGenBuffers(1, &axiiBuffer);
  22.     glBindBuffer(GL_ARRAY_BUFFER, axiiBuffer);
  23.     glBufferData(GL_ARRAY_BUFFER, 6 * 2 * 12, axiiVBO, GL_STATIC_DRAW);
  24.  
  25.     glGenBuffers(1, &axiiIndexBuffer);
  26.     glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, axiiIndexBuffer);
  27.     glBufferData(GL_ELEMENT_ARRAY_BUFFER, 6 * 2, axiiIBO, GL_STATIC_DRAW);
  28.  
  29.  
  30.  Render:
  31. void Render()
  32. {
  33.     glClear(GL_COLOR_BUFFER_BIT);
  34.  
  35.     // Draw the ellipsoid
  36.     glBindBuffer(GL_ARRAY_BUFFER, ellipsoidBuffer);
  37.     glVertexPointer(3, GL_FLOAT, 24, BUFFER_OFFSET(0));
  38.     glNormalPointer(GL_FLOAT, 24, BUFFER_OFFSET(12));
  39.     glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ellipsoidIndexBuffer);
  40.     glUniformMatrix4fv(model, 1, true, ellipsoidMatrix);
  41.     glDrawElements(GL_LINE_STRIP, 2 * slicesCount * (stacksCount - 1) + slicesCount + 1, GL_UNSIGNED_SHORT, BUFFER_OFFSET(0));
  42.  
  43.     // Draw the axii lines
  44.     glBindBuffer(GL_ARRAY_BUFFER, axiiBuffer);
  45.     glVertexPointer(3, GL_FLOAT, 24, BUFFER_OFFSET(0));
  46.     glColorPointer(3, GL_FLOAT, 24, BUFFER_OFFSET(12));
  47.     glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, axiiIndexBuffer);
  48.     glUniformMatrix4fv(model, 1, true, mat4());
  49.     glDrawElements(GL_LINES, 6, GL_UNSIGNED_SHORT, BUFFER_OFFSET(0));
  50.  
  51.     glFlush();
  52. }
Add Comment
Please, Sign In to add comment