光线投射从内部投射时不会碰到网格
Raycast doesnt hit mesh when casted from the inside
我设置了一个简单的场景,在这个场景中,我的相机位于球体几何内
var mat = new THREE.MeshBasicMaterial({map: THREE.ImageUtils.loadTexture('0.jpg') , overdraw:true, color: 0xffffff, wireframe: false });
var sphereGeo = new THREE.SphereGeometry(1000,50,50);
var sphere = new THREE.Mesh(sphereGeo,mat);
sphere.scale.x = -1;
sphere.doubleSided = false;
scene.add(sphere);
我设置了一个函数,在这里我可以环顾球体内部,我的目的是能够在鼠标上向下投射光线,击中球体,并获得击中发生的坐标。我在投射光线,但相交处仍然是空的。
var vector = new THREE.Vector3();
vector.set( ( event.clientX / window.innerWidth ) * 2 - 1, - ( event.clientY / window.innerHeight ) * 2 + 1, 0.5 );
vector.unproject( camera );
raycaster.ray.set( camera.position, vector.sub( camera.position ).normalize());
var intersects = raycaster.intersectObjects(scene.children, true);
所有的东西都可以通过一个测试立方体来工作,这个立方体也放在我的球体里。我的问题是,你是否从内部撞击物体有关系吗?因为这是我脑海中唯一的解释。
提前谢谢。
sphere.doubleSided
几年前更改为sphere.material.side = THREE.DoubleSide
。
如果你从内部击中物体,确实很重要。通常情况下,由于管道层面上发生的背面剔除,光线会穿过"倒置"表面。
反转/翻转曲面通常在渲染和光线投射中都会被忽略。
然而,在您的情况下,我会继续尝试将sphere.doubleSided = false;
设置为sphere.doubleSided = true;
。这将使光线投射返回与球体的交点。[不应该使用负刻度]
您也可以进入"脏顶点"模式,并手动翻转法线:
mesh.geometry.dynamic = true
mesh.geometry.__dirtyVertices = true;
mesh.geometry.__dirtyNormals = true;
mesh.flipSided = true;
//flip every vertex normal in mesh by multiplying normal by -1
for(var i = 0; i<mesh.geometry.faces.length; i++) {
mesh.geometry.faces[i].normal.x = -1*mesh.geometry.faces[i].normal.x;
mesh.geometry.faces[i].normal.y = -1*mesh.geometry.faces[i].normal.y;
mesh.geometry.faces[i].normal.z = -1*mesh.geometry.faces[i].normal.z;
}
mesh.geometry.computeVertexNormals();
mesh.geometry.computeFaceNormals();
我还建议您将比例设置回1.0,而不是-1.0。
如果有效,请告诉我!
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 剑道网格jQuery动画()问题
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 我可以更改剑道UI网格吗's的外键值
- 调用函数内部的函数
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 在phonegap应用程序内部重定向不起作用
- 使用此选项选择父类内部的类
- jqGrid树网格问题
- 光线投射从内部投射时不会碰到网格
- ng点击ag网格标题模板内部
- 在网格视图的自动刷新过程中,设置内部网格视图文本框的可见性
- 多姆网格,固定内部流体等等
- 存储区不在网格面板内部加载-ExtJS
- 内部 HTML 应由网格替换
- easyUI数据网格内部编辑组合框无法选择默认值
- 建立一个网格的圆圈与文本内部和…移动东西
- 如何保留组合框选定的背景颜色,内部网格面板一旦移动到下一行.或者可以说集中注意力
- Ext.js网格内部手风琴:如何设置网格标题为手风琴's
- 如何从视图内部获取网格视图的客户端id,以便在javascript中使用