高级图形编程(基于opengl)9

本文介绍了OpenGL中的法向量和纹理坐标转换原理,包括法向量的特殊转换方式及纹理坐标的生成方法,并探讨了模型转换如何帮助在场景中放置和调整对象。

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

2.3 法向量转换

       当启动环境映射启动时,OpenGL使用法向向量用于光照计算去生成纹理坐标。像顶点,法向量是用于对象空间到眼睛空间转换之间被使用。然而,法向量与顶点位置不同的;他们根据余弦值大小不同转换不同(如图2.3)。顶点位置被指定在OpenGL作为竖向量,法向量和其他一些方向作为列向量。在数学上,它用于左乘一个矩阵。其他的是矩阵右乘。

他们都转变成相同的方式(通常是为了简化代码实现),这个矩阵必须倒置用于更改法线。

       当转换法向量,它不能使用简单的转换矩阵。这个转换正确是视点矩阵的逆矩阵的倒置(如图2.4)。也就是,转换后正常的法向量N‘是

2.4 纹理坐标生成和转换

       纹理坐标系有它自己的转换管线(如图2.5),比几何转换要简单的多。坐标可以有应用程序直接提供,或者由顶点坐标和纹理坐标生成。在这两种情况下,纹理坐标系是一个4X4纹理转换矩阵转换的,就像顶点坐标,纹理坐标也是有4维数组组成,即使应用程序制定的自由一维,两维或三维的。缺少的部分值设置默认值,str值默认是0(这个坐标可定认为是纹理坐标系空间的xyz轴)以及q坐标(等价于w)的默认值是1.

2.4.1 纹理矩阵

       经过纹理矩阵转换后的转换坐标经历他自己的角度划分,使用q来划分。因此纹理映射可能使用到它的14个成员数,纹理坐标维数用不到的会在这个阶段抛弃掉。这个4X4转换应用于划分生成纹理坐标系是1D2D纹理应用有各种技术的实现,比如投影材质(14.9章节)和体积变形(20.5.8)在后面的章节会详细描述。

2.4.2 纹理坐标生成

       这个纹理坐标管线能够生成纹理坐标系的顶点属性的函数,这个功能,称为纹理坐标生成(texgen),被用于构建几何体和他的纹理之间的关系。它也可以用来提高应用程序的渲染性能,例如纹理坐标不用每一个顶点都传送。参数原(xyzw)值可以是为转换的顶点(模型空间),或者顶点转换的视点矩阵(眼睛空间)。

 

2.5 模型转换

       模型转换被用于场景中摆放对象,模型转换可用定位对象,确定他们的方向,他们的大小和形状大小,通过适当到的位置和方向组装复杂的对象组件,通过改变这些属性生成帧动画。

       模型转换可用认为是对象描述的一部分(如图2.6)。当应用程序定义了一个几何元素,它可用包含模型转换来修改原始顶点的坐标。这是非常有用的因为他可用重复使用很多对象。相同的对象可以用于另一场景的一部分,有不同的大小,形状,位置,或方向。这个技术可以减少应用程序存储和发送到图形管线的数量,并且可以是建模过程更简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值