仿射变换导致三角形顶点顺序改变

在3D图形学中,仿射变换可能导致三角形顶点顺序改变,从而影响法线方向和渲染效果。文章探讨了旋转、缩放和平移如何影响顶点顺序,提出检查变换矩阵行列式来判断是否需要调整顶点顺序的解决方案。
摘要由CSDN通过智能技术生成

问题描述

空间中的点可以通过(x,y,z)这样一个向量表示,每个分量分别代表向量在x轴,y轴和z轴上的取值(这里采用标准的正交坐标系,在谈论过程中不涉及左右手坐标系的差异问题,这里默认当做右手系来讨论)

空间中任何一个面都可以通过三角化操作来将一个完整的面分解成多个三角形面,这样的思路被应用于计算机图形学(这里需要了解网格mesh 相关的概念),计算机中没有直接曲面这样的基本图形(无法直接渲染),计算机通过将空间网格化,一个曲面可以通过三角化分解成多个三角形来转化成在网格模型中可以展示的模型。

在现在最常使用的DirectX和OpenGL 3D引擎中任何一个三角面的法线方向回收到创建三角面时输入的三个顶点的顺序影响,(这里忽略实际上的差异,假设引擎期望所有三角面的顶点都是沿着法线方向上顺时针方向给出的)。我们现在对一个已有的三角面做仿射变换时,三角面三个顶点的顺序可能被改变。

如果仿射变换改变了三角面顶点顺序,不调整顶点顺序的情况下,3D引擎在渲染面的时候会产生的错误法线方向,表现为一些表面被从正面观察看不到。

背景知识

仿射变换

一个三维空间中的仿射变换矩阵可以被表示为


TRANS=
    RS T
    0  1

RS时一个3*3的旋转缩放矩阵,T时一个3*1的偏移矩阵,0 是一个 1*3的0矩阵,1是1*1的单位矩阵。

仿射变换可以理解为对点现做一个旋转缩放,然后做一个平移操作,(具体顺序应该处于图形学的考虑,我也没有理解远离)


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值