2010-06-08 153 views
2

有几种技术,我想对他们的利弊反馈一些。据我所知有:Java3d:如何在Java 3D场景上绘制2d覆盖图?

  • “光栅”技术

不得不使用图片,这是不是一个真正的叠加,在三维场景中只是另一个对象。其他对象可以隐藏它。

容易,但我无法摆脱的闪烁

有其他的技术,我不知道呢?使用LWJGL或JME等其他库会更容易吗?

回答

1

你提到的这个“闪烁”被称为Z-fighting,这是因为你的3D渲染不知道哪个多边形在另一个之前,因为Z位置值在渲染之前被截断,以及它们太接近(或相同),它会导致未定义的情况,导致您提到的闪烁。

Z战斗可以减轻,但你不能完全消除它,所以,最终你可以应用一个纹理,你想要的字母,表面,或者你可以尝试手动调整值2D叠加位置,试图逐渐增加与其他多边形的距离,通过小的比特,直到它足够小,看起来好像它在那里,并且足够大以使Z值在截断后不同,从而消除对渲染的怀疑,从而消除Z战斗。