首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用threejs进行光线追踪

使用threejs进行光线追踪
EN

Stack Overflow用户
提问于 2015-07-30 06:58:45
回答 1查看 1.3K关注 0票数 0

我使用的是OrthographicCamera和一个旋转的简单PlaneBufferGeometry( 300,500 )。我正在使用下面的代码,但无论我在哪里单击鼠标,它都不会相交。我已经尝试了我能想到的所有方法,但还是不能让它工作。

下面是我的代码:

代码语言:javascript
复制
var vector = new THREE.Vector3( );
var raycaster = new THREE.Raycaster();
var dir = new THREE.Vector3();
vector.set( ( event.clientX / $(container).width() ) * 2 - 1, - ( event.clientY / $(container).height() ) * 2 + 1, - 1 ); // z = - 1 important!
vector.unproject( camera );
dir.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld );
raycaster.set( vector, dir );
var intersects = raycaster.intersectObjects( objects, true );

如有任何建议,我们将不胜感激

EN

回答 1

Stack Overflow用户

发布于 2015-08-09 04:00:39

似乎有一种更简单的方法可以做到这一点:

代码语言:javascript
复制
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
raycaster.setFromCamera( mouse, camera );
var intersects = raycaster.intersectObjects( objects );

如果您对此还有任何问题,这里有一个有效的示例:http://threejs.org/examples/#webgl_interactive_cubes

希望我能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31712580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档