c – 完美填充三角形渲染算法?

前端之家收集整理的这篇文章主要介绍了c – 完美填充三角形渲染算法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在哪里可以得到一个算法来渲染填充三角形?编辑3:我不能使用OpenGL渲染它.我需要每像素算法.

我的目标是从三角形渲染一个正多边形,所以如果我使用这个三角形填充算法,每个三角形的边不会重叠(或者在它们之间产生间隙),因为如果我使用的话会导致渲染错误XOR渲染像素.

因此,渲染质量应该与OpenGL渲染相匹配,所以我应该能够定义 – 例如 – 具有N个顶点的圆,并且它将像正确的任何大小的圆形一样呈现;所以它不使用整数坐标来渲染它像一些三角形填充算法.

我需要控制三角形填充自己的能力:我可以添加我自己的逻辑,说明如何渲染每个像素.所以我需要渲染后面的裸码,才能完全控制它.它应该是有效的,可以画几万个三角形,而不用等待一秒钟以上. (我不知道它可以有多快,但我希望它不会超过10秒).

首选语言是C,但我可以将其他语言转换成我的需要.

如果没有免费的算法,我可以在哪里学习自己建立一个,实际上有多难? (我=数学noob).

添加了OpenGL标签,因为这与它有所不同.

编辑2:我在这里试过算法:http://joshbeam.com/articles/triangle_rasterization/但似乎稍微破碎,这里是一个圆圈,带有64个三角形:

但如果您放大,您可以看到错误

说明:有两个像素与其他三角形颜色重叠,这不应该发生! (或透明度或异或等效果会产生不良渲染).

看起来错误在较小的圆圈上更加明显.如果我想对像素有一个XOR效果,这是不可接受的.

我可以做些什么来解决这些问题,所以它会完美填满,没有重叠的像素或间隙?

编辑4:我注意到渲染非常小的圈子不是很好.我意识到这是因为坐标确实被转换为整数.如何将坐标作为浮点对象,使其像OpenGL一样精确而完美地呈现圆形?以下是小圈子看起来有多糟糕的例子:

注意OpenGL渲染的完美程度!这是我想要实现的,而不使用OpenGL.注意:我不想渲染完美的圆,而是任何多边形的形状.

解决方法

总是有 half-space method.

猜你在找的C&C++相关文章