HMS Core线上Codelabs挑战赛第3期中,开发者通过学习和运用HMS Core开发的3D建模服务,生成3D建模应用demo,再使用demo为自己身边的一个实物完成建模。在提交的作品中,小编发现原来鞋、街景、手办、玩具这些都可以3D建模!你还能想到什么?看了以下这些作品,也许会有灵感。

1.1 3D建模之手办、鞋、街景系列(附零基础完整实现教程)

作品帖:【HMS Core挑战赛第3期】3D建模技术应用-【手办】【鞋】【街景系列】-附零基础完整实现教程*-华为开发者论坛 (huawei.com)

·3D建模应用:

·作品“全家福”展示:

(上图手办、街景座椅、消防栓等模型均使用HMS Core 3D建模服务制作)



GIF演示图

·实现流程:

HUAWEI HMS Core集成准备

3D建模服务HMS Core官方指南

3D建模服务Codelabs

3D建模服务实战课视频

1.2 3D建模之玩偶

作品帖:【HMS Core挑战赛第3期】3D建模客厅玩具-华为开发者论坛 (huawei.com)

在2021年的HDC开发者大会上,我现场尝试了Codelabs,体验到华为为开发者开放的许多创新功能。后来,我发现codelabs正在线上做3D建模挑战活动。我十分感兴趣并决定动手学习一番。

根据活动要求,我总结了以下几步:

1.Android Studio运行示例工程,安装到手机上

刚开始下载示例工程后,用Android Studio打开并运行成功,但在手机上传时却提示“Data Processing Location not set”。因此,参考Hms Core官方账号回复:“在开发应用前,需要在AppGallery Connect中配置相关信息”(https://developer.huawei.com/consumer/cn/doc/development/graphics-Guides/config-agc-0000001142925473?ha_source=hms1)

据官网文档:先注册开发者,创建应用,生成签名证书指纹,配置签名证书指纹,打开相关服务,设置默认数据处理位置,设置数据留存期限。接着修改示例工程:更新AndroidManifest.xml中的package,更新应用级别build.gradle中的applicaionId,然后示例工程相关文件夹rename(设置成与创建的应用ID相同),重新编译,再在手机运行就能上传和下载模型了。

2.使用app拍摄3D物体并在线生成3D模型

万事开头难!刚开始用手机拍摄我就遇到了困难:由于没有稳定的转盘工具,徒手拍了十几次(用手拿着手机对着物体转圈),结果提示建模失败,或建出来的模型不堪入目:

变则通,不变则壅。每次上传--在线建模--下载模型的过程要差不多5~10分钟,于是再细看活动说明,发现建模物体体积要大于15 x 15 x 15cm,决定重新选择合适的物体后再次尝试。同时我联想到旋转办公椅不正是一个天然转盘吗?说时迟,那时快,赶紧站了起来,在椅子上放上箱子垫高底部,在最上面以白板作底、白墙作背,刚好拼凑出一个“舞台”,固定好手机拍摄位置,手摇办公椅转动模式开始运作。

这样一来效果明显好了很多,随着拍摄次数的增多,我也渐渐掌握了一些关键点:

  • 每次固定一个相机角度拍摄一圈,转速要均匀。

  • 最多拍摄上传数是200张,为了让这些图片都有效,每次拍摄完一圈后要按暂停,调整新的拍摄角度后再继续。

  • 透明和半透明物体的建模效果不行,容易模糊。

  • 每个角度拍摄前,最好微调一下灯光位置,使拍摄的效果更佳。

  • 物体内部如果有遮挡结构,很难完全拍清,需要尽量避免。

  • 拍摄底部时需要把物体侧放(漏出底部),这时一定注意侧放后的物体不能变形(会出现重影)。如果无法保证不出现形变,最好想办法固定它的形状。

后来,我还入手了电动转盘,成片率更是快速提高;

3.把3D模型文件导出并运行到手机上

最后一步要把生成的模型运行在手机上,导出的模型有obj和gltf两种格式,都是主流3D应用支持的,找个3D接口或者3D引擎接入就可以了。

我选用了Unity(比较快速),新建空白工程,创建背景hdr,中间放个桌子,添加桌子纹理,调整好摄像机视角,添加光源。然后把所有模型obj方式导出的文件放进工程里,逐个拖进去,摆放好在桌面上。为了增加些动效,我还给每个模型添加了自动旋转的组件,最后就完成了作品全家福:

欲了解3D建模服务,请至官网:

https://developer.huawei.com/consumer/cn/hms/huawei-3d-modeling?ha_source=hms1

服务演示DEMO:

https://github.com/HMS-Core/hms-3d-modeling-demo?ha_source=hms1

参考开发指导文档,快速完成基础数据上报:

Android SDK集成文档

https://developer.huawei.com/consumer/cn/doc/development/graphics-Guides/introduction-0000001143077297?ha_source=hms1

(开发者授权发布)

了解更多详情>>

访问华为开发者联盟官网

获取开发指导文档

华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

HMS Core挑战赛故事:鞋、街景、手办、玩具,原来这些都可以3D建模的更多相关文章

  1. 码上来战!探索“智”感生活,HMS Core线上Codelabs挑战赛第4期开始!

    HMS Core线上Codelabs挑战赛第4期正式开始!我们向所有实践力超强.创新力满满的开发者发出邀请,用你的超级"码"力,解锁更多应用价值! 生活里,我们被手机"秒 ...

  2. 放码来战!HMS Core线上Codelabs挑战赛正式开始

    亲爱的开发者,在1024程序员节即将到来之际,HMS Core准备了一场线上Codelabs挑战赛,现向你发出诚挚邀请,希望你能将新奇的想法和对产品的思考融入代码,用技术与世界对话. HMS Core ...

  3. HMS Core Insights第八期直播预告--创新能力解读

    [导读] 在上个月举办的HDC2021华为开发者大会上,全新登场的HMS Core 6向大家展示了包括媒体.图形.连接与通信等领域的众多全新开放能力.如仅用一部RGB摄像头的手机即可完成的3D建模,在 ...

  4. 来自开发者的点赞!HMS Core荣获多个行业奖项

    2021年,HMS Core发布全新HMS Core 6,为全球开发者提供多终端.跨OS.全场景的华为移动服务核心能力,和开发者共同成长.通过和开发者在行业解决方案.业务场景创新和商业增长上的持续合作 ...

  5. HMS Core 能力速配,唱响恋爱进行曲

    情人节,HMS Core 最具CP感的能力搭档来袭,浓浓爱意,表白各行业,你准备好了吗? 1.ML Kit +Signpal Kit 科技相助,恋爱提速.展现爱意的方式有千百种,你可以用文本翻译学习数 ...

  6. HMS Core助力宝宝巴士为全球开发者展现高品质儿童数字内容

    本文分享于HMS Core开发者论坛<宝宝巴士携HMS Core为全球家庭用户提供优质儿童数字内容>采访稿整理 宝宝巴士是国内有着十多年出海经验的开发者,其旗下有超过200多款儿童益智互动 ...

  7. HMS Core携手厦门大学打造AR增强现实技术

    HMS Core AR Engine团队联手厦门大学信息学院,与专业学生面对面深度交流行业发展与前沿成果.双方共同编写行业知识教材,引导学生开发AR游戏实践,为未来AR.VR人才培养培育可复制的教学模 ...

  8. HMS Core AR Engine 2D图片/3D物体跟踪技术 助力打造更智能AR交互体验

    AR技术已经被广泛应用于营销.教育.游戏.展览等场景.通过2D图像跟踪技术和3D物体跟踪技术,用户只需使用一台手机进行拍摄,即可实现海报.卡牌等平面物体以及文物.手办等立体物体的AR效果.尽管近年来2 ...

  9. 华为HMS Core携手超图为三维GIS注入新动能

    6月30日,在2022(第五届)GIS软件技术大会GIS基础软件新技术板块论坛上,华为联合超图推出了基于HMS Core 3D Engine开发的高保真三维GIS插件,通过3D渲染技术助力三维GIS实 ...

随机推荐

  1. cocos2dx 入口函数分析

    以下是main函数最开始的两段,也是cocos2d一开始执行的地方: AppDelegate app; return Application::getInstance()->run(); 接下来 ...

  2. golang中的GOPATH使用和简单项目配置

    GOPATH 是 Go 语言的工作目录,他的值可以是一个目录路径,也可以是多个目录路径,每个目录都代表 go 语言的一个工作区. 我们开发 Golang 项目时,需要依赖一些别的代码包,这些包的存放路 ...

  3. url地址如何定位到Servlet程序去访问

  4. a 标签一些特殊用法

    发邮件 <a href="mailto:youemail@mail.com?subject=邮件标题&body=邮件内容">告诉我们</a> 打电话 ...

  5. JavaScript之递归查找所有父节点

    ......data: () => ({ // 数据 dt: [{ id: '1', children: [ { id: '1-1', children: [ { id: '1-1-1', ch ...

  6. Understanding C++ Modules In C++20 (1)

    Compiling evironment: linux (ubuntu 16.04)+ gcc-10.2. The Post will clarify and discuss what modules ...

  7. 计算机网络再次整理————tcp的关闭[七]

    前言 tcp的关闭不是简单粗暴的,相对而言是友好优雅的,好聚好散吧. 那么友好的关闭方式是这样的: 假设这里是客户端请求关闭的,服务端倒过来. 客户端:我要请求关闭 服务端:我接收到你的请求了,等我把 ...

  8. AT5801 [AGC043D] Merge Triplets

    这种排列生成排列的题目我们一般可以考虑生成排列合法的充要条件. 首先可以发现的一点就是该生成排列的任意一个数 \(p_i\) 一定不存在连续的三个数 \(p_{i + 1}, p_{i + 2}, p ...

  9. 错误代码 insufficient-isv-permissions 错误原因: ISV权限不足

    前言 PC网页吊起支付宝支付界面报了如下这么个错误: 我明明申请的支付宝支付功能列表的签约已经生效了呀!怎么回事呢? 解决 支付宝商户中心:https://b.alipay.com/signing/p ...

  10. Java GUI界面补充总结(不定期补充)

    一.Java中如何设置各类组件透明 感谢原文:https://kslsi.iteye.com/blog/2096608 补充:Frame透明:AWTUtilities.setWindowOpacity ...