位置: 编程技术 - 正文

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实例)

  • 销售软件系统退货怎么退
  • 加班费计入个税吗
  • 确认了收入但是没收入
  • 附加税税负
  • 预期信用损失率计算公式
  • 甲供材入账
  • 药品费用开具增值税发票项目应为什么
  • 增值税包括哪些内容
  • 销户之后可以重新申请吗
  • 社保公积金计提是本月计提下月
  • 技术转让所得免征企业所得税
  • 租赁算投资吗
  • 劳保费计入管理费用的什么
  • 应计未计成本税前扣除年限
  • 在建工程的利息支出
  • 支付境外咨询费代扣代缴企业所得税
  • 股权转让如何避免缴纳个税
  • 工程物资应该计入哪里
  • 总账会计需要做账吗
  • 少付的运费如何做分录
  • 专用发票的审核要多久
  • 企业计提的工资如何算
  • 出租房电费怎么结算
  • 收购农产品再销售最新税收政策
  • 小规模公司注销流程及费用
  • 包装破损导致物品损坏
  • 最强笔记本2021
  • 支付工资属于费用吗
  • 上市公司转让股票所得要交个税吗?
  • 火灾造成存货损失应该作为报废还是盘亏
  • 图像分割 unet
  • 运费抵扣怎么算
  • vue 自动部署
  • PostMan接口测试(很全面的接口测试教程)
  • 程序员的表白情书
  • 使用二氧化碳灭火器时人应该站在什么位置
  • 企业取得交易性金融资产时
  • lua命令库
  • 代扣代缴应付职工薪酬账务处理
  • 礼品赠送纳税标准
  • 未分配利润在科目余额表里怎么看
  • 织梦如何采集文章
  • 股权激励如何做会计分录
  • 个体户需要
  • 账面价值低于可抵税收
  • 持有至到期投资减值准备
  • 暂估入账的固定资产
  • 免税出口是什么意思
  • 为什么要把工资说的好高呢
  • 什么发票可以抵扣税
  • 无发票 入账
  • 什么是活页式账户
  • fedora19
  • windows终端美化
  • linux中cat命令的用法含义
  • CentOS ip_conntrack: table full, dropping packet 的解决方法
  • xp系统的本地连接在哪里打开
  • win10更新中途怎么取消
  • win10系统附件在哪里
  • win7显示桌面的组合键
  • 安卓textview设置文本
  • cocos2dx4.0入门
  • vue缓存数据
  • 深入浅出python中文第二版pdf
  • jquery上下移动
  • android 按键
  • Linux 中的Edquota命令
  • 优化ui界面是啥意思
  • bud3d跑酷
  • jquery iframe
  • 简述jquery的常用方法
  • python中的堆和栈
  • python发送邮件的模块
  • python抓取整站链接
  • js获取鼠标点击位置
  • 国家税务总局发票查询官网
  • 美国海关税收起征点
  • 变更法人需要法人本人去吗
  • 昌隆鑫实业集团招聘
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设