位置: 编程技术 - 正文

基于 OpenGL 进行 3D 图形开发(opengl示例)

编辑:rootadmin
转载于: 开发的一般思路

推荐整理分享基于 OpenGL 进行 3D 图形开发(opengl示例),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl示例,opengl基础知识,opengl软件实现,opengl软件实现,opengl基础知识,opengl基础,opengl基础知识,opengl基础,内容如对您有帮助,希望把文章链接给更多的朋友!

3D 开发主要分为三个步骤:建模、渲染、逻辑控制。

建模,指通过一些基本图元如点、线、三角形、多边形将物体画出来,一般使用 3DMax、MilkShape 等建模工具来完成。具体来说,建模涉及模型的构建、贴纹 理、制作动画等。

渲染,即使用 OpenGL 图形接口将模型在计算机上画出来。

逻辑控制,若要模型动起来,需要根据时间计算模型各个顶点的坐标,这个通过 程序逻辑来控制。

建模

用 3dMax 等工具建模的一般思路是:

用基本形状,如三角形、多边形、曲面、球体、立方体等,把物体轮廓构件出来通过拉伸、调整顶点等方法对细节进行处理

建模工具有很多,如 3DMax、Maya、Blender、MilkShape、AC3D 等,其中 MilkShape 短小精悍,容易上手比较推荐新手使用。

Milkshape :建模、贴纹理、加骨骼、做动画

mode: 做模型group: 构成模型的各个子部分material:往各个子部分上贴材质joint:骨骼结点,现在还没想清楚这些 joint 的作用是什么animation:设置关键祯,生成动画生成的模型&#;式是 .ms3d

Milkshape 的教程可在这里下载。

保存模型有很多种&#;式,如 md2、ms3d、3ds、obj等。

md2 速度快,但数据量大,典型的以空间换时间; ms3d 保存的数据量小,但需要的计算比较多md2 的动画可能不如 ms3d 细腻OpenGL based Graphics

It's a state machine - Setup the stage, lighting, actors... Then draw it!

使用 OpenGL 进行渲染的总体思路clear the screen:glClear (XXX | XXX)Reset the view:glLoadIdentitymove / rotate axis:glTranslatef (x, y, z), glRotatef ()draw scene: glBegin, ..., glEndglDrawArray/glDrawElements 完成点、线、多边形等基本图元的绘制贴纹理生成纹理

OpenGL 中的纹理通过一个唯一号引用,通过函数 glBindTexture() 实现。你 可以自己指定这个唯一号,或者通过调用 glGenTextures () 函数生成一个唯一 号。

纹理管理器

在实际开发时,往往需要一个纹理管理器提供纹理的装载、释放、获取等功能, 下面的文章介绍了一个纹理管理器的设计和实现。

A Singleton Texture Manager for OpenGL

OpenGL 的坐标系统变换基于 OpenGL 进行 3D 图形开发(opengl示例)

OpenGL 的重要功能之一是将三维的世界坐标经过变换、投影等计算,最终算出它在显示设备上对应的位置。

每次计算屏幕输出时,OpenGL 采取这样的方式进行:

更复杂的流程是:

简单的讲,OpenGL 中从三维场景到屏幕图形要经历如下所示的变换过程:

其中四种坐标经常要在程序中用到:物体坐标(也叫模型坐标、局部坐标),世界坐标,&#;坐标(也叫观察坐标)和设备坐标.

物体坐标:

以物体某一点为原点而建立的“世界坐标”,该坐标系仅对该物体适用,用来简化对物体各部分坐标的描述。物体放到场景中时,各部分经历的坐标变换相同,相对位置不变,所以可视为一个整体,与人类的思维习惯一致;

世界坐标:

是OpenGL中用来描述场景的坐标,Z&#;轴垂直屏幕向外,X&#;从左到右,Y&#;轴从下到上,是右手笛卡尔坐标系统。我们用这个坐标系来描述物体及光 源的位置。 OpenGL 中有一个坐标转换矩阵栈 (Modeview),栈顶就是当前坐标变换矩阵,进入 OpenGL 管道的每个坐标 (齐次坐标)都会乘上这个矩阵,结果才是对应点在场景中的世界坐标。将物体放到场景中也就是将物体平移到特定位置、旋转一定角度,这些操作都是坐标变换。

&#;坐标(观察坐标):

是以视点为原点,以视线的方向为Z&#;轴正方向的坐标系中的方向。OpenGL管道会将世界坐标先变换到&#;坐标,然后进行裁剪,只有在视线范围(视见 体)之内的场景才会进入下一阶段的计算。 OpenGL 有个投影变换矩阵栈 (Projection),栈顶矩阵就是当前投影变换矩阵,负责将场景各坐标变换到&#;坐标。由于所得到的结果是裁剪后的场景部分,称为裁剪坐标。

设备坐标:

OpenGL的重要功能之一就是将三维的世界坐标经过变换、投影等计算,最终算出它在显示设备上对应的位置,这个位置就称为设备坐标。在屏幕、打印机等设备上的坐标是二维坐标。

几何变换:平移、旋转、缩放glTranslatef (x, y, z)glRotatef (alpha, x, y, z);glScalef (x, y, z);

几何变换栈:为了维护几何变换, OpenGL 维护一个几何变换栈,每次几何变换, 都用相应的矩阵乘对应的栈顶元素,并替换掉上次的栈顶。

对于几何变换栈,有两个操作可以使用:

glPushMatrix(): 保存当前坐标系 ,复制当前栈顶,并把复制的内容再次放到栈顶,能够保护栈上以前的内容;glPopMatrix(): 恢复当前坐标系。投影变换 : 正交投影 (正射投影、平行投影),透视投影正交投影:将 3D 模型平行的映射到平面上,glOrtho(xleft, xright, ybottom, ytop, znear, zfar);透视投影:将 3D 模型映射到相对某个观察点的平面上, gluPerspective(fovy, aspect, znear, zfar);

深入探讨透视投影变换: 函数的意义: // 模型视图矩阵glLoadIdentity();gluLookAt(6.0, 8.0, .0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); // 旋转视点一段典型的 OpenGL 代码

一个openGL的函数 最近挺忙很久没写东西。目前在写一些opengl的东西,对于这个在3年前接触过但是没学好的语言一直耿耿于怀,其实很喜欢opengl。而且最近也没事就一直

OpenGL入门学习(十四) OpenGL入门学习[十四]OpenGL从推出到现在,已经有相当长的一段时间了。其间,OpenGL不断的得到更新。到今天为止,正式的OpenGL已经有九个版本。(1.0,1.1,1.2

opengl中矩阵变换 转载:

标签: opengl示例

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

上一篇:从头开始绘制一个圆锥体(从头开始绘制一幅画图片)

下一篇:一个openGL的函数(opengl用法)

  • 实收资本的账务处理是怎样的
  • 企业借款给个人利息如何处理
  • 天然气管道维修收费标准
  • 小规模增值税纳税申报
  • 统一企业员工
  • 签劳务合同需要什么资质
  • 合同每三个月付一次款
  • 民营企业月末要报哪些税
  • 房地产开发企业的土地使用权计入哪里
  • 代购货物的缴税情况
  • 工程项目的存货含哪些科目
  • 核定征收企业股权转让的税收
  • 积分兑换礼品需要缴纳个人所得税吗
  • 社会团体收费项目有哪些
  • 员工外出培训报告怎么写
  • 定金不买了可以退吗
  • 土地租金一次付清的会计处理怎么做?
  • 服务业的地税是什么税
  • 一般纳税人差额征税怎么做账
  • 合伙企业交个税例题
  • 税收分类编码格式
  • 房地产企业汇算清缴政策解析
  • 分公司的发票可以由总公司开吗
  • 当无法取得对应报价时,将以即时现价报单
  • 少扣个税多付工资违法吗
  • 公司哪些发票可以做成本或者费用
  • 增值税小规模纳税人优惠政策
  • 税控系统服务费怎么抵扣
  • 法律诉讼费计入什么会计科目
  • 一键ghost软件怎么用
  • win8.1怎么用
  • Win10 Build 19044.1320 (21H2)更新补丁KB5006738预览版发布(附更新修复内容汇总)
  • 小规模差额征税是什么意思
  • 新制度下财政拨款是什么
  • 房地产开发企业销售自行开发的房地产项目
  • 项目资本金现金流量表现金流入
  • 宝宝不肯坐推车怎么办
  • 年终奖的发放明目
  • react roter
  • yolov5l
  • man-s命令
  • 物流公司的会计好做吗
  • wordpress部署到github
  • 织梦如何采集文章
  • 甲供材料增值税规定
  • 进项发票已入账 未开具出口发票
  • 生产加工费税率
  • 收益性支出包括哪些内容
  • 残保金申报基数
  • 借款与报销流程设计
  • 固定资产清理的审计目标不包括
  • 财务费用报销流程最后环节出纳
  • 福利费需要通过应付职工薪酬吗
  • 买赠行为的会计处理
  • 商贸公司经营范围可以写烟酒吗
  • 其他综合收益的二级科目有哪些
  • 退休后的税费
  • 营业利润为负数表示什么
  • 减免及返还增值税怎么算
  • 车辆违章处理有什么规定
  • 收到保险公司的发票怎么做账
  • 子公司向母公司借钱
  • 票据到期无力支付怎么办
  • 当月计提公积金下月发放怎么做分录
  • 其他应收款平行记账科目
  • 工程公司存货包括哪些科目
  • centos如何更新内核
  • sxgdsenu.exe - sxgdsenu是什么进程 有什么用
  • linux系统基本操作命令
  • linux如何查看防火墙配置
  • opengl画直线函数
  • 着色器问题
  • Android游戏开发案例教程小小弹球
  • javascript正则匹配两个点
  • 显示网络配置的命令
  • js 显示当前时间
  • python生产
  • 安庆税务局窗口电话
  • 公司0申报怎么申报视频
  • 消费发票上的金额含税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设