阅朗微软官方文档并作出简要记录:
https://developer.microsoft.com/zh-cn/windows/holographic/documentation
个人学习记录,有错误欢迎指出。
HoloLens的六个基本概念之一
Building blocks of Holographic apps :
一、Coordinate systems : https://developer.microsoft.com/zh-cn/windows/holographic/coordinate_systems
A.Spatial coordinate Systems : 空间坐标系
1.All 3D graphics applications use Cartesian coordinate systems.
所有的3D图形应用都采用笛卡尔积坐标系。
2.Spatial coordinate systems express their coordinate values in meters.
空间坐标系统以真实世界米为一个单位。
3.Spatial coordinate systems on Windows Holographic are always right-handed, which means that the positive X-axis points right, the positive Y-axis points up (aligned to gravity) and the positive Z-axis points backwards.
坐标系采用右手定则,X向右为正,Y向上为正,Z向内为正。
B.Stationary frame of reference : 固定参照系
1.Describing the position of a hologram in the real-world requires a reference point that remains stationary as the device moves through the environment. The system provides a simple affordance for this purpose which is called a "stationary frame of reference". The coordinate system provided by this frame of reference works to keep the positions of objects near the user as stable as possible, relative to the world.
当戴着设备在周围环境中移动时,为了描述一个全息影像在真实世界中的位置,需要一个固定的参照点。系统提供了一个简单的功能达到这个目的叫做固定参照系。固定参照系提供的坐标系让使用者周围的全息影像位置尽可能的保持在自己原本的位置上不发生改变。固定参照系其本身对世界来说是会变化的。
2.In a game engine such as Unity, a stationary frame of reference is what defines the engine's "world origin". Objects that are placed at a specific world coordinate use the stationary frame of reference to define their position in the real-world using those same coordinates. An app will typically create one stationary frame of reference on startup and use its coordinate system throughout the app's lifetime.
像在Untiy这样的游戏引擎里,固定参照系定义了引擎的世界坐标原点。被放置在特定世界坐标的对象,用同样的坐标数据在固定参照系中定义他们在真实世界中的位置。一个应用最典型的就是在启动的时候创建一个固定参照系并用这个坐标系贯穿整个应用的生命周期。
3.Over time, as the system learns more about the user's environment it may determine that distances between various points in the real-world are shorter or longer than the system previously believed. Therefore, the system adjusts as the user walks around a larger area resulting in holograms that you've placed in a stationary coordinate system may be seen to drift off their original position.
随着时间的推移,系统会自动识别更多的环境信息。而识别的依据取决于各个点在真实世界中的距离与系统预先之前所确定的距离是否存在差距。因此,系统会随着使用者在区域内反复游走而不断的调整结果(因为点之间距离变化了)告诉那些你放置在固定坐标系中的全息影像,其结果就好像这些全息影像渐渐的偏离了他们原来所在的位置(原本系统认知为4米的距离,实际上为3.9米,当系统了解到这一事实后将会改变固定参照系为真实的状态,这个时候原本放在4米位置的对象,在坐标系修改后就放在了3.9米的位置,就看起来好像偏离了他原来所在的位置)。
C.Spatial anchors :空间锚点
1.To avoid drift and ensure that a hologram remains exactly at a specific spot in the world, even as the system discovers more about the world, you can place that hologram using a spatial anchor.
为了解决静止参照系中出现的偏移问题,你放置的全息影像就可以采用空间锚点。
2.A spatial anchor represents an important point in the world that the system should keep track of over time. Each anchor has a coordinate system that adjusts as needed, relative to other spatial anchors or frames of reference, in order to ensure that anchored holograms stay precisely in place.
每一个空间锚点都代表着世界中的一个点,用以被系统追踪。每一个锚点都有着一个相对于其他空间锚点或固定参照系可调整的坐标系,以确保全息影像准确的呆在它的位置上。
Why a single rigid coordinate system cannot be used for the whole scene :
为什么不能用一个不变的坐标系描述整个场景:
1.Today, when writing games, data visualization apps, or virtual reality apps, the typical approach is to establish one absolute world coordinate system that all other coordinates can reliably map back to. In that environment, you can always find a stable transform that defines a relationship between any two objects in that world. If you didn't move those objects their relative transform would always remain the same. This kind of global coordinate system works well when rendering a purely virtual world where you know all of the geometry in advance.
如今,我们在写一个可视化数据的应用或虚拟现实应用,最典型的方式是建立一个绝对的世界坐标系,其他所有的坐标系都依赖其映射。在这个环境下,你总是能够找到一个固定的变换矩阵定义两个对象在世界中的关系。如果你不去移动这些对象,他们的相对的变化矩阵总是保持不变的。这类型的全局坐标系总是能够在一个纯粹的并且能够提前知道所有几何结构(是指的位置,形状等几何关系永远不会发生变化的情况下)的虚拟世界中得到完美的应用。
2.In contrast, as a mixed-reality device, HoloLens has a dynamic sensor-driven understanding of the world -- continuously adjusting its knowledge over time of the spatial anchors you create. As a result, your app must be prepared for the spatial anchors you create to change their relationships to each other over time.
与其相对的,作为一个混合现实的设备。HoloLens有着动态的传感器来理解世界,并随着时间的推移,持续的调整着你所创建的空间锚点的认知。其结果就是,你的应用必须随时准备好为你所创建的空间锚点改变它们之间的相对关系。
3.For example, the device may currently believe two locations in the world to be 4 me