OpenGL编程指南7:视图-

这篇OpenGL编程指南深入探讨了视图变换、模型变换、投影变换和视口变换在三维图形渲染中的作用。文章通过实例解释了如何组合不同变换来绘制场景,并提到了裁剪和坐标到屏幕像素的映射过程。

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

1.前言

计算机图形学的要点就是创建三维物体的二维图像(图像必须是二维的,因为他是在平面的屏幕上显示的)。但是,当我们决定怎样在屏幕上绘图时,必须使用三维坐标的方式考虑。
为了把一个物体的三维坐标变成屏幕上的像素坐标,需要完成以下三个步骤:
  • 变换包括模型、视图和投影操作,这是通过矩阵乘法表示的。这些操作包括:旋转、移动、缩放、反射、正投影和透视投影等。一般情况下,在绘制场景时,需要组合几种变换。
  • 由于场景是在一个矩形窗中渲染的,因此位于窗口之外的物体(或物体的一部分)必须裁减掉。在三维计算机图形学中,剪裁就是丢弃位于裁剪平面之外的物体。
  • 经过了变换之后的坐标屏幕像素之间必须建立对应关系,这个过程就是视口变换
视图和模型变换一起构成了模型视图矩阵,这个矩阵作用于物体坐标,产生视觉坐标。接着,如果还指定了其他裁剪平面,用于从场景中删除某些物体或者提供物体的裁剪视图,这些裁剪平面就会在此时生效。
顶点变换的流程如下图所示:

OpenGL采用投影矩阵来完成剪裁坐标,这个变换定义了一个视景体,位于这个空间之外的物体将裁剪掉,不会在最终的场景中出现。
随后发生的是透视除法,他把坐标除以w,产生规范化的设备坐标
最后,变换后的坐标通过视口变换成窗口坐标,可以通过控制视口的大小对最终的图像进行放大、缩小或拉伸。

2.详细理解各个变换

1. 一个例子

#include <vgl.h>

void init(void)
{
	glClearColor(0.0,0.0,0.0,0.0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值