如何使用带有aframe-v1.1.0.min的collada模型
自2018年以来,我一直在使用A框架向我工作的董事展示我的场景.我将Colladas文件用于我的对象,一切都很好,我的纹理很棒 我想要的.但是由于WebXR(Aframe-V1.1.0.min)出现了,因此不再使用 Collada我尝试了GLTF文件,但它太重,不令人满意.因此,我想知道如何将Collada重新放回A框架.我尝试了:" Collada-Model-Legacy.js" 在另一个文件夹中使用" colladaloader.js",但它不起作用.你有解决方案吗? 谢谢你 解决方案 您可以使用来自三个存储库中的任何加载程序 - 也可以使用 colladaloader . 您可以创建一个包装器组件,该组件将使用三J加载程序并将模型添加到场景中: AFRAME.registerComponent("foo", { init: function() { const el = this.el; // create a loader con
2 2024-01-19
编程技术问答社区
将3D 4x4旋转矩阵转换为2D
说我们有一个带有类似索引的4x4矩阵: 00 01 02 03 10 11 12 13 20 21 22 23 30 31 32 33 一个人如何转换旋转数据(如果有帮助的话,忽略z轴)将其转换为单个2D旋转角度(弧度)? ? 背景:我有一个从搅拌机导出到Collada格式的3D .DAE动画.动画在技术上是2D,所有z轴值均为0.我正在尝试将4x4矩阵转换为2D翻译,旋转和比例数据. 解决方案 比例矩阵S看起来像这样: sx 0 0 0 0 sy 0 0 0 0 sz 0 0 0 0 1 翻译矩阵T看起来像这样: 1 0 0 0 0 1 0 0 0 0 1 0 tx ty tz 1 z轴旋转矩阵R看起来像这样: cos(a) sin(a) 0 0 -sin(a) cos(a) 0 0 0 0 1 0 0 0 0 1 如果您具有转换矩阵
4 2024-01-08
编程技术问答社区
scntool: 转换文件失败,失败原因: *** -[__NSSingleObjectArrayI objectAtIndex:]: 索引 1 超出范围
我正在根据Xcode 9.3制定基于iOS 11.3 Scenekit项目.我有几个3D模型的.DAE文件格式. 每当我构建项目时,其中一种模型不会被复制到最终的iOS捆绑包中.挖掘错误,我会在复制捆绑包资源构建阶段中获得以下错误: Copy SceneKit assets Models.scnassets ...in /Users/andrew/Documents/src/gordon/gordon scntool: failed to convert file with failure reason: *** -[__NSSingleObjectArrayI objectAtIndex:]: index 1 beyond bounds scntool: Conversion failed, will simply copy input to output. scntool: Copy failed file:///Users/andrew/Library/Develop
2 2023-12-19
编程技术问答社区
如何在Xcode中用半透明的纹理渲染3D模型?
我无法在Xcode中正确呈现带有纹理透明胶片的3D模型. 头发的3D模型由两个几何(头发和帽)组成,是在Maya中创建的.它是从正确渲染的模型看起来像这样(无头): i将模型导出到Collada格式(DAE),将其及其纹理放入文件夹model.scnassets中,并将其添加到Xcode中.但是,在Xcode场景编辑器中,它是这样渲染的: 这里有什么问题? 更新: 设置Transparent > Intensity = 5,Settings > Transparency > Blend Mode = Double Sided,Settings > Transparency > Options > Writes depth = false在正确渲染蓝色球体的头发多边形的地方给出了此图像头发模型背面的那些.这显然是由于Writes depth = false,但似乎有必要使其呈现半透明的头发. (在这里使用棕色纹理而不是读取,但是结果是相同的) ) 解决
0 2023-12-19
编程技术问答社区
无法显示缓存目录中的3D文件
您可以帮助我在这里确定问题吗? 看来我无法从Cache Directory显示3D文件.我有这个错误场景IO:错误,该平台上不支持Collada文件. 在高速缓存目录中保存的zip文件IM包含.dae文件和.png for Teckuree. 使用场景套件,您可以: 导入Collada 3D对象并构建由相机,灯光和网格组成的场景. /mac/documentation/3ddrawing/conceptual/scenekit_pg/introduction/introduction.html 谢谢. dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(queue, ^{ NSURL *url = [NSURL URLWithString:@"my url" NSData *data = [
0 2023-12-19
编程技术问答社区
在Mathematica中导入Google Sketchup模型
Google的Sketchup是一个不错的,简单的3D-Object Modeler.此外,Google具有巨大的 free sketchup的版本不会导出到KMZ(Google Earth)和DAE(Collada)格式以外的任何其他格式.尽管MMA可以读取kmz/kml文件,但未读取包含3D对象的文件. DAE文件是Zipled Collada文件的,可以通过MMA的导入读取为XML.所产生的XML树非常复杂,就像我的问题是:如何在Mathematica中基于干净的多边形结构中转换SKP文件? 我更喜欢一个 解决方案 可能并不完全是您要寻找的东西,但是我维护了一个python库,称为 pycollada .您可以使用它导出到Mathematica的格式.我还一直在开发一个名为 meshtool "> meshtool 您可以为您写一个模块的模块那将导出到Mathematica的格式. 其他解决方案 我目前遵循的路线涉及多个步骤: 从在 sketchup的免费版本
0 2023-12-11
编程技术问答社区
在Three.JS中通过鼠标点击选择Collada对象
我需要通过鼠标单击"三"中的三分对象.我知道我可以基于其ID选择对象,并且看到了一些用户可以与几何学定义对象进行交互的示例(在这里).但是我需要访问Collada格式的对象. 解决方案 假设dae_scene是从Colladaloader返回的Collada场景,这是您可以检查交叉点的方法: var toIntersect = []; THREE.SceneUtils.traverseHierarchy(dae_scene, function (child) { if (child instanceof THREE.Mesh) { toIntersect.push(child); } }); 这将在Collada场景中获取所有网格对象.然后,您可以使用该数组来查找射线交叉点,例如: var ray = new THREE.Ray( camera.position, vector.su
6 2023-11-30
编程技术问答社区
collada模型看起来很奇怪(three.js)
Collada模型在三个JS中看起来很奇怪.屏幕截图: 代码很简单,没什么特别的: loader.load( 'models/police_car.dae', function ( collada ) { dae = collada.scene; init(); }); 我从Google Sketchup仓库下载了该模型. [我不知道有什么问题,因为我是三分之遥.我应该调用一个函数来修复它吗? 预先感谢 解决方案 我认为这是因为后面没有渲染而发生的. Collada无法指定面部是否应双面. Google Earth使用此方法导出此信息: 1 three.js使用称为doubleSided的对象上的属性来指示面部是否是双面的,但是Collad
12 2023-11-30
编程技术问答社区
更改三个上的纹理和颜色。js collada对象
我最近使用ColladaLoader.js的官方网站从官方网站(.dae)中获得了3.js示例. 现在我的问题是,如何更改加载的Collada对象颜色属性并添加自定义纹理?我尝试添加质地,还没有运气. 这是我的代码(与原始示例稍有更改): function load_model(el) { if ( ! Detector.webgl ) Detector.addGetWebGLMessage(); var container, stats; var camera, scene, renderer, objects; var particleLight, pointLight; var dae, skin; var loader = new THREE.ColladaLoader(); loader.op
6 2023-11-30
编程技术问答社区
xcode9 / SceneKit-.dae 文件未加载到 SCNScene- 返回 nil
我正在尝试使用以下代码将.DAE文件加载到SCNSCENE中: let solutionScene = SCNScene(named: "art.scnassets/level1.dae") print(solutionScene?.rootNode) // prints nil solutionNode = solutionScene?.rootNode.childNode(withName: "level1", recursively: true) i从Blender作为Collada带有默认设置的.DAE文件,仅包含一个简单的对象. 当我单击Art.scnassets文件夹中的.DAE文件时,它会毫无问题地打开,我可以看到几何,相机等. 我只是无法将其加载到ScnScene中.我在搅拌机侧还是Xcode/swift方面错过了什么? 解决方案 如果有人遇到类似的新手问题,则通过将.scnassets文件夹添加到项目的构建阶段中的"复制捆绑包资源"来解决
6 2023-10-20
编程技术问答社区
将 collada (dae) 文件载入 SCNNode(Swift-SceneKit)
这有效 let scene = SCNScene(named: "house.dae") 节点是否有等效的? let node = SCNNode(geometry: SCNGeometry( ..??.. "house.dae" ..??.. )) 我已经搜索了高和低,没有发现将整个DAE文件加载到scnnode中的任何内容. (不仅是一个ID) 解决方案 // add a SCNScene as childNode to another SCNScene (in this case to scene) func addSceneToScene() { let geoScene = SCNScene(named: "art.scnassets/ball.dae") scene.rootNode.addChildNode(geoScene.rootNode.childNodeWithName("Ball", recursively: true)
4 2023-10-20
编程技术问答社区
从 scenekit 提取顶点
我在理解场景几何时有问题. 我有来自Blender的默认立方 现在我想查看立方体的顶点.在DAE中,我可以看到以下" Cube-mesh-positions-array", " 1 1 -1 1 -1 -1 -1 -1 -1 -1 -0.999998 -1 -0.9999997 1 -1 1 0.99999995 1 0.99999994 -1.000001 1 -1 -0.999999997 现在我想在Scenekit中做的是将顶点恢复,使用以下内容: SCNGeometrySource *vertexBuffer = [[cubeNode.geometry geometrySourcesForSemantic:SCNGeometrySourceSemanticVertex] objectAtIndex:0]; 如果我处理了Vertexbuffer(我尝试了许多查看数据的方法),则似乎不正确. 有人可以解释什么" scngeometrysourcesem
8 2023-10-20
编程技术问答社区
用threejs进行STL渲染
我创建了一个3D模型,用于在3D工业布局中打印. 因为我没有使用专业的3D建模器软件来播放,所以我使用了Sketchup,结果很好! 现在,我想重复使用3D模型来进行"待办事项"安装的动态访问. 我以Collada格式(DAE)导出了每个对象,然后尝试将Collada进口商用于三j. 我有大约130个对象,我希望能够进行交互选择,但是我只能加载一个... 然后,我尝试使用STL加载器(在使用MESHLAB从DAE到STL的对象后). ). 然后它起作用而没有任何问题...但是呈现问题. 在链接的图片中(对不起,声誉不足以插入图像!),您可以看到对象的某些部分似乎是"透明度",即使它们没有此属性设置! (只有地面是). 在与轨道枪control移动时,某些部分不时消失. 我只用一个物体尝试或不带一个地面,... 我拍摄了我遇到的问题的快照: 图1,在红色圆圈内,错误出现 图2,没有地面,是相同的:应该隐藏的某些部分不是 图3,线框渲染
18 2023-10-20
编程技术问答社区
Threejs collada模型位置
我一直在研究三个框架以渲染 *.DAE模型.有几种DAE模型.我对模型的位置有问题.当我渲染它们时,每个型号都有不同的位置.我设置了他们的位置dae.position.set(0,0,0);,但不幸的是,它不能完美地工作. 例如,对于一个模型,我必须将位置设置为dae.position.set(-2, -31, 6.5);,然后模型在位置(0,0,0).我用axes axes.position.set(0,0,0);. 检查它 您有任何想法吗,为什么模型不在x,y,z. 的零位置上 感谢您的帮助.我是三分之三的新手.我希望我能清楚地解释自己:) 解决方案 模型的顶点偏离了原点,因此您可以通过设置dae.position. 来补偿. 您可以通过这样的模型自动调整DAE位置: var box = new THREE.Box3().setFromObject( dae ); // compute the bounding box of the model b
18 2023-10-20
编程技术问答社区
Three.JS--检测 Collada 中的交叉点(光线投射)
我的原型系统中有一个函数,该功能在您单击Collada文件时检测交叉点.相交功能如下: function Intersectfun ( event ) { mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1; mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1; var vector = new THREE.Vector3( mouse.x, mouse.y, 1 ); var toIntersect = []; THREE.SceneUtils.traverseHierarchy(scene, function (child) { if (child instanceof THREE.Mesh) { toIntersect.push(child); } }); // Unproject the
10 2023-10-20
编程技术问答社区
网状组不可见三.
Sketchup允许制作组件促进重新使用几何形状.例如,可以将车轮制成一个组件,并且该组件的4个实例可用于汽车的4个车轮. 问题是如何将每个重复使用的组件放入其自己的单独的三个.object3d实例中(然后可以旋转,定位,...即单独控制) 即.如何将汽车的四个车轮中的每个车轮作为4个单独的三个车轮.Object3D实例. 为此,我从Sketchup中导出了DAE,并使用Thrim.js Colladaloader加载了DAE.但是,分组的几何形状并未由三个JS渲染.同一DAE内的未分组的几何形状可以. 尝试了一些解决方法,例如将DAE导入Belnder,并使用Trix.js Blender Exporter进一步导出到.OBJ和JSON.使用这些解决方法,分组信息丢失了. 我正在尝试研究coldaloader.js代码以查看解决方案是否位于那里. 这个stackoverflow问题似乎相似(对于Blender来说, sketchup)有一个答案,但答
4 2023-10-20
编程技术问答社区
ColladaLoader和progressCallback
在ColladaLoader>? 中实现A 加载栏的正确方法是什么 源代码显示加载程序采用三个参数.一个是progressCallback. progressCallback( { total: length, loaded: request.responseText.length } ); 如果我调用progressCallback显示值的函数,则total以null为单位,loaded最高为5,200,000. function(callback){ console.log(callback.loaded + ' / ' + callback.total); } 如何使用ColladaLoader连接加载元素的某种百分比? 解决方案 查看ColladaLoader.js的源代码,看起来progressCallback函数检查 collada文件中的字符总量(5,200,000)和量字符读. 您可以使用 获得百分比 var pe
6 2023-10-20
编程技术问答社区