我一直在研究XNA的Barycentric方法,我在网上找到的描述对我来说非常不透明。一个例子很好。只是用英语解释会很好......目的是什么,怎么用呢?
答案 0 :(得分:2)
来自Wikipedia:
在几何中,重心坐标系是一个坐标系,其中点的位置被指定为放置在单形(三角形,四面体等)顶点的质量的质心或重心。
我相信它们在游戏开发中用于光线追踪。
当光线与普通网格中的三角形相交时,您只需将其记录为点击或未命中。但是如果你想实现一个 suburf修饰符(下面的图片),这会使网格更加平滑,你将需要光线从三角形中心点击的距离(这更容易使用)重心坐标)。
SubsURf修饰符并不难以可视化:
立方体是原始形状,内部的光滑网格是“suburfed”立方体,我认为递归深度为三或四。
实际上,这可能不正确。不要拿我的确切的话,但我做知道它们用于几何形状的纹理映射。
以下是一些您可以查看的幻灯片:http://www8.cs.umu.se/kurser/TDBC07/HT04/handouts/HO-lecture11.pdf
答案 1 :(得分:2)
在实践中,关于三角形ABC的点P的重心坐标仅仅是根据三角形顶点的权重(u,v,w),使得P = u * A + v * B + w * C 。如果该点位于三角形内,则在[0,1]和u + v + w = 1中得到u,v,w。
它们用于涉及关于三角形顶点的点位置的知识的任何任务,例如,跨三角形的属性插值。例如,在光线追踪中,你在三角形中有一个生命值。当您想知道该点的法线或其他属性时,可以计算三角形内的重心坐标。然后,您可以使用这些权重来总结三角形顶点的属性,并获得插值属性。
要在三角形P
内计算点u,v,w
的重心坐标(ABC
),您可以使用:
u = [PBC] / [ABC]
v = [APC] / [ABC]
w = [ABP] / [ABC]
其中[ABC]
表示三角形ABC
的区域。