首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 游戏天堂 > 游戏开发 > OpenGL-视点的建立
【标  题】:OpenGL-视点的建立
【关键字】:OpenGL-
【来  源】:http://blog.csdn.net/rainer7/archive/2007/01/29/1497288.aspx

OpenGL-视点的建立

在开始使用OpenGL时,屏幕上总是黑屏,这多是因为视点位置不正确的问题造成的。这篇文章中我们主要谈谈视点位置的设置。

视点设置的语句是:
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
gluLookAt(0,0,10,0,0,-20.0,0,1.0,0);

gluLookAt在世界坐标中建立了位于(0,0,10)的视点,并且朝向(0,0,-20.0)。经过这么几句,就建立了视点和模型的位置,视点位于(0,0,10),而模型的位置仍处在默认的(0,0,0)。视点和模型之间的距离是20。

如果要移动模型,可以用语句glTranslatef。如:
glTranslatef(0,0,-5);
这一句把物体移动到了(0,0,-5)的位置,如果当前视点是(0,0,10),则视点和模型之间的距离是15。

有些书上会说glTranslatef语句等价于移动了视点。在这里我建议大家别这么认为,还是将gluLookAt认为是移动视点,glTranslatef是移动模型。而不要因为仅执行glTranslatef移动了模型,而等价的认为是视点移动而模型不动。把二者分开考虑在分析时是较为清晰的。

虽然我们将视点和模型置在了合适的位置,可为何我们还是开不见物体呢?这应该和投影有关。

我在程序中经常使用gluPerspective作投影,它有着很重要的两个参数之间影响模型的可见性,一个是zNear,另一个是zFar。zNear是视景体近端与视点的距离,zFar是视景体远端与视点的距离。模型必须有部分在视景体中才能看见。所以我们总结出当满足zNear <= distance <= zFar,distance是模型与视点的距离。即模型与视点的距离在zNear和zFar之间,也即模型在视景体中,模型才可见。

综上,总结出模型可见的前提条件是:
1、视点方向朝向模型
2、视点与模型之间的距离zNear <= distance <= zFar,其中distance是模型与视点的距离。

PowerBuilder中常用函数和语句清单:【上一篇】
ShaderSimpler(6) : Parallax Mapping:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 《天翼之链》勇者之墓1-20层流程+详解
  • asp+ 制作图形
  • Linux 基本命令的使用(续2)
  • Item 45. BOOL
  • gui的设计笔记(2)
  • 网页制作注意问题-网页道德
  • MyiSpace.cn 使用指南(1) -- MyiSpace.cn 的基本概念
  • 用C#代码生成一个简单的PDF文件
  • Win 2000系统内存优化全攻略
  • 开源系统的选择-比较全面的各类开源应用系统列表
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.