three.js如何删除内部面,同时保持外部面不变?

你好THREE.js用户,
我正在尝试删除合并几何体的内表面。通过stackoverflow、Discussio
和其他互联网网站,我试图拼凑出一个简单的例子。在大多数情况下,几何图形是可见的。但我似乎无法删除整个几何体的内表面。这是一个二乘二的立方体,显示四个总数。问题出在我创建的名为DremoveDuplicateFaces()的函数中。在此方面的任何帮助都将不胜感激。谢谢。nvar scene , camera , renderer , controls;var = SCREEN_WIDTH / = new THREE.PerspectiveCamera ( VIEW_ANGLE , ASPECT , NEAR , FAR );camera.position.set ( 5 , 5 , 5 );camera.lookAt ( = new THREE.BoxGeometry ( 1 , 1 , 1 );var i;var k;var x;var y;var z;for ( += 1 ) {for ( += 1 = 0; m 我尝试使用的是r66版本的code。由于质心不再可用,看起来我们必须根据我所阅读和尝试的内容创建自己的质心。我想这是函数中的某个地方出了问题。如果您运行上面的code,它将显示四个立方体的组,但不会删除内部的三角形面。
这很可爱,您只提供了code而不是指向一个工作示例的链接,nMardonis:
质心不再可用,
这是什么意思?它们是可用的,只是不相等而且不一致
对不起,这里有一把小提琴https://jsfiddle.net/rabgf3h7/57以前从未创建过一个。有一个例子,我有foundhttps://stackoverflow.com/questions/21418698/three-js-removing-inner-faces45那时候也在试图解决同样的问题。有人回答说“质心已经从它看起来像的脸上移除了”。我试图确定质心,只是不知道如何修复或转换函数removeDupplicateFaces()中的codehttp://jsfiddle.net/majman/4sukB/2/12我可能添加了一些不需要的内容,或者只是尝试将其转换为错误的内容。这就是我需要帮助的地方。谢谢。
您是否计划只合并立方体,如示例中所示,并排合并?
我计划只并排合并多维数据集是的。我已经用它制作了一张地牢地图ROT.js及THREE.js一起。我将尝试制作一个链接,展示我正在努力实现的目标。如果我能让这个小例子起作用,我打算把它和更大的例子合并。如果它们被移除,那么一旦我从里面设置了一个视点,它就会看起来像一个地牢。
好的,我已经创建了一把小提琴https://jsfiddle.net/7y2nw834/3/主体工程102。这就是为什么我试图制作一个只有四个立方体的更小版本,同时需要去除内部面。谢谢。
哇。谢谢你给我一个很酷的例子,我会看一看,当然没问题,当我向前穿过大厅或房间时,我会尽量穿过地牢而不是面前的墙壁。我想稍后再添加一些门,但只需要通过这个障碍。
根据我所看到的(如果我理解正确的话):
你有一个数组(50 x 50)。
你放一个框,当你遇到#在数组中签名。
此时,你可以检查当前“框”周围的接下来4个元素,如果其中任何一个也是#根据下一个#相对于当前立方体的位置,对当前立方体的侧面进行处理。因此,它将比研究/开发一种去除内表面的算法更有效。
我已经使用了我在上一篇文章中描述的方法,我相信我已经达到了预期的效果。nhttps://jsfiddle.net/prisoner849/Lmrh25js/70
检查了电流和再点火周围的4个最近元件d盒几何体的索引符合检查结果。
非常感谢您在这方面的帮助。我一直想弄清楚如何检查这四个元素。
刚刚在tile()函数——dungeonMap中添加了一个参数,然后在这个函数中只需做以下操作:nvar !== char;var == dungeonMap._width ? true : dungeonMap.getTile ( row + 1, column ).getGlyph()._character !== char;var !== char;var == dungeonMap._height ? true : dungeonMap.getTile ( row, column + 1 ).getGlyph()._character !==>nCan\"t say it\"s something elegant. At least it does what it intended to nThe trick with index is just to know how the box buffer geometry created under the hood:github.commrdoob/three.js/blob/5360a81b8c557ed255e97b87c49e7d00b546b795/src/geometries/BoxGeometry.js#L79-L84 10n1. buildPlane( \"z\", \"y\", \"x\", - 1, - 1, depth, height, width, depthSegments, heightSegments, 0 ); // pxn2. buildPlane( \"z\", \"y\", \"x\", 1, - 1, depth, height, - width, depthSegments, heightSegments, 1 ); // nxn3. buildPlane( \"x\", \"z\", \"y\", 1, 1, width, depth, height, widthSegments, depthSegments, 2 ); // pyn4. buildPlane( \"x\", \"z\", \"y\", 1, - 1, width, depth, - height, widthSegments, depthSegments, 3 ); // nyn5. buildPlane( \"x\", \"y\", \"z\", 1, - 1, width, height, depth, widthSegments, heightSegments, 4 ); // pzn6. buildPlane( \"x\", \"y\", \"z\", - 1, - 1, width, height, - depth, widthSegments, heightSegments, 5 ); // nz
在我身上拍摄你的code比我的意大利面好多了。我很感谢您在这方面的帮助。
另一个高效的解决方案@prisone849。
它也适用于其他应用。
因此我将解决方案的核心打包成一个简单的基本示例:ndiv>的示例集合Discussion.threejs.org参考资料blockquote>一些问题的答案包含一些非常有趣且有启发性的基本示例。这些都很难在大量的问题中找到对话,在那里在资源和展示中也是很好的例子。因此,我把它们收集起来,放在一页纸上,按时间清楚地排列。该系列可能对您有所帮助初学者。更新2019http://discussion.threejs.hofk.de/is现在重定向到安全端*霍夫.de UPDATE2020…
立即:http://discussion.threejs.hofk.de/11
那里
http://discussion.threejs.hofk.de/boxmarybridbasic/boxmarybridbasic.html17n;;;;;基本=新=新三、轨道控制(摄像机,D.DomeElement=新===1)index.push(0,2,1,2,3,1);如果(p[1]==1)index.push(4,6,5,6,7,5);如果(p[2]==1)index.push(8,10,9,10,11,9)如果(p[3]==1)index.push( 12, 14, 13, 14,15,13);如果(p[4]==1)index.push(16,18,17,18,19,17);如果(p[5]==1)index.push( 20, 22, 21, 22, 23, 21 );geometry.setIndex(index);var>n How to remove interior faces while keeping exterior faces untouched?n

three.js[已解决]正交摄影机的变换控件:gizmos缩放问题

您好,我正在使用带轨道控制的正交摄影机。我注意到当缩放照相机变焦不改变相机的位置(如透视相机)。首先,我想知道为什么这两个相机的实现方式不同?第二,我也在使用TransformControls,对于透视摄影机,更新功能上的小控件的重新缩放在这个等式中非常有效>但是使用OrbitControls更改缩放而不是正交摄影机的位置时,它没有正常工作。我试着像这样在等式中添加缩放,但没有得到任何好的结果>我应该以不同的方式包括它吗?我应该使用其他控件吗?谢谢大家的帮助!NaDaMa:首先,我很想了解为什么这两个摄像头...

日期:2021-12-11 08:00:01 浏览:1727

three.js多次渲染同一模型(obj模型),FPS要低得多

我试图在程序中渲染150个相同的树模型,但FPS突然从60下降到30+。你能告诉我什么是最好的解决办法吗?非常感谢。和平与爱。skr有两种典型的方法可以解决这个性能问题(太多的绘制调用):- 使用实例化渲染- 将所有几何体合并为一个几何体(因此只有一个网格)...

日期:2021-12-11 08:00:02 浏览:1742

three.js可缩放场景背景

three.js大家好,我有一个场景,由一个物体(反射雕像)组成,保持在一个漂亮背景的中心。我一直在使用威尼斯日落矩形hdr地图作为我的场景背景它既可以作为环境地图,也可以作为背景我看到背景不会与场景中渲染的网格一起缩放。这给人一种场景完全是假的感觉。i、 e状态向上/向下缩放,但背景不缩放。目前,我已经禁用了放大/缩小功能,这样用户就不会感到害怕。我的问题是:1. 当轨道控制放大/缩小时,我是否需要在此处使用一些着色器魔法来放大或缩小场景背景,以便看起来场景中的所有对象都在均匀缩放?或者这根本不可能做到?...

日期:2021-12-11 09:00:02 浏览:1264

three.js移动导入的Gltf模型

three.js我导入了我的gltf模型并将其添加到场景中,但现在如果我尝试移动它,它将不会=新建三、几何();var=混音器( 模型动画[0]>如何移动模式?Prakar_Srivastava:var>3D对象不能是Geometry或BufferGeometry类型。它应该是Object3D或类似Mesh、Points或Line的派生类的实例。在您的情况下,我只是这样声明变量:var mode;在动画循环中,执行以下操作:如果(mod!==未定义)>还请记住,基本3D场景的重要部分在代码片段中丢失(例如相...

日期:2021-12-11 10:00:01 浏览:1099

three.js平面明暗处理的问题

three.js嗨!我在项目中使用节点材质。我在模型渲染方面有问题。它看起来像是真实的平面阴影。如何平滑多边形?也有点像低分辨率阴影纹理贴图的自阴影。可能不是,但可能是。@Arkadiy\\u Vinkovskiy您需要在您的帖子中添加更多细节。屏幕截图不足以说明这里发生了什么。始终包括引起问题的代码,如果您使用的是模型,也要包括这些代码。更好的是,使用codepe制作一个工作示例...

日期:2021-12-11 10:00:02 浏览:991

three.js如何渲染立方体材质?

您好,直到昨天,我才相信Object3D是一组网格,而网格是一组几何体+材质,每个对象只有一个对象。我发现了立方体材质的结构,因此object3D的网格包含1个几何体(boxGeometry)和6个材质!所以问题是,这种网格的渲染效果如何?有关于它的文件吗?(这是为了提高我对three.js)非常感谢还有其他问题,与我的上一个帖子相关,如果一个网格中可能有多个材质,如何设置CustomDistanceMaterial以考虑所有材质的所有贴图?elysium11:所以问题是,渲染如何在这种类型的网格上工作?您...

日期:2021-12-11 11:00:03 浏览:851

three.js如何创建要在网格中拟合的线段

three.js伙计们,我想帮忙,假设我有一个这样的网格图像718×729 1.25 KB我想在网格面内创建线段,也就是说,我想将网格转换成这样的线图像710×828 740字节有人能帮忙吗???...

日期:2021-12-11 12:00:01 浏览:900

three.jsGLTFLoader.js这是我的登记簿错误

three.js每当我试着做决定的时候3.GLTFLoader对象我收到此错误代码:“未捕获类型错误:这是我的登记簿不是一个函数“我需要帮助!由Penta#u Trax在post#5中解决我最终发现我一直在使用错误的文件,当你需要使用jsm/example时,我使用的是js/example。其他东西也是个问题。但这是问题的基础。你能给我们看看你的代码吗?通常,如果你使用的是import语句,GLTFLoader不需要在前面加三个字符。好的,所以在这之前,我刚刚关注了这个视频,因为它是去年发布的。但是现在我试...

日期:2021-12-11 12:00:02 浏览:1061

three.js使用threejs的光流

嘿,我需要通过我的屏幕显示一束移动的光束。我不想使用任何模型或动画。我想知道我是否可以单独使用threejs来实现这一点。我也应该能够控制其运动的颜色强度和路径。嗨!也许这会有帮助:GitHub-jeromeetienne/三倍体积聚光灯: three.js扩展以提供体积聚光灯13,用于可视化光锥。您可以使用THREE.Curve()设置其路径。控制颜色强度,可能取决于曲线上的位置,也可以使用tween.js或者GSAP用于复杂的动画。创造力取决于您这是您想要的吗?https://threejs.org/e...

日期:2021-12-11 13:00:01 浏览:1302

three.js使用光线投射动态绘制多边形

我要画多边形three.js具有交点。为此,我使用下面的函数。首先,我使用光线投射器在第一个交点的第一个点添加球体。每次单击后,在交点处创建新球体,并在该交点和上一点之间创建线。现在,我希望在第一次单击时关闭多边形指向或单击该点周围。如何实现此目标。raycaster params是否与网格一起工作以检测鼠标位置周围的网格?function checkIntersectionclick() = raycaster.intersectObjects(addedObject, true);if (interse...

日期:2021-12-11 13:00:02 浏览:859