我需要一种算法来渲染像素完美的三角形而不使用 OpenGL。
我在哪里可以获得像 OpenGL 使用的这样的算法?最好是单线程。
它必须像 OpenGL 那样做,因为 OpenGL 不会在共享边缘的两个三角形上留下间隙或重叠像素。扫描线方法会出现这些错误:http://joshbeam.com/articles/triangle_rasterization/ http://joshbeam.com/articles/triangle_rasterization/。我也尝试了这个半空间算法:http://devmaster.net/forums/topic/1145-advanced-rasterization/ http://devmaster.net/forums/topic/1145-advanced-rasterization/但我无法让它工作(呈现胡言乱语)。
我更喜欢 C++ 解决方案,但语言不是问题。
OpenGL 使用基于扫描线的方法,正如 Alan 和您的文章链接提到的那样。然而,管理差距并不是数学准确性的问题。您需要对三角形边缘上的像素进行额外的约定。 OpenGL 使用的约定与 Direct3D 使用的约定相同。它被称为“左上角”,我见过的最好的解释就是这个MSDN 光栅化规则文章 http://msdn.microsoft.com/en-us/library/windows/desktop/bb147314%28v=vs.85%29.aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)