位置: 编程技术 - 正文

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:mb_encode_numericentity()的用法_mbstring函数
  • win11绿屏是什么原因
  • springboot集成camunda+bpmn
  • 提前支付的费用记账
  • PHP:spl_autoload_register()的用法_spl函数
  • php foreach循环遍历数组
  • 房产税土地税用不用计提
  • 固定资产以前年度未入账怎么处理
  • vue模块拖拽
  • chat p
  • 35.JavaScript对象和数组的解构赋值基础详解、let陷阱、函数参数解构
  • 反向选择命令
  • system error
  • 社保缴费基数3400
  • 企业会计准则规定了
  • 织梦模板官网
  • mongodb中主键的默认格式是哪个?
  • 给员工进行拓展活动
  • 购买电脑的过程
  • 偷税行为如何处理
  • 商业汇票分为哪几种
  • 信用减值损失属于公允价值变动收益吗
  • 小企业附加税减免政策
  • 建筑工程审计流程
  • 长期股权投资收益会计处理
  • 分期收款提供劳务 是什么
  • 进项税红字发票怎么样申报
  • 投资主体将其拥有的货币或产业资本
  • 发票作废怎么写说明
  • 冲减应收账款是什么意思
  • 研发费用怎样进成本科目
  • 无形资产如何入股公司
  • 企业建账可以处于哪几个阶段
  • sql server 修改
  • sqlserver临时表 效率
  • sql 截取字符串某个字符之后
  • Navicat连接MySQL报错
  • Windows 2008 R2的C盘空间不够的解决方法
  • freebsd 升级
  • win10系统本地用户和组怎么添加
  • 简述在windows中创建用户的步骤
  • vim多行匹配
  • jquery 插件编写
  • python基本用法
  • bootstrap技术
  • vue中的组件通信
  • hbuilderx打包app教程
  • 查询某个时间段
  • jquery使用jsonp
  • 后缀名为是什么意思
  • androidのLinearLayout中组件右对齐
  • 工具类软件有哪些
  • 广东省电子学校
  • 商事登记本
  • 开展和组织开展什么区别
  • 党建共建的目的意义
  • 公司外购设备对外投资账务处理
  • 中国税务局官网发票查询系统
  • 浙江农村医保手机上怎么缴费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设