注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Hao的博客

I'm on my way……

 
 
 

日志

 
 
 
 

OpenGL视图相关  

2010-06-02 19:58:44|  分类: OpenGL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.正交视图
      OpenGL的默认视图是正交视图,它是一种最简单的视图。在下图中,如果成像平面固定在某处,把照相机远离成像平面,就可以得到一个近似的正交视图。在极端情况下,所有的投影线将平行且垂直于投影平面,当我们沿着投影线方向移动投影平面时,投影的图像不会发生改变。在OpenGL中,通过把照相机放在投影平面z=0位置来模拟无穷远,并将照相机的镜头朝向z轴的负半轴(朝向屏幕里面),此时投影线平行于z轴方向。OpenGL中与正交投影相关的函数有:

OpenGL视图相关 - chhaj5236 - chhaj5236的博客 

1) void glOrtho(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far)
      glOrtho函数指定了一个带正平行六面视域体的正交投影,参数(从正对着屏幕的方向看过去)分别表示正平行六面体的左侧面x=left、右侧面x=right、下平面y=bottom、上平面y=top、近(前)平面z=-near、远(后)平面z=-far。照相机只能“看到”视域体内的对象,所以如果图形超出了视域体,图形的显示就不会正确。我们在应用程序中如果没有指定一个视域体,OpenGL就采用其内部默认的视域体,它是一个2*2*2且中心在坐标原点的立方体。


2. 透视图
      当对象远离观察者时它们在透视图的图像会变小,这是所有透视图的特点。正是这种随距离尺寸缩小的特点,使得对象看起来更有立体感,透视图中看起来更加逼真。OpenGL中与透视投影相关的函数有:

1) void glFrustum(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far)
     
glFrustum函数各参数的意义与glOrtho相同,因为默认照相机处在坐标原点,所以对于透视图来说参数near和far必须取正数。

2) void gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble near,GLdouble far)
      gluPerspective是glFrustum的一个特别情况,glFrustum指定的是通用透视投影棱台,而该函数指定了一个对称透视投影棱台,通常情况下这就已经满足作图的要求了。函数中fovy指定了向上(y方向)的视角,aspect定义了投影平面的纵横比,near和far同上。


待补充……

 

  评论这张
 
阅读(667)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017