欢迎来到天天文库
浏览记录
ID:55264857
大小:40.00 KB
页数:2页
时间:2020-05-08
《走进3维图形世界.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、走进3维图形世界-GLScene学习笔记之一2014-09-03•未分类•2条评论•swish•浏览374次前言一、三维世界的构成我们认识的世界是三维的,一般会标记成分别对应于经度、纬度、海拨来标记每一个位置。而我们认识周围世界的方式,是通过我们的眼睛获取三维世界的信息,然后交由我们的大脑进行处理,从而形成我们的影像。上面是从静态分析的角度去看,但我们看到的世界是动态的,鸟儿在唱歌,车辆在奔跑,这里我们对世界的认识就是另一个维度:时间维度。时间的流逝,坐标的变换就形成了我们流动的影像。在计算机的三维世界里,我们也一样采用X、Y、Z三个
2、坐标,然后通过摄像机来当做我们的眼睛,然后通过定时器来控制时间维度,来形成动画效果。二、GLSceneGLScene是Delphi下的一个三维组件库(glscene.sourceforge.net),至少到XE6,FMX的效率要比GLScene差的多,所以我们以GLScene为学习的基础。首先,了解一下GLScene的坐标系。GLScene的坐标系中,坐标原点(0,0,0)始终位于中心位置,所以,如果是一个边长为10的立方体,其8个顶点的坐标我们就可以推测和计算出来。如果要让物体贴着另一个物体,很明显,物体的中心位置是要有所偏移的。其
3、次,就象我们站在楼顶上,楼房又立于大地之上,地球又跟随太阳运动,而太阳又只是银河系的一部分一样,GLScene三维世界的物体(对象)也是有隶属关系的,它跟着父对象移动,它的位置采用的是相对于父对象的位置,只要调用父对象的坐标,子对象也就自然跟着移动了。那么接下来,我们了解下GLScene中的组件与我们现实现世的对应关系。1、场景(TGLScene)相当于我们的三维世界,其中的各种对象对应于现实世界的各种物体;2、相机(TGLCamera)相当于我们的眼睛,是我们观察数码世界的窗口;3、观察者(TGLSceneViewer)相当于我们观
4、察三维场景的小窗口,负责将场景呈现到显示器上;4、灯光(TGLLight)相当于我们现实世界的各种光源;5、节拍控制器(TGLCadencer)在现实世界中,我翻译的名称可能不准确,它控制着三维世界的动画节拍,是三维世界中动画效果的控制器,我们可以认为它控制着三维世界的时间这一维度。上面的五种元素,构成了GLScene的三维世界,也是我的这份学习笔记的一个总体概述。第一章搭建场景现实世界中,一个场景也是一块一块的搭建起来的,GLScene的场景同样也需要我们一步步搭建起来:1、放置场景对象TGLScene的一个实例。2、放置观察者,在
5、窗体上加一个TGLSceneViewer组件,建立一个观察的小窗口。后面要关联一个相机(Camera)属性,以便让我们有一个观察者视角。3、双击场景对象,或者右击,打开场景设计器。4、放置场景中的物体,我们在这儿假设放一个立方体(TGLCube),这里注意一个问题,就是场景中所有对象默认都被放到原点(0,0,0)的,所以要注意放好后,调整位置(Position)。调整位置时,掌握一点:眼见为虚,所谓一叶障目,不见泰山,调整位置时,要以计算的值为准,然后结合呈现的效果做一些调整。由于目前没有相机,所以我们看不到,不要着急,后面就好了。5
6、、放置相机(TGLCamera),将相机的目标对象属性(TargetObject)指向第三步创建的立方体。相机的位置和上面的立方体拉开点距离,你总不能在自己的肚子里看自己长啥吧,一个道理,距离才能产生美。6、放置灯光(TGLLightSource),调整灯光位置和方向(Direction),让其照耀立方体,包在封闭物体内部的灯光是透不出来的。7、关闭场景设计器。8、设置观察者的相机(Scene)属性为第5步中的相机,整个世界就呈现在我们眼前了。好了,运行程序吧,你可以看到你的第一个基本的三维场景了。欢迎你来到三维数字世界。
此文档下载收益归作者所有