如何投射可见光线Three.js

诺里普斯尼

我想针对具有摄像头视觉的对象(因为用户会看着该对象,而不是用鼠标指向该对象)。

我像这样从相机投射光线

rotation.x = camera.rotation.x;
    rotation.y = camera.rotation.y;
    rotation.z = camera.rotation.z;
    raycaster.ray.direction.copy( direction ).applyEuler(rotation);
    raycaster.ray.origin.copy( camera.position );

var intersections = raycaster.intersectObjects( cubes.children );

这让我到了十字路口,但有时似乎在徘徊。所以我想增加瞄准(十字准线)。那将是射线末端或中间的某种物体(网格)。

如何添加?当我创建一条常规线时,它位于相机的前面,因此屏幕会变黑。

福克·蒂尔(Falk Thiele)

您可以像这样将由简单几何构造而成的十字准线添加到相机中:

var material = new THREE.LineBasicMaterial({ color: 0xAAFFAA });

// crosshair size
var x = 0.01, y = 0.01;

var geometry = new THREE.Geometry();

// crosshair
geometry.vertices.push(new THREE.Vector3(0, y, 0));
geometry.vertices.push(new THREE.Vector3(0, -y, 0));
geometry.vertices.push(new THREE.Vector3(0, 0, 0));
geometry.vertices.push(new THREE.Vector3(x, 0, 0));    
geometry.vertices.push(new THREE.Vector3(-x, 0, 0));

var crosshair = new THREE.Line( geometry, material );

// place it in the center
var crosshairPercentX = 50;
var crosshairPercentY = 50;
var crosshairPositionX = (crosshairPercentX / 100) * 2 - 1;
var crosshairPositionY = (crosshairPercentY / 100) * 2 - 1;

crosshair.position.x = crosshairPositionX * camera.aspect;
crosshair.position.y = crosshairPositionY;

crosshair.position.z = -0.3;

camera.add( crosshair );
scene.add( camera );

Three.js R107

http://jsfiddle.net/5ksydn6u/2/


如果您没有一个特殊的用例,需要像您一样从相机中检索位置和旋转,我想您可以通过使用以下参数调用raycaster来解决“游荡”的问题:

raycaster.set( camera.getWorldPosition(), camera.getWorldDirection() );
var intersections = raycaster.intersectObjects( cubes.children );

投射可见光线然后,您可以通过使用箭头助手绘制箭头来可视化3D空间中的光线投射。在进行射线广播之后执行以下操作:

scene.remove ( arrow );
arrow = new THREE.ArrowHelper( camera.getWorldDirection(), camera.getWorldPosition(), 100, Math.random() * 0xffffff );
scene.add( arrow );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

gnuplot的可见光谱

来自分类Dev

如何在gnuplot中用可见光谱的颜色填充矩形?

来自分类Dev

Three.js光线投射THREE.Object3D

来自分类Dev

Three.js中的光线投射和容器

来自分类Dev

Three.js带有动画的光线投射对象选择

来自分类Dev

Three.js碰撞检测与光线投射优化

来自分类Dev

Three.JS-自定义网格上的光线投射

来自分类Dev

Three.js | 通过Blender光线投射导入的.obj模型

来自分类Dev

在three.js中对“子场景”进行光线投射

来自分类Dev

在ScrolledWindow中滚动TextView,以便在pyGTK2中可见光标

来自分类Dev

在ScrolledWindow中滚动TextView,以便在pyGTK2中可见光标

来自分类Dev

安装FGLRX之后的不可见光标(Debian Jessie)

来自分类Dev

Javascript算法/函数可生成沿可见光谱的颜色的RGB值

来自分类Dev

鼠标光标热点距可见光标位置的偏移量

来自分类Dev

从子摄像机到场景的THREE.js光线投射

来自分类Dev

Three.js:使用场景对象子集进行光线投射

来自分类Dev

如何使用THREE.ArrowHelper在Three.js中添加大量可见箭头

来自分类Dev

如何使ShadowCamera在three.js r73中可见?

来自分类Dev

Three.js-如何检查对象是否对摄像机可见

来自分类Dev

Three.js-如何检查相机是否可见对象

来自分类Dev

如何通过js设置可见帖子?

来自分类Dev

如何更改Three.js对象投射的阴影的强度?

来自分类Dev

Three.js:为相机添加光线

来自分类Dev

如何使用 js/css 使选项卡内容可见

来自分类Dev

如何使用 js 脚本更改图像的“可见”属性?

来自分类Dev

Three.js不可见平面不适用于raycaster.intersectObject

来自分类Dev

Three.js-在不可见/视口外时停止渲染场景

来自分类Dev

如何从被其他光线投射击中的物体投射光线?

来自分类Dev

当父THREE.js组的可见性更改时,更改CSS2D对象的可见性

Related 相关文章

  1. 1

    gnuplot的可见光谱

  2. 2

    如何在gnuplot中用可见光谱的颜色填充矩形?

  3. 3

    Three.js光线投射THREE.Object3D

  4. 4

    Three.js中的光线投射和容器

  5. 5

    Three.js带有动画的光线投射对象选择

  6. 6

    Three.js碰撞检测与光线投射优化

  7. 7

    Three.JS-自定义网格上的光线投射

  8. 8

    Three.js | 通过Blender光线投射导入的.obj模型

  9. 9

    在three.js中对“子场景”进行光线投射

  10. 10

    在ScrolledWindow中滚动TextView,以便在pyGTK2中可见光标

  11. 11

    在ScrolledWindow中滚动TextView,以便在pyGTK2中可见光标

  12. 12

    安装FGLRX之后的不可见光标(Debian Jessie)

  13. 13

    Javascript算法/函数可生成沿可见光谱的颜色的RGB值

  14. 14

    鼠标光标热点距可见光标位置的偏移量

  15. 15

    从子摄像机到场景的THREE.js光线投射

  16. 16

    Three.js:使用场景对象子集进行光线投射

  17. 17

    如何使用THREE.ArrowHelper在Three.js中添加大量可见箭头

  18. 18

    如何使ShadowCamera在three.js r73中可见?

  19. 19

    Three.js-如何检查对象是否对摄像机可见

  20. 20

    Three.js-如何检查相机是否可见对象

  21. 21

    如何通过js设置可见帖子?

  22. 22

    如何更改Three.js对象投射的阴影的强度?

  23. 23

    Three.js:为相机添加光线

  24. 24

    如何使用 js/css 使选项卡内容可见

  25. 25

    如何使用 js 脚本更改图像的“可见”属性?

  26. 26

    Three.js不可见平面不适用于raycaster.intersectObject

  27. 27

    Three.js-在不可见/视口外时停止渲染场景

  28. 28

    如何从被其他光线投射击中的物体投射光线?

  29. 29

    当父THREE.js组的可见性更改时,更改CSS2D对象的可见性

热门标签

归档