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实 ...
随机推荐
- 网络流 HLPP 板子
#include<bits/stdc++.h> using namespace std; const int MM=4e5+5,inf=0x3f3f3f3f; int n,m,s,t,to ...
- Servlet Filter(过滤器)
Servlet Filter 又称 Servlet 过滤器,它是在 Servlet 2.3 规范中定义的,能够对 Servlet 容器传给 Web 资源的 request 对象和 response 对 ...
- js整体
1.引入 <script type="text/javascript"> 2.输出 使用 window.alert() 写入警告框 使用 document.write ...
- AOP操作-AspectJ配置文件
AOP操作(AspectJ配置文件)(了解) (实际中大部分用注解方式) 1,创建两个类,增强类和被增强类,创建方法 2,在spring配置文件中创建两个类对象 3,在spring配置文件中配置切入点
- Android Native -- Message/Handler/Looper机制(原理篇)
⌈Android Native消息队列处理系列文章⌋ Android Native -- Message/Handler/Looper机制(原理篇) Android Native -- Message ...
- java多线程中同步的问题?
一.通过模拟网络延迟,解决同步的问题. package com.zxf.demo; public class G01 implements Runnable{ private int num=10; ...
- What Goes Up Must Come Down
跳转链接 题目描述 给定一个序列, 求出将此序列变换为单调递增.单调递减 或者先增后减 样例1 输入 7 3 1 4 1 5 9 2 输出 3 样例2 输入 9 10 4 6 3 15 9 1 1 1 ...
- CF1408G Clusterization Counting
首先,我们需要给一个连通块找到一个直观的合法判定解. 那么我们必须以一种直观的方式将边按照权值分开,这样才能直观地判定一个合法的组. 一个常见的方式是将边从小到大依次加入进来,那么在任意时刻图上存在的 ...
- 长时间不操作Navicat或Putty会断线?
问题描述 今天发现只要一直不使用Putty,发现就会"卡住",还有Navicat连接数据库也有类似问题. 问题分析 Linux或者数据库都想节省连接资源呗. 问题解决 那就隔一段时 ...
- Linux curl命令进行网络请求
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11841353.html 1. curl get请求: curl http://www.baid ...