14 、、、、 OpenGL --- 透视与光效透视与光效透视与光效透视与光效

14 、、、、 OpenGL --- 透视与光效透视与光效透视与光效透视与光效

ID:37728241

大小:385.15 KB

页数:34页

时间:2019-05-29

14 、、、、 OpenGL --- 透视与光效透视与光效透视与光效透视与光效_第1页
14 、、、、 OpenGL --- 透视与光效透视与光效透视与光效透视与光效_第2页
14 、、、、 OpenGL --- 透视与光效透视与光效透视与光效透视与光效_第3页
14 、、、、 OpenGL --- 透视与光效透视与光效透视与光效透视与光效_第4页
14 、、、、 OpenGL --- 透视与光效透视与光效透视与光效透视与光效_第5页
资源描述:

《14 、、、、 OpenGL --- 透视与光效透视与光效透视与光效透视与光效》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、手机应用平台软件开发14、OpenGL---透视与光效1OpenGL---透视OpenGLES中具有的两种不同的视口类型。正交(orthogonal)透视(perspective)2OpenGL---透视正交视线永远不会交汇而且物体不会改变其大小。没有透视效果。3OpenGL---透视透视物体会随着移远而越来越小,,视线会在物体移,视线会在物体移离观察者时最终交汇。这是对真实视觉的模拟,,人们就是以这种方式,人们就是以这种方式观察世界的。4OpenGL---透视toprightne

2、ar5OpenGL---透视设置正交视口通过glOrthof()通知OpenGLES你希望使用正交视口floatratio=_width/_height;//屏幕宽长比//orthographic:gl.glOrthof(-1,//left1,//right-1/ratio,//bottom1/ratio,//top0.01f,//near100.0f);//far设定视口空间的宽度为两个单位,沿x轴从-1.0到+1.0。定义空间的X和Y坐标的宽高比与视窗的宽高比(也就是全屏时的宽高比)一样,确

3、保视口的X和Y坐标遵循一样的比例。6OpenGL---透视“定义空间的X和和和和Y坐标的宽高比与视窗的宽高比(也就是全屏时的宽高比(((也就是全屏时的宽高比)一样)))一样,,,,top确保视口的X和和和和Y坐标遵循一样的比例。。。。”当视野中的三角形长宽比等于height屏幕的长宽比,视觉效果才会更好。righttop=right*(height/width)=right/(width/height)width7OpenGL---透视设置正交视口定义了near(((远(远远远))))和和和和fa

4、r(((近(近近近))))范围来描述观察的深度范围来描述观察的深度。。。near参数:说明了视口开始的位置。如果我们站在原点处,视口就位于我们的面前,习惯上使用.01或.001作为正交视口的起点。使得视口处于原点“前方”一点点。far描述观察的深度,根据你程序的需要来设定。floatratio=_width/_height;//屏幕长宽比//orthographic:gl.glOrthof(-1,//left1,//right-1/ratio,//bottom1/ratio,//top0.01f

5、,//near100.0f);//far8OpenGL---透视调用glOrthof()之后,,我们使用视窗矩形来调用,我们使用视窗矩形来调用glViewport()。gl.glViewport(0,0,(int)_width,(int)_height);切换了MatrixMode到GL10.GL_MODELVIEW,,设,设置OpenGL接受关于改变model绘制方式的调用。9OpenGL---透视调用了glEnable()并使用参数GL10.GL_DEPTH_TEST。。使。使OpenGL

6、ES检查对象的z方向的顺序。。如果我们没有。如果我们没有enable它它,它,,我们将看,我们将看到最后被绘制的对象一直显示在最前面。。这意味。这意味着着,着,,即使这个物体本来应该被更近更大的物体遮,即使这个物体本来应该被更近更大的物体遮盖盖,盖,,我们依然可以看到它,我们依然可以看到它。gl.glMatrixMode(GL10.GL_MODELVIEW);gl.glEnable(GL10.GL_DEPTH_TEST);10OpenGL---透视设置透视视口随着视线越来越远,可以看到更广阔的世

7、界物体随着远离观察者而变小使用透视时可见空间的形状称为锥台(frustum)11OpenGL---透视视野(fieldofvision)由两个角度定义的:伸出双臂手掌合拢伸向前方。你的手臂现在指向你自己锥台的z轴。现在慢慢分开你的双臂,定义了一个逐渐增大的角度。这就是用于定义观察锥台的两个角度之一,它定义了视野的宽度。12OpenGL---透视视野(fieldofvision)上下展开你的双臂,定义了另一个角度。如果你的双手间距只有三厘米,那么角度将非常小。这称为窄视野。如果你双

8、手分开两米,视野的宽度变得很大。这就是所谓宽视角(广角)。13OpenGL---透视设置透视视口我们选择一个中间值,45°。使用这个值,我们怎样计算我们的观察锥台?想象一下,从顶部看锥台是什么样子。下面是示意图:45°14OpenGL---透视设置透视视口正切函数定义为直角对边与相邻边的比率。锥台远端宽度的一半就是视野角度正切的一半。将此值乘以near值,就可以得到right值。rightright值取反就是left。nearright=near*tan

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。