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);

转载于:https://www.cnblogs.com/sourcedigger/archive/2013/02/05/2893453.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值