- 主题:外行问一个关于openGL和计算机图形学的一个的问题
在非GPU非shader程序里呢?
建模软件在一个平面里画了个n边形,这不就是多边形吗?这时候就有判断共面的要求了
显卡和渲染管线里只有三角形这点我已经了解了,但是在CPU程序里有时候还是要处理n点共面的问题吧?
【 在 sjtuDNA 的大作中提到: 】
: 光栅化过程的原理你没有搞清楚。
: 为什么GPU必须要处理三角形面片,而不是四边形面片。
: 最重要的原因就是:可以通过叉积判断一个点是不是在三角形内部
: ...................
--
FROM 175.190.123.*
谢谢,timer触发纹理贴图的变换我也在教程里看到过,没想到真是这样
那视频呢?教程里没有这个。我猜是把视频的每一帧都乘以一个变换矩阵,覆盖到目标四边形的前方?
【 在 sjtuDNA 的大作中提到: 】
: 动图的序列帧可以作为N个纹理对象,通过timer来进行触发这个纹理对象id的变换。
:
--
FROM 175.190.123.*
谢谢,所以在工程实现上,还是无法区分真共面或者两面之间有很小的偏转角这两种情况,其实和处理几个非共面点(三角形)的方式没啥区别,都是把这几个点用一个共同的组名来分组命名?
【 在 sjtuDNA 的大作中提到: 】
: 4点共面可以考虑:
: 1. 可以拆成有共同边的2个三角形,2个三角形的法向量的夹角小于epsilon。(一般模型输入的时候都带法向量,所以不用计算)。复杂度O(n)
: 2. W点到ABC面的距离,小于epsilon
: ...................
--
FROM 175.190.123.*
我最初发帖的时候,看过一个openGL教程,也看了一些讨论或问答(观点比较杂,有人说openGL早期版本里有quad后来不提倡了,有人说AMD驱动里有四边形),感觉GPU及渲染管线可能是只能处理三角形,或者只有三角形这个概念,因为如果是三角形的话片段着色器中可以很方便的根据三个顶点坐标做加权平均,但我对这点不是很确定。看了大家一些回复后就确定了,在渲染管线和GPU shader里不考虑共面问题
但是在很多建模软件里,n点共面的多边形是很常见的,所以估计其是在CPU程序里完成的这个建模和判定,所以我又继续问下去了,在CPU程序里如何判定和处理共面的问题
【 在 sixue1999 的大作中提到: 】
: 我觉得题主的问题可能是不理解gpu的原理
: 他以为如果两个三角形实际上是一个四边形拆分出来的
: 这不是很浪费吗
: ...................
--
FROM 175.190.123.*
谢谢大牛解答
原来如此,之前我还在想:建模软件算法这么强,竟然能算出这么多四点共面的共四边形来拟合一个模型。原来其用的不是共面四边形啊
【 在 Oriphia 的大作中提到: 】
: 建模软件里是基于网格线mesh生成的模型,根本不关心三角形还是多边形,网格线拉伸出来的所有物体都是四边形,和极少数的三角形,总体来说模型有99%以上是四边形。
: 另一个错误是,建模软件里的四边形是曲面四边形,不是共面四边形,因为这些四边形是基于曲线生成的,不是通过顶点生成的。看一下下图脸上的四边形,都是曲面。
: [upload=1][/upload]
: ...................
--
FROM 175.190.123.*