Unity Apple Vision Pro 开发(四):体积相机 Volume Camera

文章目录

  • 📕教程说明
  • 📕教程内容概括
  • 📕体积相机作用
  • 📕创建体积相机
  • 📕添加体积相机配置文件
  • 📕体积相机配置文件参数
  • 📕体积相机的边界盒大小
  • 📕体积相机边界盒大小和应用边界盒大小的区别
  • 📕无边界模式

此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区。这是一个高质量 XR 开发者社区,博主目前在内担任 XR 开发的讲师。该社区提供专人答疑、完整进阶教程、从零到一项目孵化保姆服务、投资|融资对接、工程文件下载等服务。

社区链接:
SpatialXR社区:完整课程、项目下载、项目孵化宣发、答疑、投融资、专属圈子

在这里插入图片描述


📕教程说明

这期教程我将介绍使用 PolySpatial 开发包中的体积相机(Volume Camera)。体积相机是开发 Apple Vision Pro MR 应用的必备组件,可用于区分 Shared Space 共享空间和 Full Space 独占空间。

视频讲解:
https://www.bilibili.com/video/BV1AW421d75b


📕教程内容概括

在这里插入图片描述


📕体积相机作用

Unity 开发 visionOS 应用的不同模式如下:

  • 窗口模式:对应共享空间中的窗口应用
  • VR 模式:对应独占空间中的 Fully Immersive(VR)应用
  • MR 模式:
    • 开发共享空间中的体积 3D 应用 -> 应用被包裹在立方体范围内,有边界盒
    • 开发独占空间中的 Passthrough 应用 -> 应用无边界,整个空间都是应用载体

其中,Unity 的 PolySpatial 开发工具包可以用于开发 MR 应用,要么是有边界的体积应用,位于共享空间中;要么是整个空间都作为载体的独占空间应用。根据有无边界这个特性来区分共享空间和独占空间,PolySpatial 推出了体积相机的概念,我们可以在体积相机中设置应用是有边界还是无边界的。


📕创建体积相机

导入 Unity PolySpatial 开发包,在 Unity Hirerachy 面板中点击鼠标右键,选择 XR > Setup > Volume Camera,可以在场景中创建体积相机。

在这里插入图片描述


📕添加体积相机配置文件

找到体积相机物体上的 Volume Camera 脚本,有一个 Volume Window Configuration 参数,我们要对这个参数进行赋值。

在这里插入图片描述

如果你导入了 PolySpatial 样例场景,那么可以在 Assets > Samples > PolySpatial > Resources 文件夹里找到官方提供的两个配置文件。开头是 Bounded 为有边界配置文件,用于共享空间开发;开头是 Unbounded 为无边界配置文件,用于独占空间开发。

在这里插入图片描述

如果你想自己创建体积相机配置文件,可以在 Resources 文件夹下通过 Create > PolySpatial > Volume Camera Window Configuration 创建。

注:体积相机配置文件必须存放在项目 Assets 文件夹下的任意 Resources 文件夹内。


📕体积相机配置文件参数

在这里插入图片描述

Mode:可以选择 Bounded(有边界)和 Unbounded(无边界)开发模式
Out Dimensions:输出尺寸,单位是米,用于表示整个应用的边界盒大小(只有选择了有边界开发模式才有用)。Output Dimensions 数值越大,应用的边界盒越大,应用内的物体的缩放会越大。

注:能渲染场景中的什么物体就由体积相机来控制,场景中默认添加的 Main Camera 是没有作用的。


📕体积相机的边界盒大小

Volume Camera 脚本的 Volume Window Configuration 选择了有边界模式的配置文件后,点击 Volume Camera 物体可以在场景中看到一个立方体的范围(如下图所示),它代表了体积相机的边界盒大小,只有在立方体范围内的物体才能被渲染出来,超出范围的部分无法被渲染。

在这里插入图片描述
体积相机的边界盒大小等于 Volume Camera 脚本上的 Dimensions 数值乘上 Volume Camera 物体的 Scale 缩放大小。

在这里插入图片描述

如上图所示,体积相机的边界盒大小就等于 2×3,2×3,2×3,也就是 6,6,6(单位:米)


📕体积相机边界盒大小和应用边界盒大小的区别

这两种边界盒是不同的概念。体积相机的边界盒决定了体积相机能拍到的范围,只能在拍摄范围内的物体才能被渲染出来。

体积相机的边界盒越大,可渲染的物体越多,物体的缩放越小。

因为在应用的边界盒大小不变的情况下,能渲染更多的游戏物体,为了能将这些游戏物体装进应用的边界盒,这个物体的缩放就要变小。

但是体积相机的边界盒大小不会影响应用的边界盒大小,应用的边界盒大小由体积相机配置文件中的 Output Dimensions 控制,应用边界盒越大,应用内物体缩放越大。


📕无边界模式

Volume Camera 脚本的 Volume Window Configuration 选择无边界模式的配置文件后,开发的就是独占空间 MR 应用。

无边界模式下,程序运行后体积相机的位置位于头显正下方的地面处,体积相机的 z 轴朝向和头显正前方一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/47325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GraphRAG】微软 graphrag 效果实测

GraphRAG 本文将基于以下来源,对Microsoft GraphRAG分析优缺点、以及示例实测分析。 1. Source 代码仓库: Welcome to GraphRAGhttps://microsoft.github.io/graphrag/ 微软文章1(2024.2.13):GraphRAG: Unlocking…

Hadoop3:MR程序的数据倾斜问题处理

一、数据倾斜 什么是数据倾斜? 学过Redis集群的都知道数据倾斜这个问题。 就是大量数据,分配不均匀的现象。 二、MR数据倾斜 1、怎么判断出现数据倾斜? 数据频率倾斜——某一个区域的数据量要远远大于其他区域。 数据大小倾斜——部分记…

Android中OkHttp3中超时时间概述

目录 前言connectTimeoutreadTimeoutwriteTimeoutcallTimeoutpingInterval拓展 前言 可以看到,使用还是很简单的。主要相关的有这五个参数,其中我们常用到是就是connectTimeout、readTimeout和writeTimeout。 再看上图,可以看到默认下connec…

js | Core

http://dmitrysoshnikov.com/ecmascript/javascript-the-core/ Object 是什么? 属性[[prototype]]对象。 例如,下面的,son是对象,foo不是对象。打印出来的son,能看到有一个prototype 对象。 prototype vs _proto_ v…

R语言实现神经网络ANN

# 常用激活函数 # 自定义Sigmoid函数 sigmod <- function(x){return(1/(1exp(-x))) } # 绘制Sigmoid曲线 x <- seq(-10,10,length.out 100) plot(x,sigmod(x),type l,col blue,lwd 2,xlab NA,ylab NA,main Sigmoid函数曲线)# 自定义Tanh函数 tanh <- function(…

题解:小S与机房里的电脑 Computer_C++算法竞赛_贪心_二分答案_模拟_数据结构

文章目录 小S与机房里的电脑 Computer传统题题目描述输入格式输出格式样例样例输入 1样例输出 1样例输入 2样例输出 2 提示解题思路AC CodeEnd 小S与机房里的电脑 Computer 传统题 时间限制: 1000ms内存限制: 256MiB 题目描述 最近小S想带他的学生打组队娱乐赛&#xff0c;…

Qt QProcess 进程间通信读写数据通信

本文介绍了如何使用Qt的QProcess 进行程序开发&#xff0c;包括启动进程间通信、设置环境变量、通用方法&#xff1b;方便在日常开发中使用&#xff1b; 1.使用Qt进行程序开发&#xff0c;可以通过QProcess类用于启动外部程序并与其进行通信.&#xff1b; 进程A&#xff08;…

Vite的WebSocket

Vite的webSocket SocketJava Socket概述工作原理优势劣势 Java WebSocket概述工作原理代码示例nodeJS WebSocket优势劣势 vite中的WebSocket&#x1f4ab;代码示例使用vite进行创建服务器并对Vue实行HMR 总结 Socket Java 中的 Socket 与 WebSocket 都用于网络通信&#xff0c…

微服务设计原则——高性能:锁

文章目录 1.锁的问题2.无锁2.1 串行无锁2.2 无锁数据结构 3.减少锁竞争参考文献 1.锁的问题 高性能系统中使用锁&#xff0c;往往带来的坏处要大于好处。 并发编程中&#xff0c;锁带解决了安全问题&#xff0c;同时也带来了性能问题&#xff0c;因为锁让并发处理变成了串行操…

海外营销推广:快速创建维基百科(wiki)词条-大舍传媒

一、维基百科的永久留存问题 许多企业和个人关心维基百科是否能永久留存。实际上&#xff0c;只要企业和个人的行为没有引起维基百科管理方的反感&#xff0c;词条就可以长期保存。如果有恶意行为或被投诉&#xff0c;维基百科可能会对词条进行删除或修改。 二、创建维基百科…

详细解析Kafaka Streams中各个DSL操作符的用法

什么是DSL&#xff1f; 在Kafka Streams中&#xff0c;DSL&#xff08;Domain Specific Language&#xff09;指的是一组专门用于处理Kafka中数据流的高级抽象和操作符。这些操作符以声明性的方式定义了数据流的转换、聚合、连接等处理逻辑&#xff0c;使得开发者可以更加专注…

PF4J+SpringBoot

plugin-common pom.xml相关配置 <groupId>pub.qingyun</groupId> <artifactId>plugin-common</artifactId> <version>0.0.1-SNAPSHOT</version> <description>插件配置类</description><dependency><groupId>or…

TCP与UDP网络编程

网络通信协议 java.net 包中提供了两种常见的网络协议的支持: UDP&#xff1a;用户数据报协议(User Datagram Protocol)TCP&#xff1a;传输控制协议(Transmission Control Protocol) TCP协议与UDP协议 TCP协议 TCP协议进行通信的两个应用进程&#xff1a;客户端、服务端 …

好玩的调度技术-场景编辑器

好玩的调度技术-场景编辑器 文章目录 好玩的调度技术-场景编辑器前言一、演示一、代码总结好玩系列 前言 这两天写前端写上瘾了&#xff0c;顺手做了个好玩的东西&#xff0c;好玩系列也好久没更新&#xff0c;正好作为素材写一篇文章&#xff0c;我真的觉得蛮好玩的&#xff…

编程中的智慧之设计模式一

设计模式&#xff1a;编程中的智慧之道 设计模式是软件开发中的一种解决方案&#xff0c;提供了在特定上下文中解决常见问题的模板。这些模式帮助我们构建更加灵活、可维护和可扩展的系统。本文将探讨设计模式的不同类型及其在Java中的应用。 设计模式的层次 设计模式可以类…

【C#】Array和List

C#中的List<T>和数组&#xff08;T[]&#xff09;在某些方面是相似的&#xff0c;因为它们都是用来存储一系列元素的集合。然而&#xff0c;它们在功能和使用上有一些重要的区别&#xff1a; 数组&#xff08;Array&#xff09; 固定大小&#xff1a;数组的大小在声明时…

LinuxShell编程1———shell基础命令

文章目录 前言 一、shell基础知识 1、shell概念 2、Shell的功能 接收&#xff1a;用户命令 调用&#xff1a;相应的应用程序 解释并交给&#xff1a;内核去处理 返还&#xff1a;内核处理结果 3、Shell种类&#xff08;了解&#xff09; 3.1、MS-DOS 3.2、Windows的…

数据的守护者:深入解析 Elasticsearch 的副本机制

标题&#xff1a;数据的守护者&#xff1a;深入解析 Elasticsearch 的副本机制 在分布式搜索引擎 Elasticsearch 中&#xff0c;副本是确保数据高可用性和查询性能的关键特性。通过副本机制&#xff0c;Elasticsearch 能够在集群中复制数据&#xff0c;从而提高数据的可靠性和…

高并发服务器-使用多进程(Multi-Process)实现【C语言】

在上期的socket套接字的使用详解中&#xff08;socket套接字的使用详解&#xff09;最后实现的TCP服务器只能处理一个客户端的请求发送&#xff0c;当有其他客户端请求连接时会被阻塞。为了能同时处理多个客户端的连接请求&#xff0c;本期使用多进程的方式来解决。 解决方案步…

SDF学习笔记整理

1 SDF的用处 SDF文件是标准延时文件&#xff0c;该文件由于其扩展名为.sdf即filename.sdf故被常叫做SDF文件。该文件是综合吐出的文件&#xff0c;也可以来自于静态时序分析&#xff08;STA&#xff09;&#xff0c;前者称为pre_sdf文件&#xff0c;后者称为post_sdf。 两者主…