OpenGL中关于视图要注意的几个问题

本文详细介绍了计算机图形学中三维物体在屏幕上呈现的过程,包括视图变换、模型变换、投影变换及视口变换等关键步骤,并阐述了这些变换在代码实现中的顺序与重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)记住,计算机图形的要点就是创建三维物体的二维图像(它必须是二维的,因为它是在平面的屏幕上显示的)。但是,当你决定在屏幕上绘图时,你必须用三维坐标的方式来考虑。

 

(2)“视图和模型变换”:这些变换对模型和照相机的相对位置进行定位,以获得所需的最终图像。

        “投影变换”:描述了如何指定可视空间的形状和方向。可视空间决定了场景将如何投影到屏幕上(使用正投影或透视投影),以及哪些物体(或物体的一部分)将被裁剪掉。

        “视口变换”:解释如何把三维的模型坐标转换为屏幕坐标。

 

(3)在代码中,视图变换必须出现在模型变换之前,但可以在绘图之前的任何时候执行投影变换和视口变换。

 

(4)注意display()函数包括模型变换和视图变换,以及用于绘制立方体的函数glutWireCube()(相对于书中的例子)。这样,display()函数可以被重复调用,以绘制窗口的内容。例如,当窗口被移动或者原先遮住这个窗口的东西被移开时,就需要重复调用display()函数,并经过适当的变换,保证这个立方体是按照希望的方式进行绘制。display()潜在的重复作用性强调了在执行视图变换和模型变换之前载入单位矩阵的必要性,特别是在两次display()函数调用之间插入了其它变换的情况下。

 

(5)当窗口初次创建时,移动或改变形状时,reshape()函数就会被告调用。这是合理的,因为投影(投影可视空间的宽度——高度纵横比)和应用视口都是与屏幕直接相关的,具体地说, 与屏幕或窗口的大小或纵横比直接相关。

 

(6)在程序中所调用的最后一个变换函数实际上是第一个应用于顶点的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值