我有一个球体模型以及在固定位置叠加到其上的html文本标签。当我使用轨道控制旋转球体时,如何在物体后面隐藏它们?
任何人都知道有关stackoverflow的任何引用或任何可以解决我的问题的例子吗?
答案 0 :(得分:0)
请参阅此示例,了解如何执行此操作:http://jsfiddle.net/L0rdzbej/194/
我已将相关代码放在updateLabelVisibility()
- 函数中,它看起来像这样:
var meshPosition = mesh.getWorldPosition();
var eye = camera.position.clone().sub( meshPosition );
var dot = eye.clone().normalize().dot( meshPosition.normalize() );
//IS TRUE WHEN THE MESH IS OCCLUDED BY THE SPHERE = dot value below 0.0
var ocluded = dot < -0.2;
if ( ocluded ) {
// HIDE LABEL IF CAMERA CANT SEE IT (I.E. WHEN IT IS BEHIND THE GLOBE)
label.style.visibility = "hidden";
}
else {
// DISPLAY LABEL IF MESH IS VISIBLE TO THE CAMERA
label.style.visibility = "visible";
}
mesh
是标签所在的标记。点基本上是告诉你球体周围有多远,在90度的某个距离内。简单地说,通过低于零的值,标签可以通过在后面进一步看得更长。
公平地说,我基于以下代码来解决这个问题:https://zeitgeist-globe.appspot.com/