OpenGl 投影矩阵 相机位置 方法参数说明

//设置透视投影
Matrix.frustumM(mProjectMatrix, 0, -ratio, ratio, -1, 1, 3, 7);
//设置相机位置
Matrix.setLookAtM(mViewMatrix, 0, 0, 0, 5f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);

说明:相机位置 参照世界坐标系 eyeZ     平截面 以相机位置为原点
//物体默认为 x,y,z 世界坐标系右手规则  

  (0.0,5)

如下正方体 

final float cubePositions[] = {
        -1.0f,1.0f,1.0f,    //正面左上0
        -1.0f,-1.0f,1.0f,   //正面左下1
        1.0f,-1.0f,1.0f,    //正面右下2
        1.0f,1.0f,1.0f,     //正面右上3
        -1.0f,1.0f,-1.0f,    //反面左上4
        -1.0f,-1.0f,-1.0f,   //反面左下5
        1.0f,-1.0f,-1.0f,    //反面右下6
        1.0f,1.0f,-1.0f,     //反面右上7
};
final short index[]={
        6,7,4,6,4,5,    //后面
        6,3,7,6,2,3,    //右面
        6,5,1,6,1,2,    //下面
        0,3,2,0,2,1,    //正面
        0,1,5,0,5,4,    //左面
        0,7,3,0,4,7,    //上面
};

float color[] = {
        0f,1f,0f,1f,
        0f,1f,0f,1f,
        0f,1f,0f,1f,
        0f,1f,0f,1f,
        1f,0f,0f,1f,
        1f,0f,0f,1f,
        1f,0f,0f,1f,
        1f,0f,0f,1f,
};

Matrix.frustumM(mProjectMatrix, 0, -ratio, ratio, -1, 1, 3, 20);

//设置相机位置  正面 x 右偏 0.1 y上方 2.0
Matrix.setLookAtM(mViewMatrix, 0, 0.1f, 2.0f, 10.0f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);

//设置相机位置 正面 x 右偏 0.1 y上方 6.0

Matrix.setLookAtM(mViewMatrix, 0, 0.1f, 6.0f, 10.0f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);

从背面看

Matrix.setLookAtM(mViewMatrix, 0, 0.5f, 6.0f, -10.0f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);

 

Matrix.setLookAtM(mViewMatrix, 0, -0.5f, 6.0f, -10.0f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
总目录   第一章 OpenGL与三维图形世界     1.1 OpenGL使人们进入三维图形世界     1.2 OpenGL提供直观的三维图形开发环境     1.3 OpenGL称为目前三维图形开发标准   第二章 OpenGL概念建立     2.1 OpenGL基本理解     2.2 OpenGL工作流程     2.3 OpenGL图形操作步骤   第三章 Windows NT环境下的OpenGL     3.1 Windows NT下的OpenGL函数     3.2 OpenGL基本功能     3.3 Windows NT下OpenGL结构   第四章 OpenGL基本程序结构   第五章 OpenGL数据类型和函数名   第六章 OpenGL辅助库的基本使用     6.1 辅助库函数分类     6.2 辅助库应用示例   第七章 OpenGL建模     7.1 描述图元      7.1.1 齐次坐标      7.1.2 点      7.1.3 线      7.1.4 多边形     7.2 绘制图元      7.2.1 定义顶点      7.2.2 构造几何图元   第八章 OpenGL变换     8.1 从三维空间到二维平面      8.1.1 相机模拟      8.1.2 三维图形显示流程      8.1.3 基本变换简单分析     8.2 几何变换      8.2.1 两个矩阵函数解释      8.2.2 平移      8.2.3 旋转      8.2.4 缩放和反射      8.2.5 几何变换举例     8.3 投影变换      8.3.1 正射投影      8.3.2 透视投影     8.4 裁剪变换     8.5 视口变换     8.6 堆栈操作   第九章 OpenGL颜色     9.1 计算机颜色      9.1.1 颜色生成原理      9.1.2 RGB色立体     9.2 颜色模式      9.2.1 RGBA模式      9.2.2 颜色表模式      9.2.3 两种模式应用场合     9.3 颜色应用举例   第十章 OpenGL光照     10.1 真实感图形基本概念     10.2 光照模型      10.2.1 简单光照模型      10.2.2 OpenGL光组成      10.2.3 创建光源      10.2.4 启动光照     10.3 明暗处理     10.4 材质      10.4.1 材质颜色      10.4.2 材质定义      10.4.3 材质RGB值和光源RGB值的关系      10.4.4 材质改变   第十一章 OpenGL位图和图像     11.1 位图      11.1.1 位图和字符      11.1.2 当前光栅位置      11.1.3 位图显示     11.2 图像      11.2.1 象素读写      11.2.2 象素拷贝      11.2.3 图像缩放      11.2.4 图像例程   第十二章 OpenGL纹理     12.1 基本步骤     12.2 纹理定义     12.3 纹理控制      12.3.1 滤波      12.3.2 重复与约简     12.4 映射方式     12.5 纹理坐标       12.5.1 坐标定义       12.5.2 坐标自动产生   第十三章 OpenGL复杂物体建模     13.1 图元扩展      13.1.1 点和线      13.1.2 多边形     13.2 法向计算      13.2.1 法向基本计算方法      13.2.2 法向定义     13.3 曲线生成      13.3.1 曲线绘制举例      13.3.2 曲线定义和启动      13.3.3 曲线坐标计算      13.3.4 定义均匀间隔曲线坐标值     13.4 曲面构造      13.4.1 曲面定义和坐标计算      13.4.2 定义均匀间隔的曲面坐标值      13.4.3 纹理曲面      13.4.4 NURBS曲面   第十四章 OpenGL特殊光处理     14.1 光照模型      14.1.1 全局环境光      14.1.2 近视点与无穷远视点      14.1.3 双面光照     14.2 光源位置与衰减     14.3 聚光与多光源      14.3.1 聚光      14.3.2 多光源与例程     14.4 光源位置与方向的控制     14.5 辐射光   第十五章 OpenGL效果处理     15.1 融合      15.1.1 Alpha值与融合      15.1.2 融合因子      15.1.3 融合实例     15.2 反走样      15.2.1 行为控制函数      15.2.2 点和线的反走样      15.2.3 多边形的反走样     15.3 雾      15.3.1 雾的概论和例程      15.3.2 雾化步骤   第十六章 OpenGL显示列表     16.1 显示列表概论      16.1.1 显示列表的优势      16.1.2 显示列表的适用场合     16.2 创建和执行显示列表      16.2.1 创建显示列表      16.2.2 执行显示列表     16.3 管理显示列表      16.4 多级显示列表   第十七章 OpenGL帧缓存和动画     17.1 帧缓存      17.1.1 帧缓存组成      17.1.2 缓存清除     17.2 动画
前言 第1章OpenGL简介 1.1什么是OpenGL? 1.2一段简单的OpenGL代码 1.3OpenGL函数的语法 1.4OpenGL是个状态机 1.5OpenGL渲染管线 1.5.1显示列表 1.5.2求值器 1.5.3基于顶点的操作 1.5.4图元装配 1.5.5像素操作 1.5.6纹理装配 1.5.7光栅化 1.5.8片断操作 1.6与OpenGL相关的函数库 1.6.1包含文件 1.6.2GLUT,OpenGL实用工具包 1.7动画 1.7.1暂停刷新 1.7.2动画=重绘+交换 第2章状态管理和绘制几何物体 2.1绘图工具箱 2.1.1清除窗口 2.1.2指定颜色 2.1.3强制完成绘图操作 2.1.4坐标系统工具箱 2.2描述点、直线和多边形 2.2.1什么是点、直线和多边形? 2.2.2指定顶点 2.2.3OpenGL几何图元 2.3基本状态管理 2.4显示点、直线和多边形 2.4.1点的细节 2.4.2直线的细节 2.4.3多边形的细节 2.5法线向量 2.6顶点数组 2.6.1步骤1:启用数组 2.6.2步骤2:指定数组的数据 2.6.3步骤3:解引用和渲染 2.7缓冲区对象 2.7.1创建缓冲区对象 2.7.2激活缓冲区对象 2.7.3用数据分配和初始化缓冲区对象 2.7.4更新缓冲区对象的数据值 2.7.5清除缓冲区对象 2.7.6使用缓冲区对象存储顶点数据数据 2.8属性组 2.9关于创建多边形表面模型的一些提示 2.9.1例子:创建一个二十面体 第3章视图 3.1简介:照相机比喻 3.2.1一个简单的例子:绘制立方体 3.1.2通用的变换函数 3.2视图和模型变换 3.2.1对变换进行思考 3.2.2模型变换 3.2.3视图变换 3.3投影变换 3.3.1透视投影 …… 第4章颜色 第5章光照 第6章混合、抗锯齿、雾和多边形偏移 第7章显示列表 第8章绘制像素、位图、字体和图像 第9章纹理贴图 第10章帧缓冲区 第11章分格化和二次方程表面 第12章求值器和NURBS 第13章选择和反馈 第14章OpenGL高级技巧 第15章OpenGL着色语言 附录A操作顺序 附录B状态变量 附录COpenGL和窗口系统 附录DGLUT(OpenGL实用工具库)基础知识 附录E计算法线向量 附录F齐次坐标和变换矩阵 附录G编程提示 附录HOpenGL的不变性规则 附录IOpenGL着色语言内置的变量和函数 术语表

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值