1. 首页
  2. three.js

three.js[已解决]“倾斜笔刷”功能使用meshilnes在webxr中表现不佳

three.jsn编辑:解决了,在这里发现了一个类似的问题3并采用了OP的策略(每帧将阵列的其余部分设置为最新的控制器位置)。根据该评论,仍然不确定setDrawRange是如何工作的。将此留给子孙后代!)n工作代码:nfor = position.z;}this.currentPos++;this.line.setBufferArray(this.positions);}n大家好,n我正在与threejs网格线4(Ryan King’s fork of@thespite’s pretty-Villent lib)合作,试图在WebXR中创建一个倾斜画笔类型的画笔。该代码目前正在运行,但性能非常糟糕(与正常行不同,正常行运行良好;但是,我们需要一个“类似画笔”的线宽)。我已经经历了如何更新几何体的种种考验,并决定:n1. 创建一个名为大小为(MAX_POINTS *3)的this.positions的初始Float32Array(其中MAX_POINTS是100、1000、10000-在这些范围内似乎不会影响性能),以及一个drawCount计数器,它将更新每个帧并将范围设置到该计数器,基本上更新数组中最新的控制器位置向量并绘制一条线。n2. 创建一个新的MeshLine()对象并setGeometry在更新(/rAF)时使用所述数组,如果按下控制器触发器,则更新所述数组如下:n3. 绘制线(位置){这是我的位置[这是提款单>在哪里setBufferArray看起来像==0;j这是8的样子。正如我所提到的,在一台非常好的机器上(i7,32GB Ram,2070RTX…)这种情况发生得非常慢。我想知道动态创建网格线的最佳方法是什么,因为我已经在使用float32阵列和网格线(从BufferGeometry继承而来)。我已经看了胖线示例,但除非我错了,否则它不适合在运行时进行动态位置更新。我可能会再试一次,但在这一点上,我已经处理了足够长的时间来寻求帮助。当前代码在这里8。非常欢迎任何/所有指针。提前谢谢你!您可能会在A-Painter性能优化16中找到一些想法。谢谢!我一直在引用A-Painter,这篇文档对于理解他们对共享缓冲区几何体的处理非常有帮助。我怀疑我正在做的事情比那些解决方案要愚蠢得多-它们似乎是为了减少大量tri和网格,而我的解决方案从第一个tri开始就很慢。但我会更深入地挖掘这篇文章,谢谢!n [solved] “Tilt Brush” functionality using meshilnes very unperformant in webxrn

three.js[已解决]“倾斜笔刷”功能使用meshilnes在webxr中表现不佳 为WP2原创文章,链接:https://www.wp2.cn/three-js/three-js%e5%b7%b2%e8%a7%a3%e5%86%b3%e5%80%be%e6%96%9c%e7%ac%94%e5%88%b7%e5%8a%9f%e8%83%bd%e4%bd%bf%e7%94%a8meshilnes%e5%9c%a8webxr%e4%b8%ad%e8%a1%a8%e7%8e%b0%e4%b8%8d%e4%bd%b3/