草庐IT

three-tier

全部标签

javascript - 如何为 three.js 编写单元测试?

基本上,我要问的是,有没有办法为我的JavaScript文件为three.js库编写单元测试?我有一个3D查看器,其中包含摄像头、渲染器、加载器等...如何为类似的东西编写测试?那里有我可以阅读的东西吗?有可能吗? 最佳答案 我找到了一种以headless方式对webgl/threejs进行单元测试的方法。这不需要任何图像比较等。https://github.com/AmitTeli/webgl-three-test采取的方法:将所有全局变量(如场景、渲染器和相机移动到index.html在加载页面时初始化它们。例如在这个react

javascript - 在 Three.js PointCloud 中将正方形更改为圆形?

我正在使用PLYLoader加载一个.ply文件,并使用three.js中的PointCloud对象渲染它。varloader=newTHREE.PLYLoader();loader.addEventListener('load',function(event){vargeometry=event.content;varmaterial=newTHREE.PointCloudMaterial({vertexColors:true,size:0.01});varmesh=newTHREE.PointCloud(geometry,material);scene.add(mesh);});l

javascript - Three.js - 释放内存

我使用内置的形状挤出功能沿着样条线挤出形状。每次移动样条曲线的节点时,我都会创建一个新网格。但是这个我的内存很快就满了。每次我创建一个新的网格时,我都会删除旧的scene.__removeObject(mesh);但它不会释放已用内存。我测试了FirefoxNightly和Chrome,如果内存已满,它们都会崩溃。我搜索了一般的WebGL功能和Three.js相关的解决方案,但没有找到任何东西。也许具有更多WebGL/Three.js知识的人可以给我提示。谢谢 最佳答案 确保您没有在其他任何地方引用javascript网格对象,以便

javascript - Three.js - 没有纹理绑定(bind)到单元 0 错误

自从今天的Chrome更新(版本50.0.2661.86(64位)OSX)以来,我基于three.js的应用程序开始输出此警告:[.CommandBufferContext]渲染警告:没有绑定(bind)到单元0的纹理并且应用程序不再加载(它只是停留在加载屏幕上)。为了给出这个错误的奇怪背景,我们用纹理+法线贴图实例化网格,并且有一个奇怪的行为:-如果我们加载应用程序崩溃的所有实例-如果我们加载更少的实例,应用程序加载关于信息,我们在Material创建回调中加载了所有纹理,因此之前的Stackoverflow答案提供了有关此问题的解决方案并没有真正起作用。有没有人知道我们可以改变什么

javascript - 使用 Three.js 变形

我正在使用Three.js开发一个在线工具,更准确地说,它是关于变形和缩放3d对象的各个部分的。我询问是否有一种方法可以像这样在Three.js中变形对象http://n-e-r-v-o-u-s.com/cellCycle/(横条在右上角),以一种自由的方式。以及我如何建模像环面但具有矩形截面而不是圆形的网格。有人遇到过这种问题吗?提前致谢。 最佳答案 如果您正在考虑创建程序几何体,您可以尝试查看http://mrdoob.github.com/three.js/examples/webgl_geometries2.html它们也可

javascript - THREE.js 中 BufferGeometry 的 STL 导出器

我有许多BufferGeometries,它们组成一个场景,它们的网格已经转移到不同的位置。我想知道是否有办法将这个场景从包含BufferGeometries的网格导出到STL文件。非常感谢。 最佳答案 您可以像这样将BufferGeometries转换为Geometry:vargeometry=newTHREE.Geometry().fromBufferGeometry(bufferGeometry);然后您可以导出为STL格式。 关于javascript-THREE.js中Buffe

javascript - 使用干净的 JavaScript 堆配置文件长时间运行的 THREE.js 应用程序中的 GPU 崩溃

我们长期运行的THREE.js应用程序(24/7)在使用几天后崩溃了。我将模拟用户交互的压力测试放在一起,这些测试处于while(true)循环中,这些似乎需要3到4天才能因WebGL_Context_Lost事件,通常表示GPU进程崩溃。我精通ChromeDevToolsHeapprofiler,并且运行了无数次测试,所有测试都在每次模拟之间没有留下任何对象(与上述相同的模拟)。这是其中一个仅显示系统对象的屏幕截图(忽略第一个快照的大小):JavaScript内存和GPU内存在Chrome任务管理器中都在攀升,但稳定下来(我觉得GC被推迟了,因为这些操作太频繁了)。没有连续攀升至崩溃

javascript - 如何检查 webgl(three.js) 的客户端性能

我有一个使用three.JS的图形项目,现在我想自动检查客户端GPU性能并计算我可以在应用程序中加载多少元素。我想到了GPU基准测试之类的东西。 最佳答案 看看stats.js,thisTHREEXplugin和webglinspector. 关于javascript-如何检查webgl(three.js)的客户端性能,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2317877

javascript - 在 Chrome 上使用 THREE.js 在本地镜像上拒绝跨源图像加载

我正在使用THREE.js,但在开发者控制台中收到此错误:Cross-originimageloaddeniedbyCross-OriginResourceSharingpolicy.当我用Chrome打开我的脚本时。代码如下所示:varparticle_system_material=newTHREE.ParticleSystemMaterial({color:0xffffff,map:THREE.ImageUtils.loadTexture("images/circle.png"),});所以你可以猜到,:map:THREE.ImageUtils.loadTexture("imag

javascript - 如何使用 three.js 在两种颜色之间进行补间?

我有一个给定颜色的three.js对象。我想把它平滑地动画成另一种颜色。在动画期间,它应该只显示开始和结束之间的直接渐变。也就是说,它不应该在RGB颜色空间中线性执行补间。我什至不确定HSV空间内的线性补间是否也好看。如何在three.js对象上获得这种颜色补间? 最佳答案 我有一个在HSV空间中制作补间的版本。它并不完美,因为沿途会出现许多不同的色调。Three.js不包含从THREE.Color获取HSV值的方法。所以,添加一个:THREE.Color.prototype.getHSV=function(){varrr,gg,b