位置: 编程技术 - 正文

OpenGL矩阵API的使用方法(opengl arb)

编辑:rootadmin

推荐整理分享OpenGL矩阵API的使用方法(opengl arb),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl matrix,opengl画矩形函数,opengl模型变换矩阵,opengl画矩形函数,opengl 矩阵,opengl matrix,opengl mvp矩阵 理解 举例手写,opengl模型变换矩阵,内容如对您有帮助,希望把文章链接给更多的朋友!

在OpenGL 1.x中包含了一系列的矩阵操作函数,下面我对这些函数的使用方式做个总结。

在介绍这些函数之前,我先引入一些数学符号以便更简明的表达我的意思。下面就开始了:

1,M表示当前矩阵;

2,R表示旋转矩阵;

3,S表示缩放矩阵;

4,T表示平移矩阵;

5,K[i]表示当前矩阵栈的顶部元素, K表示一个数组,i表示栈的顶部元素的索引;

6,I表示单位矩阵。

好了,符号就这么几个,下面开始介绍各个函数的使用方式。

1,glMatrixMode(int mode);

这个函数用来设定哪种矩阵为当前的操作矩阵,mode的&#;可以为以下常量的一种:

(1) GL_PROJECTION

(2) GL_MODELVIEW

(3) GL_TEXTURE

(4) GL_COLOR (这个需要ARB_image扩展)

2, glLoadIdentity();

将当前矩阵设置为单位矩阵, 也就是

M = I.

3,glPushMatrix();

将当前矩阵保存到矩阵栈的栈顶,也就是

K[i&#;&#;] = M.

每种矩阵栈的深度是不一样的,MODELVIEW的深度至少为, 其它类型的深度至少为2.

每种矩阵栈的最大深度可以用glGetIntegerv方法查询出来,具体如下:

(1) glGetIntegerv(GL_MAX_MODELVIEW_STACK_DEPTH, &max) 获取MODELVIEW栈的最大深度

OpenGL矩阵API的使用方法(opengl arb)

(2) glGetIntegerv(GL_MAX_PROJECTION_STACK_DEPTH, &max) 获取PROJECTION栈的最大深度

(3) glGetIntegerv(GL_MAX_TEXTURE_STACK_DEPTH, &max) 获取TEXTURE栈的最大深度

同样的,去掉MAX_字符可以获取当前栈的深度。

4,glRotate(float angle, float x, float y, float z)

在当前矩阵上乘以一个旋转矩阵,也就是

M = M * R

angle表示要旋转多少度,该&#;是个角度&#;(degree, 0 - 度)的形式.

<x, y, z>表示旋转轴,一般为单位向量。

5,glScale(float x, float y, float z)

在当前矩阵上乘以一个缩放矩阵, 也就是

M = M * S

<x, y, z>表示相对应的顶点坐标的x,y,z的缩放比,默认&#;都是1.

6,glTranslatef(float x, float y, float z)

在当前矩阵上乘以一个平移矩阵, 也就是

M = M * T

<x,y,z>表示偏移量。

7, glPopMatrix()

将矩阵栈顶部的元素弹出并赋给当前矩阵

M = K[--i];

8,glLoadMatrix(GLfloat* m)

将m的&#;赋给当前矩阵

M = m;

9, glMultMatrix(GLfloat* m)

在当前矩阵上乘以另一个矩阵m, 也就是

M = M * m

opengl shader 学习 随笔四 一个典型的shader程序,看完这个基本shader的流程就没有问题了。constchar*vShader={//Vertexshader#versioncorenuniformUniforms{vec3translation;floatscale;vec4rotation;boolenable

OpenGL基础图形编程 转载:

OpenGL学习日记-..--简单裁剪 Opengl中,除了视景体的立方体裁剪平面之外,另外还可以额外指定多达6个裁剪平面,对视景体做进一步限制。每一个平面都由平面公式定义:AxByCzD=0.裁

标签: opengl arb

本文链接地址:https://www.jiuchutong.com/biancheng/373176.html 转载请保留说明!

上一篇:Begin OpenGL with Python-1st Day,draw a simple sample.

下一篇:opengl shader 学习 随笔四(opengl shader实例)

  • 一般纳税人没有开票要交税吗
  • 设计印刷合同
  • 个人分红怎么算
  • 应付账款周转率和存货周转率公式
  • 进项税额转出还能认定虚开吗
  • 电汇凭证的日期为什么必须是当天
  • 无形资产摊销年限
  • 公司注册住所要求
  • 建筑企业预收款开具不征税发票为什么要预缴
  • 住房补贴是不是编制才有
  • 汇总记账凭证核算组织程序的缺点主要有
  • 网上代购收取手机费吗
  • 工业企业生产费用要素一般有哪些
  • 营改增 旅游服务
  • 三栏式和多栏式的账目有哪些
  • 营改增后哪些费用可以抵扣
  • 企业哪些费用属于重要费用
  • 发票抵税是指哪些内容
  • 社保公积金会计分录怎么写
  • 有限合伙企业对外转让财产份额
  • 城市维护建设税减免税优惠政策
  • 普通发票费用会计分录
  • 个人缴纳工会费可以在工资里面扣交吗
  • 上报汇总之后怎么申报
  • 增值税代扣代缴抵扣
  • 没有车船税证明可以年检吗
  • 补充养老保险计算器
  • 增值税一般纳税人与小规模纳税人的区别
  • 汽车修理费抵扣怎么做账
  • 增值税的附加税有哪些,税费多少
  • 原材料进口关税计入成本吗
  • 车船税可以抵扣个税吗
  • 外购货物应抵扣的进项税额
  • 简述php操作mysql数据库的基本步骤
  • 公司转让账务处理,账户抹平
  • 上级拨付的债券会计分录
  • 建筑企业跨省经营
  • uni-app介绍
  • echarts图大小设置
  • 禁用dos命令
  • 城镇土地使用税优惠政策
  • 财政拨款结余的明细科目有哪些
  • 地税代开的发票怎么计提税款?
  • 如何查看发票是否作废
  • 营业账簿印花税申报流程
  • 私车公用的汽油费计入哪个科目
  • 评估价计入什么科目
  • 小规模纳税人实行简易征收办法
  • 下脚料属于什么科目
  • 工地上报销项目有哪些
  • 电子承兑汇票是24小时签收吗
  • 购买农产品进行销售要交税吗
  • 简易计税转出
  • 新手入门会计
  • 公用事业费属于什么会计科目
  • mysql 5.7.18 winx64密码修改
  • 如何禁用windows defender service
  • linux 清理
  • mmc无法创建管理单元win10
  • imac触发角
  • linux系统了解
  • 微软被告
  • macos 网速慢
  • centos设置ftp
  • Win7登录密码
  • win10预览版选哪个
  • win7无法注册dll文件
  • spes监控原理
  • opengl入门教程(精)
  • 苹果手机如何给视频添加字幕
  • 批处理程序教程
  • jquery和css的区别
  • 仿京东首页html5
  • js异步实现原理
  • 死循环代码
  • javascript组成
  • 如何获取电子户口簿
  • jquery加载中
  • 珠宝消费税怎么征收
  • 2023年四川职工医保缴费基数
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设