在将我的three.js程序渲染到Google Chrome时,我一直在尝试纠正问题
它创建场景,但所有对象都呈现为黑色
该程序在firefox上正常工作,但由于更新到最新版本的three.min.js,每5次中有1次,所有对象都呈现为黑色。
到目前为止,我已经设法使用firefox终端调试我的代码。但是我遇到的最后一个错误如下。
"THREE.Projector has been moved to /examples/js/renderers/Projector.js."
据此我了解问题在于投影机。我声明为
projector = new t.Projector();
后来我用于以下内容 -
var mouseVector = new t.Vector3(
( e.clientX / WIDTH ) * 2 - 1,
- ( e.clientY / HEIGHT ) * 2 + 1,
1 );
projector.unprojectVector( mouseVector, cam );
另外
pointerDetectRay = projector.pickingRay(mouse2D.clone(), cam);
var intersects = pointerDetectRay.intersectObjects(scenemodels.children);
我是否需要完全移除投影机的所有实例并将其更换为什么?如果是这样的话?或者错误是否与其他内容有关?
答案 0 :(得分:4)
<script src="location-of-your-threejs-library-download/examples/js/renderers/Projector.js"></script>
曾经是three.js库的一部分,但知道它是外部的。所以你只需要把它作为一个脚本包含在内。
$('#div1').click(function () {
var offsetTop = $('#p2EmpContPer').offset().top;
$('#p2EmpContPer').focus();
$('html, body').animate({
scrollTop: offsetTop - 20
});
});
答案 1 :(得分:2)
现在可以使用Raycaster实现投影仪的功能。
在这个问题上有一个很好的讨论:Three.js Projector and Ray objects