位置: 编程技术 - 正文

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

  • 一般纳税人简易征收的适用范围
  • 蓝字发票和红字一样吗
  • 企业所得税减免优惠政策
  • 上市审计费入账
  • 税负率怎么算计算公式举例说明
  • 装修期内免租金可以办理营业执照吗
  • 技术开发免税收益方
  • 进料余料结转的征免方式
  • 预缴税款后怎么开票
  • 公司发生业务分录
  • 税务领取发票后怎么操作
  • 哪些情况下工资不低于最低工资标准的80
  • 外包物流适用范围
  • 当期的费用
  • 公司将自有车辆对外出租
  • 住房公积金利息怎么算的
  • 开票信息银行账号有一个横杠
  • 研发支出的二级科目是什么
  • 出口加工区内企业不能从事的业务有
  • 对方已认证的发票在哪里
  • 公司控股的公司下子公司有哪些
  • 零申报逾期未申报怎么补报
  • 未形成固定资产的项目卖出怎么入账
  • 商品售价有规定吗
  • 劳务公司怎么做成本
  • 以固定资产换入无形资产
  • dl是什么文件
  • 关联方借款利息所得税前扣除
  • 最好用的无人品牌子
  • java 调用go
  • 零售业的进货帐务怎么做
  • 工程建设的项目的划分?
  • 国税代开普票能作废吗
  • 在筹建期间发生的开办费
  • 值得深思的短句
  • 长期应付款核算范围有哪些
  • 怎么做一个简单的机器
  • tune a video:one-shot tuning of image diffusion models for text-to-video generation
  • javascript获取字符串长度
  • transformer for
  • 如何正确配置防火墙安全策略
  • 为什么交水利建设基金
  • 服装、眼镜、鞋、西药的发票怎么样做账比较好
  • 金税服务费必须交吗
  • 社保的残保金的用途
  • 应交税费为负数要调整吗
  • ES + Redis + MySQL,这个高可用架构设计太顶了!
  • 购买固定资产未入账
  • 印花税购销合同包括哪些
  • 企业所得税固定资产的计税基础
  • 管理费用冲减其他应付款分录
  • 残疾人工资加计扣除包括社保吗
  • 公司支出发票
  • 一次性补缴养老保险的最新规定
  • 行政事业单位支出范围和标准
  • 应计入产品成本的停工损失是
  • 企业提取盈余公积的比例
  • 商贸企业固定资产可以一次性扣除吗?
  • sql server中的文件位置可以很灵活
  • sql中nullif
  • windows帮助文件是什么
  • win8升级win10系统会卡吗
  • WIN10系统硬盘设置
  • centos 查看服务
  • win7原版系统安装与激活
  • win8系统计算器快捷键
  • ubuntu20.04安装配置
  • win7系统出现蓝屏怎么进去桌面
  • win7打开文件夹都是独立的窗口
  • win10app商店
  • dos判断变量是否为空
  • 详解linux设备
  • android开发app
  • jquery和js能混着用吗
  • activity与fragment的通信
  • python 终端
  • js的span标签
  • 小规模增值税怎么计提
  • 精神残疾人员是残疾人吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设