Advertisement
Guest User

vbo

a guest
Mar 14th, 2021
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.53 KB | None | 0 0
  1. ///    ================ init ===============
  2.    
  3. uint pp[5],cc[2];
  4. {
  5.         glGenBuffers(5,pp);
  6.         glGenBuffers(2,cc);
  7.  
  8.         for (int t=0;t<5;t++){
  9.             float am[200][2];
  10.             for (int i=0;i<200;i++){
  11.                 float w=float(i)/200*2*pi;
  12.                 float r=cos(w*(t+2))*0.25+0.75;
  13.                 am[i][0]=cos(w)*r;
  14.                 am[i][1]=sin(w)*r;
  15.             }
  16.             glBindBuffer(GL_ARRAY_BUFFER, pp[t]);
  17.             glBufferData(GL_ARRAY_BUFFER, sizeof(am), am, GL_STATIC_DRAW);
  18.         }
  19.         {
  20.             float am[200][3];
  21.             for (int i=0;i<200;i++){
  22.                 float w=cos(float(i)/200*2*pi);
  23.                 am[i][0]=w;
  24.                 am[i][1]=1-w;
  25.                 am[i][2]=0;
  26.             }
  27.             glBindBuffer(GL_ARRAY_BUFFER, cc[0]);
  28.             glBufferData(GL_ARRAY_BUFFER, sizeof(am), am, GL_STATIC_DRAW);
  29.  
  30.  
  31.             for (int i=0;i<200;i++){
  32.                 float w=cos(float(i)/200*2*pi*10)*0.5+0.5;
  33.                 am[i][0]=w;
  34.                 am[i][1]=w;
  35.                 am[i][2]=w;
  36.             }
  37.             glBindBuffer(GL_ARRAY_BUFFER, cc[1]);
  38.             glBufferData(GL_ARRAY_BUFFER, sizeof(am), am, GL_STATIC_DRAW);
  39.         }
  40.     }
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50. ///    ================ draw ===============
  51.  
  52.  
  53. {
  54.         //glEnableClientState(GL_COLOR_ARRAY);
  55.  
  56.  
  57.         glLineWidth(5);
  58.         for (int i=0;i<5;i++){
  59.             glPushMatrix();
  60.             glTranslatef((i-2)*0.5,0,0);
  61.             glScalef(0.2,0.2,0.2);
  62.             glBindBuffer(GL_ARRAY_BUFFER, pp[i]);
  63.             glVertexPointer(2,GL_FLOAT,0,0);
  64.             glBindBuffer(GL_ARRAY_BUFFER, 0);
  65.  
  66.             glBindBuffer(GL_ARRAY_BUFFER, cc[i%2]);
  67.             glColorPointer(3,GL_FLOAT,0,0);
  68.             glBindBuffer(GL_ARRAY_BUFFER, 0);
  69.  
  70.             glDrawArrays(GL_LINE_LOOP,0,200);
  71.  
  72.             glPopMatrix();
  73.  
  74.         }
  75.  
  76.         //glDisableClientState(GL_COLOR_ARRAY);
  77.         text.glerr("123");
  78.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement