HMS Core挑战赛故事:鞋、街景、手办、玩具,原来这些都可以3D建模
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演示图
·实现流程:
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
(开发者授权发布)
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~
HMS Core挑战赛故事:鞋、街景、手办、玩具,原来这些都可以3D建模的更多相关文章
- 码上来战!探索“智”感生活,HMS Core线上Codelabs挑战赛第4期开始!
HMS Core线上Codelabs挑战赛第4期正式开始!我们向所有实践力超强.创新力满满的开发者发出邀请,用你的超级"码"力,解锁更多应用价值! 生活里,我们被手机"秒 ...
- 放码来战!HMS Core线上Codelabs挑战赛正式开始
亲爱的开发者,在1024程序员节即将到来之际,HMS Core准备了一场线上Codelabs挑战赛,现向你发出诚挚邀请,希望你能将新奇的想法和对产品的思考融入代码,用技术与世界对话. HMS Core ...
- HMS Core Insights第八期直播预告--创新能力解读
[导读] 在上个月举办的HDC2021华为开发者大会上,全新登场的HMS Core 6向大家展示了包括媒体.图形.连接与通信等领域的众多全新开放能力.如仅用一部RGB摄像头的手机即可完成的3D建模,在 ...
- 来自开发者的点赞!HMS Core荣获多个行业奖项
2021年,HMS Core发布全新HMS Core 6,为全球开发者提供多终端.跨OS.全场景的华为移动服务核心能力,和开发者共同成长.通过和开发者在行业解决方案.业务场景创新和商业增长上的持续合作 ...
- HMS Core 能力速配,唱响恋爱进行曲
情人节,HMS Core 最具CP感的能力搭档来袭,浓浓爱意,表白各行业,你准备好了吗? 1.ML Kit +Signpal Kit 科技相助,恋爱提速.展现爱意的方式有千百种,你可以用文本翻译学习数 ...
- HMS Core助力宝宝巴士为全球开发者展现高品质儿童数字内容
本文分享于HMS Core开发者论坛<宝宝巴士携HMS Core为全球家庭用户提供优质儿童数字内容>采访稿整理 宝宝巴士是国内有着十多年出海经验的开发者,其旗下有超过200多款儿童益智互动 ...
- HMS Core携手厦门大学打造AR增强现实技术
HMS Core AR Engine团队联手厦门大学信息学院,与专业学生面对面深度交流行业发展与前沿成果.双方共同编写行业知识教材,引导学生开发AR游戏实践,为未来AR.VR人才培养培育可复制的教学模 ...
- HMS Core AR Engine 2D图片/3D物体跟踪技术 助力打造更智能AR交互体验
AR技术已经被广泛应用于营销.教育.游戏.展览等场景.通过2D图像跟踪技术和3D物体跟踪技术,用户只需使用一台手机进行拍摄,即可实现海报.卡牌等平面物体以及文物.手办等立体物体的AR效果.尽管近年来2 ...
- 华为HMS Core携手超图为三维GIS注入新动能
6月30日,在2022(第五届)GIS软件技术大会GIS基础软件新技术板块论坛上,华为联合超图推出了基于HMS Core 3D Engine开发的高保真三维GIS插件,通过3D渲染技术助力三维GIS实 ...
随机推荐
- gin框架中的会话控制
Cookie介绍 Http协议是无状态的,服务器不能记录浏览器的访问状态,也就是说服务器不能判断请求的客户端是否已经登录 Cookie就是解决http协议无状态的方案之一 Cookie实际上就是服务器 ...
- gorm中的更新
保存所有字段 Save 会保存所有的字段,即使字段是零值. db.First(&user, 5)user.Name = sql.NullString{"王八", true} ...
- Java高效开发-常用idea插件
这里推荐几个常用的idea插件,可以大大提高开发的效率 所使用的idea版本为 2021.2.3 1.Jrebel and Xrebel for IntelliJ Jrebel用于热部署,避免频繁重启 ...
- es6 快速入门 系列 —— 类 (class)
其他章节请看: es6 快速入门 系列 类 类(class)是 javascript 新特性的一个重要组成部分,这一特性提供了一种更简洁的语法和更好的功能,可以让你通过一个安全.一致的方式来自定义对象 ...
- 大厂面试:一个四年多经验程序员的BAT面经(字节、阿里、腾讯)
前言 上次写了篇欢聚时代的面经,公众号后台有些读者反馈说看的意犹未尽,希望我尽快更新其他大厂的面经,这里先说声抱歉,不是我太懒,而是项目组刚好有个活动要赶在春节前上线,所以这几天经常加班,只能工作之余 ...
- Github新安全措施:停止Git客户端账号密码登录的解决方案
今年 8 月 13 日之后,如果你还用账户密码来操作 Github 上的仓库,就会收到如下警告: remote: Support for password authentication was rem ...
- 为什么要配置path环境变量
因为在jdk下bin文件夹中有很多我们在开发中要使用的工具,如java.exe,javac.exe,jar.ex等,那么我们在使用时,想要在电脑的任意位置下使用这些java开发工具,那么我们就需有把这 ...
- JS 中的GB2312转UTF8和UTF8转GB2312
转载请注明来源:https://www.cnblogs.com/hookjc/ JS:encodeURI encodeURI(URIString)必选的 URIString 参数代表一个已编码的 UR ...
- NSArray基本概念
1.NSArray的基本概念 什么是NSArray? NSArray是OC中的数组类,开发中建议尽量使用NSArray替代C语言中的数组 C语言中数组的弊端 int array[4] = {10, 8 ...
- Python起航
安装Python 安装python 添加python安装目录到PATH 添加Scripts目录到PATH 如果同时安装了python2和python3,那么通过python和python3,pip和p ...