看了点openGL的文档,发现这个问题:
似乎四边形和多边形最后都是被GPU拆为三角形处理显示的
那么实际上GPU是无法真正知道三个以上的点是否真正的共面吧?
————————————————————————————————————————————————
GPU不需要知道3个以上的点是否共面。
之所以选三角形的原因是:
(1)三角形是最基本的多边形,并且任何其他的多边形都可以拆分为三角形。
(2)三个点可以保证在一个平面,如果是四边形四个点就不能保证。
(3)它可以很好地用叉积判断一个点是不是在三角形内部(三角形的内外定义特别清晰)-这个在光栅化时特别重要
如下说法是否正确?
比如说有四个点的三维坐标,GPU如果想验证四个点是否共面,就要增加验证步骤消耗细算资源,而且计算机储存的坐标数据类型(比如为float)精度有限,也会很难真正验证成功。所以计算机就舍弃这个验证共面的步骤,一律把这四个点作为两个三角形来显示,不管其是否真的是一个四点共面的四边形
——————————————————————————————————————————————————————————————————————————
同上段,不存在『想验证四个点是否共面』这件事
不管共不共面,渲染任何形状,为获得颜色,需要的是法线方向和深度。
如果显卡显示出来的都是一个个三角形,那么游戏里的视频贴图是怎么实现的呢?视频都是长方形的,是怎么贴合到显存里组成一个长方形的两个三角形上的呢?
——————————————————————————————————————————————————————————————————
这个问题过于业余了,可以了解一下光栅化和基础图形管线。
最终表现的形状和尺寸,和你的视口有关,即这个视口可以是长方形也可以是圆形。
视口就相当于你眼睛前面的罩了一张有洞的纸,这个洞的形状决定你看到的长方形还是圆形。
其他的你问的驴唇不对马嘴,我也不知道怎么回答。
--
修改:sjtuDNA FROM 124.127.210.*
FROM 124.127.210.*