jjzjj

javascript - 将 C# 3D 数组移植到 JS 3D 数组

我开发了一个c#库,它在3个项目中使用,该库在该特定代码段中中继,但是,我仍然需要在javascript中使用该代码,所以我将其移植出去,问题是,我不认为我可以复制相同的逻辑,例如,我一直在想这几天我无法得到答案。在C#库中,我有一个3D数组,它有点像应用程序中的核心属性,但我似乎无法弄清楚如何在JS环境中实现它。例如我有这段代码:publicObj[,,]objs=newObj[18,14,8];我会在每个位置分配对象,并尝试将其移植到javascript,这似乎会导致:var3dArr=newArray();3dArr[0]=newArray();3dArr[0][0]=newAr

javascript - 基于对象边界框的相机控制?

three.js的正常轨道控制非常适合圆形物体,但不适用于长物体(尤其是当缩放关闭时),我正在寻找解决方案来解决这个问题。很难用语言描述,请查看来自Google的这个webgl示例(放大到最大可以看到):https://www.google.com/o3d/shopping/viewer/360?q=ymMBhK8fu3C&o3ds=use_3d这是我正在寻找的俯View:我正在考虑基于默认OrbitControls的使用,从相机到边界框的连续转换光线并保持恒定距离,但问题是相机始终注视着物体的中心,这与上面的示例不同(cam仅旋转当到达物体的Angular落时)。任何想法将不胜感激。

javascript - 在 HTML5 Canvas 上创建立体 3D 图像

我正在使用HTML5canvas对象创建一个简单的3D引擎。它运作良好,但我想实现红/蓝立体图像处理,这样人们就可以使用红/蓝眼镜真正看到3D。目前,我对3D对象进行了两次渲染,第二次是从紧挨着第一个相机位置的相机位置渲染的。我面临的问题是如何将渲染的两个对象组合成具有正确颜色的浮雕。现在我使用globalAlpha=0.5并将第一个渲染为红色,第二个渲染为蓝色。然而,这并不完全有效,因为仅受红色对象影响的像素应该保持红色,但由于我的背景颜色是黑色,它们会变成黑色和红色之间的颜色。在查看创建3D浮雕的应用程序时,我注意到红色和蓝色像素一起计算如下:2550000255---------

javascript - 三.Object3D.add : object not an instance of THREE. Object3D

所以我遇到了这个错误,但我找不到它的来源。我相信这与我在场景中导入和创建3d对象有关,但我不确定我做错了什么。代码如下:我在调用init之前调用此函数functionloadObjects(){loader=newTHREE.JSONLoader();varfloorDiskmaterial=newTHREE.MeshPhongMaterial({map:THREE.ImageUtils.loadTexture('img/floor_test.jpg'),transparent:true,color:0xeaeaea,ambient:0xeaeaea,overdraw:0.5,//sp

javascript - 将几何添加到 THREE.Object3D

我已经编辑了这篇文章以使其更加清晰。好吧,我在这里要做的是表示一个由8个不同三Angular形组成的图block。每个三Angular形都应该能够独立地改变它的颜色。所以,我遇到的问题是,当我更改单个三Angular形的颜色时,它会更改中间线条的颜色,如您在第二张图片中所见。这是创建磁贴的代码:vartile=[];varn=0;for(vari=0;i要更新我使用此代码的Tile三Angular形的状态:for(varj=0;j这是更改Material的正确方法吗?我稍微简化了代码以更好地展示我的问题。但是,真正的代码在这个存储库中https://github.com/tul1/Ti

javascript - 将 Canvas 上的视频转换为 3d 网格的合适起点是什么

目前是否有用于将Canvas中的视频流转换为3D网格的JavaScript库?示例情况是将相机对准杯子并捕捉原始图像,将以前的数据与新数据进行比较以生成视野内物体的边缘轮廓,理想情况下将其转换为最简单的多边形集并显示在第二个Canvas元素中计算多边形/模型。我看过mrdoob在3djavascript上的一些出色工作,从对象文件到Canvas中的渲染,但我希望捕获原始数据并尝试生成网格。目的是通过套接字在2个用户之间发送网格点,以获取当前在相机View中捕获的任何对象。感谢任何帮助。 最佳答案 它不是一个库,但这里演示了您正在寻找

javascript - THREE.JS场景中永无止境的地板

在我的canvasthree.js场景中创建一个各个方向连续的地板的最佳方法是什么?将THREE.PlaneGeometry附加到相机位置是否会更好,以便它与相机一起移动。或者是否有另一种使用纹理对场景的地板进行纹理化的方法。我在PlaneGeometry的可见性方面遇到了一些问题,出于某种原因,我必须与它保持一定距离才能看到它。/*Floor*/vargeometry=newTHREE.PlaneGeometry(1000,1000,1,1);varmaterial=newTHREE.MeshBasicMaterial({color:0x0000ff});varfloor=newTH

javascript - 如何将剪切面渲染为实体对象

在Three.js中,我有一个3d对象,我在其中使用局部剪切平面来仅渲染对象的一部分。但是,由于3d对象是“空心的”(意味着只有外表面被渲染),当我们从该表面剪下任何东西时,我们可以“看到”对象。这是我的意思的一个例子,clippingacorneroffacube.请注意我们如何看到对Angular的背面。我想赋予物体实体的外观。基于thisissue,似乎实现此目的的最佳方法是在剪切区域上创建一个表面,从而盖住孔并使对象看起来不像是空心的。我的问题是,我怎么知道在哪里构建这个表面?Three.js是否提供了一种方法来获取在平面和任意表面之间相交的顶点列表?如果没有,我自己该如何解决

Cesium 中的离屏渲染

Cesium中的离屏渲染本文参考了众多文章,均列在了最后。先感谢各位的分享精神,如觉有冒犯,请与我联系。部分内容来自个人理解,欢迎指正交流。为了达到更加真实的渲染效果或其他计算需求,很多时候需要利用被渲染物体在其他状态下(比如通过另一相机渲染)的中间渲染结果,处理到最终显示的渲染场景中。这种中间渲染结果,就保存在帧缓冲区对象(FrameBufferObject,FBO)中,包含颜色缓冲区和深度缓存区。由于其结果并不直接被显示出来,所以这种技术也被称为离屏渲染(Off-ScreenRendering)。在深入了解Cesium的离屏渲染前,需要先了解WebGL的渲染过程。WebGL渲染过程大家都知

javascript - 从 Object3D 中移除子对象

如果我按以下方式创建对象:vargroup=newTHREE.Object3D();for(vari=0;i那么,如何从该组中删除这些对象?我试过这样做...for(vari=group.children.length-1;i>=0;i--){scene.remove(group.children[i]);}...但它输出为“未定义”。我在这里做错了什么? 最佳答案 for(vari=group.children.length-1;i>=0;i--){group.remove(group.children[i]);}