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. 网络流 HLPP 板子

    #include<bits/stdc++.h> using namespace std; const int MM=4e5+5,inf=0x3f3f3f3f; int n,m,s,t,to ...

  2. Servlet Filter(过滤器)

    Servlet Filter 又称 Servlet 过滤器,它是在 Servlet 2.3 规范中定义的,能够对 Servlet 容器传给 Web 资源的 request 对象和 response 对 ...

  3. js整体

    1.引入 <script type="text/javascript"> 2.输出 使用 window.alert() 写入警告框  使用 document.write ...

  4. AOP操作-AspectJ配置文件

    AOP操作(AspectJ配置文件)(了解) (实际中大部分用注解方式) 1,创建两个类,增强类和被增强类,创建方法 2,在spring配置文件中创建两个类对象 3,在spring配置文件中配置切入点

  5. Android Native -- Message/Handler/Looper机制(原理篇)

    ⌈Android Native消息队列处理系列文章⌋ Android Native -- Message/Handler/Looper机制(原理篇) Android Native -- Message ...

  6. java多线程中同步的问题?

    一.通过模拟网络延迟,解决同步的问题. package com.zxf.demo; public class G01 implements Runnable{ private int num=10; ...

  7. 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 ...

  8. CF1408G Clusterization Counting

    首先,我们需要给一个连通块找到一个直观的合法判定解. 那么我们必须以一种直观的方式将边按照权值分开,这样才能直观地判定一个合法的组. 一个常见的方式是将边从小到大依次加入进来,那么在任意时刻图上存在的 ...

  9. 长时间不操作Navicat或Putty会断线?

    问题描述 今天发现只要一直不使用Putty,发现就会"卡住",还有Navicat连接数据库也有类似问题. 问题分析 Linux或者数据库都想节省连接资源呗. 问题解决 那就隔一段时 ...

  10. Linux curl命令进行网络请求

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11841353.html 1. curl get请求: curl http://www.baid ...