SceneKit 修改 3D 对象并导出文件

2024-04-07

在我的应用程序中,我使用 SceneKit Framework 在 SCNView 中显示 3D 对象,并导出修改后的文件,并进行一些小的更改,如颜色、温度等。但在将其导出到文档文件夹后,我得到了原始文件。

在这里我可以显示 3D 对象并对其进行一些修改,看起来不错,我可以在模拟器中看到 SCNView 的变化。

    sceneView = [[SCNView alloc] initWithFrame:CGRectMake(0, 0,  self.view.frame.size.width, self.view.frame.size.height - 100)];
    [sceneView setBackgroundColor:[UIColor orangeColor]];
    [self.view addSubview:sceneView];
    sceneView.allowsCameraControl = true ;
// Load 3D object
    NSString *path = [[NSBundle mainBundle] pathForResource:@“test”   ofType:@"obj"];
    NSURL * url = [NSURL fileURLWithPath:path];
    scene = [SCNScene sceneWithURL:url options:nil error:nil];
    sceneView.scene = scene ;

    // Processing---
    SCNLight *light =[[SCNLight alloc] init];
    light.type = SCNLightTypeAmbient;


    SCNNode *lightNode = [[SCNNode alloc] init];
    lightNode.light = light ;

    // Camera node
    SCNCamera *camera = [[SCNCamera alloc] init];
    SCNNode * Cameranode = [[SCNNode alloc]init];
    camera.saturation = 0.5 ;

    [scene.rootNode addChildNode:Cameranode];


    Cameranode.position =  SCNVector3Make(0.0, 0.0, 30.0);

    sceneToExport = sceneView.scene ;
    // Rotation -
    SCNNode *cubeNode = [[SCNNode alloc] init];
    cubeNode.rotation = SCNVector4Make(1000.0, 0.0, 30.0 , 40.0);
    [scene.rootNode addChildNode:cubeNode];

现在我正在尝试导出我修改过的 3D(.obj) 文件。

- (IBAction)saveAction:(id)sender {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory
    NSString *exportPath = [documentsPath stringByAppendingPathComponent:@"sceneAssets.obj"];

    //NSLog(@"Saved %d",[sceneView.scene writeToURL:[NSURL URLWithString:exportPath] options:nil delegate:nil progressHandler:nil]);
   NSLog(@"%d",[assetsToExport exportAssetToURL:[NSURL URLWithString:exportPath]]);


}

在这里,我尝试了两种方法(MDLAssets 和 SCNKit),通过使用此 .obj 文件通过两种方法保存在文档目录中,但我得到的是原始文件而不是修改后的对象。

我也尝试过创建MDLAsset使用 SCNScene 对象但得到相同的结果。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SceneKit 修改 3D 对象并导出文件 的相关文章

随机推荐

  • 我从来没有遇到过写得好的业务层。有什么建议吗?

    我环顾四周 看到了一些很棒的代码片段 用于定义规则 验证 业务对象 实体 等 但我不得不承认 我从未见过完整的优秀且编写良好的业务层 我只知道自己不喜欢什么 却不知道什么是好的 谁能指出一些好的 OO 业务层 或出色的业务对象 或者让我知道
  • 为什么 C# 不允许静态方法实现接口?

    为什么C 要这样设计 据我了解 接口仅描述行为 并用于描述实现特定行为的接口的类的合同义务 如果类希望在共享方法中实现该行为 为什么不应该呢 这是我的想法的一个例子 These items will be displayed in a li
  • SQL-计算计数(列)的百分比

    我有下面的代码 它计算事件列中出现的次数 SELECT event count event as event count FROM event information group by event event event count a 3
  • 查找与分组[重复]

    这个问题在这里已经有答案了 我想知道 groupBy 和 ToLookup 扩展方法之间有什么区别 让我们有一个像这样的对象列表 public class Person public uint Id get set public strin
  • 将间隔小于 15 天的行分组并分配最小/最大日期

    如果不同协议的 protocol opening date 彼此相差 15 天内 我需要在名为预期开始日期的另一列中将它们显示为一个协议 我不知道如何复制我的表格 但我会尽力解释 假设一个协议的 start date 为 24 01 201
  • 如何使用卡尔曼滤波器预测测量之间的 GPS 位置

    我研究了OpenCV卡尔曼滤波器的实现 并做了一些基本的鼠标指针模拟并了解了基础 我似乎错过了在我的应用程序中使用它的一些关键点 并希望这里有人可以提供一个小例子 使用具有速度和位置的简单模型 KF statePre at
  • 构造函数生成默认构造函数吗?

    有没有办法通过反射来确定构造函数是否是编译器生成的默认构造函数 或者还有其他办法吗 令人惊讶的是isSynthetic方法不提供此信息 因此无法使用 并且没有Generated存在注释 public class JavaTest publi
  • Google App 脚本在电子表格中查找文本并返回位置索引

    我是谷歌应用程序脚本的新手 我的 JavaScript 也不是很强 但这似乎都不是问题 因为我的代码在第一次运行时可以工作 但当我尝试再次调用它时 它会失败 简而言之 我试图拥有一个可以动态查找给定范围内给定文本的函数 虽然看起来可能有一个
  • R 中的转置和合并列[重复]

    这个问题在这里已经有答案了 对 R 来说相当陌生 我有一个以下格式的数据集 A B C 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 但我想要这种格式 A 1 A 2 A 3 A 4 A 5 B 1 B 2 B 3 etc S
  • CakePHP 错误:无法配置会话,设置 session.auto_start 失败

    我收到此错误 Error CakeSessionException Unable to configure the session setting session auto start failed 我正在使用 Cakephp 2 2 4
  • iOS应用程序如何设置Core蓝牙广告率?

    我运行 iPad 的 iOS 应用程序广告过于频繁 随后似乎向我的嵌入式蓝牙 LE 设备发送垃圾邮件 该设备正在从 iPad 读取广告数据 如何减慢 iPad 的广告速度 Core Bluetooth 中的广告速率不可设置 没有公共 API
  • 将列表分为两列

    我正在尝试构建一个无序列表 如下所示 Item 1 Item 4 Item 2 Item 5 Item 3 Item 6 我有这个 HTML div class multi column ul li Item 1 li li Item 2
  • 如何从(静态)类中的类创建新的类实例?

    我是 Java 新手 有 C 经验 这就是我想做的 public final class MyClass public class MyRelatedClass public class OtherRandomClass public vo
  • Windows 10 - WAMP 橙色

    我已经在我的 Windows 10 企业计算机上安装了 WAMP 64 位服务器 不过我得到了一个橙色图标 我已经检查了以下内容 Apache gt 服务 启动 恢复服务呈灰色 停止服务呈红色 另外测试端口 80 还给了我 您的端口 80
  • 是否可以在 Handlebars #if 中使用函数?

    我有一个控制器对象 如下所示 MyApp objController Ember ArrayController create init function data data isValid function return data val
  • 使用 ejs 重建 webpack-dev-server

    我使用 webpack dev server 进行以下配置 import webpack from webpack import autoprefixer from autoprefixer import ExtractTextPlugin
  • 数据表 - 对多个列应用相同的函数以创建新的数据表列

    我正在使用 data table 包 我有一个数据表 代表用户在网站上的操作 假设每个用户都可以访问一个网站 并对其执行多项操作 我的原始数据表包含操作 每一行都是一个操作 我想将这些信息聚合到一个新的数据表中 并按用户访问进行分组 每次访
  • 错误:使用 Sass 的 Angular 组件中未定义变量

    我遇到此错误 看起来我没有将变量导入到组件中 但这是我的style scss You can add global styles to this file and also import other style files Foundati
  • 自定义文件中的 AppSettings

    我正在努力处理 NET 2 0 中的配置和设置类 如果以下内容包含在名为的文件中app config
  • SceneKit 修改 3D 对象并导出文件

    在我的应用程序中 我使用 SceneKit Framework 在 SCNView 中显示 3D 对象 并导出修改后的文件 并进行一些小的更改 如颜色 温度等 但在将其导出到文档文件夹后 我得到了原始文件 在这里我可以显示 3D 对象并对其