- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近一直在玩增强现实(并且也玩得很开心!!)我已经能够创建 PaperVision 基元(立方体、圆柱体、圆锥体等......并使用它们)但是添加 DAE 模型是证明是虚幻的!
var cubeMaterialList:MaterialsList = new MaterialsList( { all: new FlatShadeMaterial(light, 0x0099FF, 0x0066AA) } );
var cube:Cube = new Cube(cubeMaterialList,
30,
30,
30);
cube.z += 15;
mainContainer.addChild(cube);
private var mCollada:Collada;
private var universe:DisplayObject3D;
mCollada = new Collada("sample.dae");
universe = new DisplayObject3D();
universe.addChild(mCollada);
mainContainer.addChild(universe);
最佳答案
Click here to view a video of the necessary imports and working demo on my site.
我注意到您使用的是 Collada 类,而不是 DAE 类,它们的行为与视频 abobe 中显示的有所不同。
同样重要的是要注意,您很可能正确地执行此操作,并且模型或什至可能是纹理存在问题。如果纹理未加载,您应该立即从控制台知道。尝试创建一个 ColorMaterial 并创建一个 MaterialsList 对象,将“all”属性设置为您创建的 ColorMaterial。最后通过实例化或加载方法将列表传递给 Collada 或 DAE Classes 的实例化。还要确保相机没有放大到关闭,可能会将 3D 对象留在其后面。最后玩转比例,并非所有模型都具有相同的比例,并且使用 Collada 类,而不是 DAE,似乎可以将模型炸毁,如上面的视频链接所示。
最近我有很多时间与 FlarToolkit/Papervision3D/Collada 合作伙伴合作,为 Tony Hawk XI 网站做准备。
- 你需要什么
package
{
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.media.Camera;
import flash.media.Video;
import flash.utils.ByteArray;
import org.libspark.flartoolkit.core.FLARCode;
import org.libspark.flartoolkit.core.param.FLARParam;
import org.libspark.flartoolkit.core.raster.rgb.FLARRgbRaster_BitmapData;
import org.libspark.flartoolkit.core.transmat.FLARTransMat;
import org.libspark.flartoolkit.core.transmat.FLARTransMatResult;
import org.libspark.flartoolkit.detector.FLARSingleMarkerDetector;
import org.libspark.flartoolkit.pv3d.FLARBaseNode;
import org.libspark.flartoolkit.pv3d.FLARCamera3D;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.render.LazyRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.objects.parsers.Collada;
import org.papervision3d.objects.parsers.DAE;
/**
* ...
* @author Brian Hodge
*/
public class Main extends Sprite
{
[Embed(source="../lib/camera_para.dat", mimeType="application/octet-stream")]
private var CameraParameters:Class;
[Embed(source="../lib/collada.pat", mimeType="application/octet-stream")]
private var MarkerPattern:Class;
private var cameraParameters:FLARParam;
private var markerPattern:FLARCode;
private var raster:FLARRgbRaster_BitmapData;
private var detector:FLARSingleMarkerDetector;
private var cam:Camera;
private var vid:Video;
private var capture:BitmapData;
private var cam3D:FLARCamera3D;
private var scene3D:Scene3D;
private var viewPort:Viewport3D;
private var mainContainer:FLARBaseNode;
private var renderer:LazyRenderEngine;
private var trans:FLARTransMatResult;
private var prevSet:Boolean = false;
private var prevZ:Number = 0;
private var _collada:Collada;
private var _dae:DAE;
public function Main():void
{
cameraParameters = new FLARParam();
cameraParameters.loadARParam(new CameraParameters() as ByteArray);
markerPattern = new FLARCode(16, 16);
markerPattern.loadARPatt(new MarkerPattern());
cam = Camera.getCamera();
cam.setMode(640, 480, 30);
vid = new Video();
vid.width = 640;
vid.height = 480;
vid.attachCamera(cam);
addChild(vid);
capture = new BitmapData(vid.width, vid.height, false, 0x0);
capture.draw(vid);
raster = new FLARRgbRaster_BitmapData(capture);
detector = new FLARSingleMarkerDetector(cameraParameters, markerPattern, 80);
cam3D = new FLARCamera3D(cameraParameters);
scene3D = new Scene3D();
mainContainer = new FLARBaseNode();
scene3D.addChild(mainContainer);
viewPort = new Viewport3D(vid.width, vid.height);
viewPort.scaleX = viewPort.scaleY = 2;
addChild(viewPort);
renderer = new LazyRenderEngine(scene3D, cam3D, viewPort);
_dae = new DAE();
_dae.load("assets/dae/apc.dae");
_dae.rotationZ -= 90;
mainContainer.addChild(_dae);
/*
_collada = new Collada("assets/dae/apc.dae");
_collada.scale = 0.05;
_collada.rotationZ -= 90;
mainContainer.addChild(_collada);
*/
trans = new FLARTransMatResult();
this.addEventListener(Event.ENTER_FRAME, mainEnter);
}
private function mainEnter(e:Event):void
{
capture.draw(vid);
if (detector.detectMarkerLite(raster, 80) && detector.getConfidence() > 0.5)
{
detector.getTransformMatrix(trans);
mainContainer.setTransformMatrix(trans);
mainContainer.visible = true;
renderer.render();
}
else
{
mainContainer.visible = false;
renderer.render();
}
}
}
关于flash - AS3 DAE 增强现实 PaperVision 3D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/673059/
我已从 Blender 导出了 sphere.dae 文件并导入到 Xcode 中。该网格文件具有纹理和法线贴图。我已将纹理和法线贴图应用到 Scenekit 编辑器中的球体文件,并且网格文件在编辑器
我正在尝试使用 TinyXML 将网格从 .dae 文件读取到 DirectX 项目,但我很难理解 .dae 文件如何存储网格数据。 我相信我已经找到存储网格数据的位置:在标签内 有以下代码:
我用 blender 制作了 3d 模型,我想在场景套件中使用它。 var platform = SCNNode(); let dae = SCNScene(named:"platform.dae")
我正在尝试找出 Dymola 解决 Modelica 代码所需的步骤。通过阅读一些引用文献和书籍,我了解到 Dymola: 将 Modelica 代码转换为混合 DAE(扁平化)。 操纵 DAE 以将
大家好 我想在 js 中动态更改 .dae AFRAME.registerComponent('model-overrider', { init: function() {
解决方案: 感谢Rabbid76,我需要使用模型矩阵更新顶点着色器中的Normal vector 。更新了顶点着色器: #version 330 core layout (location = 0)
我需要渲染iOS中 .dae [collada] 类型的3D模型, 我搜索并找到几个链接 Wavefront Molecules openscenegraph iSGL3D 但我不确定它们是否将支持.
Collada (dae) 文件格式是否可用于内容,还是严格用于 3D 工作室之间的互惠等?例如,我创建了一个 XNA 游戏,我可以创建一个加载器并将其加载到我的游戏中使用吗?这样做是否明智且合法?或
我正在尝试在 SceneKit 场景中为我的模型制作动画: 创建一个简单的立方体模型并将其导出到 cube.dae 为立方体创建一个简单的骨架并使用骨骼制作一个简单的旋转动画并将其导出到animati
遇到一个奇怪的 scenekit Assets 问题...我有一个 Assets 文件 (catalog.scnassets) 在 Xcode 中似乎没问题。我向其中添加了一个 dae 文件,该文件也
我可以使用 collada to gltf 制作 gltf 文件转换器。 但是有没有办法扭转这种局面? 最佳答案 更新 - 2019 年 10 月 - Blender 2.80 附带完整的 glTF
我是“物理系统建模”主题的新手。我阅读了一些基础文献,并在 Modelica 和 Simulink/Simscape 中做了一些教程。我想问你,如果我对以下内容理解正确: 符号操作是将微分代数方程组(
./textures/Seats_Lvl2b_2k.jpg 在通过 ThreeJS 网站提供的 Collada 的默认
好的,我在这里使用 ARKit 和 SceneKit,我无法查看其他仅处理 SceneKit 试图在 .dae 中创建模型的问题格式化并加载各种动画以运行该模型 - 现在我们在 iOS11 中似乎有些
我检查了所有可能的解决方案,包括: 重新启动 Mac 从 get_info 窗口更改红色/写入权限。 使用“sudo chmod 命令”从终端更改读/写权限 还尝试过 this command . 通
我试图理解 collada 文件的结构。具体来说,我正在使用库 pycollada ( https://github.com/pycollada/pycollada )。我有 2 个问题。 问题 1:
在创建游戏应用程序时使用 Xcode 自动生成的代码,我设法替换了新的可用的 .dae,但是当我使用更复杂的代码时,应用程序崩溃并抛出 EXC_BREAKPOINT(),知道原因以及如何解决吗? (打
我有一个项目,我必须在其中将不同的文件导入到 blender 中。我只是 blender 的初学者,它是 python API。我正在寻找一种使用 python 脚本将 .dae 文件导入 blend
我的 ARKit 开发遇到了一些 DAE 问题。 我以 DAE 格式从 Autodesk max 中导出我的 3D 模型并将其导入 Xcode,它在 Xcode 中工作正常,但在我的应用程序中不可见。
我在 Xcode 6.1.1 上使用 iOS 游戏模板创建了一个新项目,选项是: Language: Swift Game Technology: SceneKit Device: Universal
我是一名优秀的程序员,十分优秀!