HoloLens开发手记-实现3D应用启动器
一直有人问我,第三方应用在HoloLens上可以实现3D启动图标吗?就像微软官方出的应用那样。在不久之前,这个问题的答案还是No。
但是随着最新的Windows build 1803版本的发布,现在我们可以创建3D启动图标了。
实现方法
要实现一个3D启动器很简单,三步走:
- 设计模型
- 优化和导出模型
- 集成到应用项目中
关于模型
对于MR应用,想要使用3D启动器,那么使用的模型格式必须为.glb,而且必须满足微软官方对模型面数和大小的要求。最简单获取glb模型的方式是使用Windows 10自带的Paint 3D应用创建,导出模型文件默认就是glb格式。而且还可以利用微软的Remix 3D网站,上面有大量的3D模型可以直接拿来在Paint 3D中使用。
关于具体的模型设计要求和优化要求,请直接参照官方文档:https://docs.microsoft.com/zh-cn/windows/mixed-reality/creating-3d-models-for-use-in-the-windows-mixed-reality-home
模型集成
在有了模型文件后,下一步就是将它集成到项目中。继承的方式很简单,主要是修改UWP项目的配置文件package.appxmanifest.
首先修改命名空间部分,引入uap5的schema,这样我们才可以用“MixedRealityModel”标签来生命启动模型定义:
<Package xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" IgnorableNamespaces="uap uap2 uap5 mp" xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">
下一步修改默认图标的定义:
<Applications> <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="ExampleApp.App"> <uap:VisualElements DisplayName="ExampleApp" Square150x150Logo="Assets\Logo.png" Square44x44Logo="Assets\SmallLogo.png" Description="ExampleApp" BackgroundColor="#464646"> <uap:DefaultTile Wide310x150Logo="Assets\WideLogo.png" > <uap5:MixedRealityModel Path="Assets\My3DTile.glb" /> </uap:DefaultTile> <uap:SplashScreen Image="Assets\SplashScreen.png" /> </uap:VisualElements> </Application> </Applications>
这段示例代码里我指定了3D模型文件的路径为“Assets\My3DTile.glb”,实际根据文件正确路径填写。
注意:模型文件导入项目后,build action行为要设置为内容(content),这样才可以被正确识别到。
边框盒子(Bounding Box)
如果我们不指定模型的边框盒属性的话,系统会默认生成一个。但是如果有特殊需求的话,可以手动指定边框盒属性,设置边框盒代码如下:
先引入边框盒所在命名空间uap6
<Package xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" xmlns:uap6="http://schemas.microsoft.com/appx/manifest/uap/windows10/6" IgnorableNamespaces="uap uap2 uap5 uap6 mp" xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">
再修改边框盒设置,可以设置模型中心位置,以及中心到每个轴的距离。
<uap:DefaultTile Wide310x150Logo="Assets\WideLogo.png" > <uap5:MixedRealityModel Path="Assets\My3DTile.glb"> <uap6:SpatialBoundingBox Center=”1,-2,3” Extents=”1,2,3” /> </uap5:MixedRealityModel> </uap:DefaultTile>
那么快速实现3D应用启动器就搞定了,下面是实际效果:
https://weibo.com/tv/v/GhxQJrMYw?fid=1034:940e672a7047303e11bc96edec7ee456
HoloLens开发手记-实现3D应用启动器的更多相关文章
- HoloLens开发手记 - HoloLens真机上手简评
千呼万唤始出来,终于今天拿到了HoloLens真机. 使用体验 使用自带的应用录制了一段使用视频,如下 设备概览 包装盒 本体 试戴 实际效果 GalaxyExplorer试玩 全息图像贴到现实场景表 ...
- HoloLens开发手记 - 应用程序模型 App model
HoloLens使用Universal Windows Platform (UWP)提供的应用模型.UWP应用模型定义了应用如何被安全和完全地安装.更新.版本控制和移除.它管理了应用生命周期 - 应用 ...
- HoloLens开发手记 - 使用HoloLens模拟器 Using HoloLens emulator
首先下载HoloLens模拟器 HoloLens模拟器运行在没有真机的情况下在你的PC上测试应用,属于HoloLens开发工具系列.模拟器使用了Hyper-V虚拟机.通常通过传感器获取的人体和环境输入 ...
- HoloLens开发手记-开发概述Development overview
开发HoloLens全息应用将使用UWP平台(Universal Windows Platform),所有的HoloLens应用都是Win10通用应用,所有UWP通用应用都可以在HoloLens上运行 ...
- HoloLens开发手记 - 使用Windows设备控制台 Using Windows Device Portal
Windows设备控制台允许你通过Wi-Fi或USB来远程控制你的HoloLens设备.设备控制台是HoloLens上的一个Web Server,你可以通过PC的浏览器来连接到它.设备控制台包含了很多 ...
- HoloLens开发手记 - Vuforia开发概述 Vuforia development overview
关于Vuforia,开发AR应用的人基本都会熟悉.之前我也写过一篇关于Vuforia开发的博客:Vuforia AR SDK入门 今天这篇博客则主要是谈谈HoloLens使用Vuforia开发混合现实 ...
- HoloLens开发手记 - 测试 Testing
测试HoloLens应用的做法和测试Windows应用很类似.所有常规的内容都应该被考虑在内(功能.互操作性.性能.安全性.可靠性等等),然而有些特性是HoloLens特有的,在PC或者手机上无法测试 ...
- HoloLens开发手记 - Unity development overview 使用Unity开发概述
Unity Technical Preview for HoloLens最新发行版为:Beta 24,发布于 09/07/2016 开始使用Unity开发HoloLens应用之前,确保你已经安装好了必 ...
- HoloLens开发手记 - Unity之Gaze凝视射线
凝视是HoloLens首要输入方式,形式功能类似于桌面系统的光标,用于选择操作全息对象.然而在Unity中并没有明确的Gaze API或者组件. 实现Gaze Implementing Gaze 概念 ...
随机推荐
- Sample Code for Qp_preq_pub.Price_request Api to Simulate an Ask for Promotion Modifier
DECLARE p_line_tbl QP_PREQ_GRP.LINE_TBL_TYPE; p_qual_tbl QP_PREQ_GRP.QUAL_TBL_TYPE; p_line_attr_tbl ...
- LeetCode之“散列表”:Two Sum && 3Sum && 3Sum Closest && 4Sum
1. Two Sum 题目链接 题目要求: Given an array of integers, find two numbers such that they add up to a specif ...
- RTMPdump(libRTMP) 源代码分析 6: 建立一个流媒体连接 (NetStream部分 1)
===================================================== RTMPdump(libRTMP) 源代码分析系列文章: RTMPdump 源代码分析 1: ...
- FFmpeg与VS2010
编译FFmpeg是一件痛苦的事情,一般都直接使用Zeranoe FFmpeg Builds. 如果使用这个版本,需要注意ffmpeg的帮助里的一段话: To create import librari ...
- Hadoop DataNode不能正常工作的原因
在把Hadoop环境搭建成功,并且也Hadoop的各个组件都正常工作.在重启过几次Hadoop后发现DataNode不能正常工作,打开Hadoop 的后台http://localhost:50030和 ...
- SharePoint 调查添加图片支持
前言:今天,碰到一个有趣的问题,就是SharePoint调查里面,添加对于图片的支持,众所周知,SharePoint的调查就支持那么几种字段类型的问题,当然,我们可以开发实现,不过,这个不是我们今天介 ...
- 图像处理程序框架—MFC相关知识点
CDC:Windows使用与设备无关的图形设备环境(DC :Device Context) 进行显示 . MFC基础类库定义了设备环境对象类----CDC类. CDC与CGdiObject的关系 说道 ...
- python标准库Beautiful Soup与MongoDb爬喜马拉雅电台的总结
Beautiful Soup标准库是一个可以从HTML/XML文件中提取数据的Python库,它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式,Beautiful Soup将会节省数小 ...
- DPDK virtio-user
PS:欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. virtio-user 是 DPDK 针对特定场景提出的一种解决方案, ...
- 十六进制颜色转换为iOS可以用的UIColor
// // UIColor+Transformation.h // ContactApp // // Created by 袁冬冬 on 15/9/11. // Copyright (c) 2 ...