在opengl中非平面上的圆

时间:2010-06-30 12:28:49

标签: opengl

我需要在某个任意非平面上绘制一个圆,但是这个圆应该放在表面上并遵循表面的不规则形状。换句话说(实际上可以是可能的解决方案之一)想要在鼠标指针附近的非平面表面上具有类似投影的“阴影”。我是否需要在内存中创建一个球体并将其投射到表面上?是否有其他技术可以实现相同的目标? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

有两种方法可以做到这一点。首先,要创建一个圆柱体并将其与曲面相交,得到交点线段并绘制它们。如果你已经拥有一个可以利用的数学库,并且如果你不必每帧都做交叉,那么这可能是一个好主意。你会准确地得到你想要的东西。

正如您已经建议的那样,另一个选项是使用投影。不过我不确定,你将能够清楚地看到表面上圆圈的阴影。但是,如果您有曲面的参数化纹理坐标,则可以创建一个纹理,并在其上打印圆形,并将此纹理应用于曲面。