我创建使用一个简单的WebGL的3D全景应用SphereGeometry
,PerspectiveCamera
以及CanvasTexture
.现在,我希望通过在某些部分添加"HotSpots"来将场景变为现实SphereGeometry
.我遇到的问题是理解如何更新各种各样的,DOMElements
以便他们的位置反映更新的Camera
位置.
基本上,当 CSS JavaScript的 这也是所需效果的实例. 什么是解决这个问题的最佳解决方案?当我跑步时我注意到它 我很高兴使用Camera
旋转时,各种DOMElements
物体将相对于相机旋转的方向移入和移出视野.我试图定位absolute
到和
translating
的X
和Y
使用位置返回PerspectiveCamera
camera.rotation
,但它并没有真正的工作; 这是我的JS和CSS实现:
#TestHotSpot {
/* not sure if using margins is the best method to position hotspot */
margin-top: 50px;
margin-left: 50px;
width: 50px;
height: 50px;
background: red;
position: absolute;
}
/**
CONFIG is my stored object variable; it contains the PerspectiveCamera instance
code is being called inside of my RequestAnimationFrame
**/
config.camera.updateProjectionMatrix();
config.controls.update(delta);
document.getElementById("TestHotSpot").style.transform = "translate("+ config.camera.rotation.x +"px, "+ config.camera.rotation.y +"px)";
DOMElements
只会轻微移动; 我还注意到他们并没有真正考虑到SphereGeometry
它们放置的位置(例如,定位在"后面" Camera
;真的很复杂!THREE.js
引擎的任何插件以及任何教程.非常感谢你提前回复!
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有