OGRE GLRenderSystem

  1. 视口
    • glViewport(x, y, w, h);
  2. 清理
    • glClearColor(colour.r, colour.g, colour.b, colour.a);
    • glClearDepth(depth);
    • glEnable(GL_DEPTH_TEST);
    • glEnable(GL_SCISSOR_TEST);
    • glClear(flags);
    • glDisable(GL_SCISSOR_TEST);
  3. 多边形模式
    • glPolygonMode(GL_FRONT_AND_BACK, glmode);
  4. 投影矩阵
    • glMatrixMode(GL_PROJECTION); 
    • glLoadMatrixf(mat); 
    • glMatrixMode(GL_MODELVIEW);
  5. 视图矩阵
    • glMatrixMode(GL_MODELVIEW); 
    • glLoadMatrixf(mat);
  6. 材料
    • glDisable(GL_COLOR_MATERIAL);
    • glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, f4val);
    • glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, f4val);
    • glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, f4val);
    • glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, f4val);
    • glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess);
  7. 光照
    • glEnable(GL_LIGHTING);
    • glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
    • glLightf( gl_index, GL_SPOT_CUTOFF, 180.0 );
    • glLightfv(gl_index, GL_DIFFUSE, f4vals); 
    • glLightfv(gl_index, GL_SPECULAR, f4vals); 
    • glLightfv(gl_index, GL_AMBIENT, f4vals);
    • glLightfv(lightindex, GL_POSITION, vec.ptr());
    • glLightf(gl_index, GL_CONSTANT_ATTENUATION, lt->getAttenuationConstant());
    • glLightf(gl_index, GL_LINEAR_ATTENUATION, lt->getAttenuationLinear());
    • glLightf(gl_index, GL_QUADRATIC_ATTENUATION, lt->getAttenuationQuadric());
    • glEnable(gl_index);
    • glDisable(GL_FOG);
  8. 混合
    • glDisable(GL_BLEND);
    • glBlendEquation(func);
  9. 透明
    • glDisable(GL_ALPHA_TEST);
    • glDisable(GL_VERTEX_PROGRAM_POINT_SIZE);
    • glDisable(GL_POINT_SPRITE);
  10. 多边形
    • glDisable(GL_POLYGON_OFFSET_FILL); 
    • glDisable(GL_POLYGON_OFFSET_POINT);
    •  glDisable(GL_POLYGON_OFFSET_LINE);
  11. 面剔除
    • glEnable( GL_CULL_FACE ); 
    • glCullFace( cullMode );
  12. 渲染模式
    • glShadeModel(GL_SMOOTH);
  13. 视图矩阵
    • glMatrixMode(GL_MODELVIEW); glLoadMatrixf(mat);
  14. 法线
    • glDisable(GL_NORMALIZE);
  15. 绑定顶点,法线,纹理
    • glBindBufferARB(GL_ARRAY_BUFFER_ARB, hwGlBuffer->getGLBufferId());
    • glVertexPointer();
    • glEnableClientState( GL_VERTEX_ARRAY );
    • glNormalPointer();
    • glEnableClientState( GL_NORMAL_ARRAY );
    • glClientActiveTextureARB(GL_TEXTURE0 + i);
    • glTexCoordPointer();
    • glEnableClientState( GL_TEXTURE_COORD_ARRAY );
  16. 绑定索引,绘图
    • glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, getGLBufferId());
    • glDrawElements(primType, op.indexData->indexCount, indexType, pBufferData);
posted @ 2013-02-05 16:03  sourcedigger  阅读(323)  评论(0编辑  收藏  举报