美文网首页
OpenGL 渲染基础代码解析

OpenGL 渲染基础代码解析

作者: _君莫笑_ | 来源:发表于2019-05-17 13:32 被阅读0次

    一、工具类

    1.GLTool 包含了了⼤大部分GLTool中类似C语⾔言的独⽴立函数
    2.GLMatrixStack 矩阵的工具类, 可以加载单元矩阵/矩阵/矩阵相乘/压栈/出栈/缩放/平移/旋转
    3.GLFrame 矩阵工具类,表示位置通过设置 vOrigion, vForward, vUp
    4.GLFrustum 矩阵工具类, 用来快速设置正/透视投影矩阵, 完成坐标 3D->2D的映射过程
    5.GLBatch 三角形批次类, 帮助类, 它可以传输顶点/光照/纹理/颜色数据到存储着色器中

    二、自定义常用的全局变量

    1.GLShaderManager shaderManager;

    • 存储着色器管理工具类似于 AFN 的管理者 manager, 用来初始化等等操作

    2.GLMatrixStack modelViewMatrix;

    • 模型矩阵

    3.GLMatrixStack projectionMatrix;

    • 投影矩阵

    4.GLFrame cameraFrame;

    • 设置观察者位置

    5.GLFrame objectFrame;

    • 设置图形环绕时视图坐标

    //投影设置
    6.GLFrustum viewFrustum; //容器器类(7种不不同的图元对应7种容器器对象)

    • 设置图元绘制时投影方式
      a.GLBatch pointBatch;
      b.GLBatch lineBatch;
      c.GLBatch lineStripBatch;
      d.GLBatch lineLoopBatch; GLBatch triangleBatch;
      e.GLBatch triangleStripBatch;
      f.GLBatch triangleFanBatch;

    三、常用的重要函数

    main函数

    1. int main(int argc, char* argv[])
    程序入口.OpenGL 是⾯面向过程编程.所以你会发现利用OpenGL处理图形/图像都是链式形式.以及基于OpenGL封装的图像处理框架也是链式编程即调用各个函数方法
    2.void ChangeSize(int w, int h)
    ⾃自定义函数.通过 glutReshaperFunc (函数名)注册为重塑函数.当屏幕⼤小发⽣变化/或者第⼀次创建窗⼝时,会调⽤用该函数调整窗口⼤小/视⼝大小.
    3.void RenderScene(void)
    ⾃自定义函数.通过 glutDisplayFunc (函数名)注册为显示渲染函数.当屏幕发⽣生变化/或者开发者主动渲染会调⽤用此函数,⽤用来实现数据->渲染过程
    1.系统⾃自动触发
    2.开发者⼿手动调⽤用函数触发.
    4.void SetupRC()
    设置你需要渲染的图形的 相关顶点数据/颜⾊色数据等数
    5.void SpecialKeys(int key, int x, int y)
    键位设置,通过不同的键位对其进行设置;控制Camera的移动,从而改变视口(一般就是特殊键位, 类似 f1, f2, 上下左右, 空格)
    6.void KeyPressFunc(unsigned char key, int x, int y)
    用户敲击”空格”键位触发:
    1.判断⽤用户输⼊入的是”空格”
    2.设置窗⼝口名称
    3.手动触发重新渲染

    相关文章

      网友评论

          本文标题:OpenGL 渲染基础代码解析

          本文链接:https://www.haomeiwen.com/subject/biunaqtx.html