홀로툴킷 SpatialMapping 부분 번역
(https://github.com/Microsoft/HoloToolkit-Unity/tree/master/Assets/HoloToolkit/SpatialMapping)
프리팹
RemoteMapping – 홀로렌즈에서 유니티로 메쉬를 보내 저장,로드하여 나중에 사용 가능
SpatialMapping – 홀로렌즈의 데이터에 접근,시각화 함. 또한 WDP에서 캡쳐한 룸 모델을 저장/로드
SurfacePlane – 바닥, 천장, 벽 등을 판별해주는 평면 프리팹
스크립트
ObjectSurfaceObserver.cs - WDP에서부터 매핑 데이터를 로드
RoomModel – 유니티에서 메쉬를 로드하는데 사용할 룸 모델
SpatialMappingManager.cs – 애플리케이션과 모든 매핑데이터 소스(파일,옵저버,네트워크) 간의 상호작용을 관리
PhysicalLayer – 매핑 데이터를 사용할 physics layer
SurfaceMaterial - 매핑 데이터를 랜더링할때 적용할 메터리얼
DrawVisualMeshes - 매핑 데이터를 랜더링할 지 결정함
CastShadows - 매핑 메쉬가 그림자를 cast 할 지 결정
SpatialMappingObserver.cs - 홀로렌즈 실행 동안 SurfaceObserver를 통해 찾은 모든 surfaces의 매핑 데이터를 추가하고, 갱신함
TrianglesPerCubicMeter - SurfaceObserver가 찾은 각각의 메쉬에 대한 Level of Detail (값이 클 수록 디테일함)
Extents - 카메라 위치에서 어디까지 관찰할 것인지의 정도
TimeBetweenUpdates - SurfaceObserver에서부터 갱신할 주기
SpatialMappingSource.cs - 현재 소스 오브젝트(파일,옵저버,네트워크)의 매핑 데이터 기반의 메쉬를 생성, 불러옴. SpatialMappingManager.cs는 소스 타입과 이 클래스 사이를 스위칭함(?)
TapToPlace.cs - 게임오브젝트를 탭하여 매핑 메쉬 위에 배치할 수 있는 간단한 스크립트. 오브젝트의 부모오브젝트를 옮길 수도 있음
GazeManager, GestureManager, SpatialMappingManager 가 씬에 있어야함
Scripts/RemoteMapping - 매핑 데이터를 홀로렌즈에서 유니티 에디터로 보내어 메쉬를 저장,로드 하여 추후에 사용 가능
FileSurfaceObserver.cs - remote mapping session 동안 저장된 spatial mapping 데이터를 로드하는 SpatialMappingSource
MeshFileName - 네트워크나 로드한 메쉬 데이터를 유니티로 저장할 때 쓸 파일 이름
SaveFileKey - 유니티 에디터로 실행 중 네트워크로부터의 메쉬를 저장할 때 누를 버튼
LoadFileKey - 유니티 에디터로 실행 중 네트워크로부터의 메쉬를 불러올 때 누를 버튼
MeshSaver.cs - 원격 매핑 세션 동안 FileSurfaceObserver의 파일로 보낸 메쉬데이터를 일고 쓰는 전역 클래스
RemoteMappingKey - 유니티 에디터로 실행 중 네트워크 상에 spatial mapping을 가능하게하는 버튼
SendMeshesKeyword - 홀로렌즈에서 유니티로 메쉬를 보낼 때 말할 음성명령어
RemoteMeshSource.cs - 홀로렌즈에서 실행하고, 메쉬를 유니티로 보낼 수 있는 네트워크 요소
ServerIP - 유니티를 실행하는 기기의 IPv4 주소
ConnectionPort - 홀로렌즈로부터 매핑 데이터를 받을 유니티 기기의 네트워크 포트
RemoteMeshTarget.cs - 유니티 에디터에서 실행되는 SpatialMappingSource 오브젝트. 홀로렌즈로부터 매핑 데이터를 받음
ServerIP - 유니티를 실행하는 기기의 IPv4 주소
ConnectionPort - 홀로렌즈로부터 메쉬 데이터를 받을 유니티 기기의 네트워크 포트
SimpleMeshSerializer.cs - 유니티 메쉬를 byte 배열로 바꾸는 전역 클래스. 원격 매핑 세션 동안 전송된 메쉬 데이터를 serialize, deserialize 할 때 MeshSaver.cs에 의해 사용됨
Scripts/SpatialProcessing - raw spatial mapping data를 처리하여 평면 찾기, 꼭지점 지우기 등 가능
PlaneFinding.cs - 기존 PlaneFinding DLL 을 덮는 유니티 스크립트. SurfaceMeshesToPlane.cs가 사용함
RemoveSurfaceVertices.cs - 명시된 bounding volume 외의(?) 정점들을 지우는 Spatial processing 컴포넌트
BoundsExpansion - bounding volume의 expand 양(?)
//SpatialMappingManager.Instance.GetMeshFilters() 의 MeshFilter.sharedMesh.vertices
SurfaceMeshesToPlanes.cs - PlaneFinding 플러그인이 필요하며 PlaneFinding.cs를 이용하여 매핑 메쉬의 평면을 찾고, 만드는 컴포넌트
ActivePlanes - 매핑 데이터에서 찾은 평면들
SurfacePlanePrefab - 평면 생성시 사용할 GameObject. null이면 유니티 기본 cube
MinArea - 평면이 생성되는데 필요한 최소 구역(Area)
DrawPlanes - 랜더할 평면 타입(벽, 바닥, 천장)을 명시하는 Bit 마스크
DestroyPlanes - 무시할 평면 타입을 명시하는 Bit 마스크
SurfacePlane.cs - 평면을 생성하고, 타입을 지정(벽, 천장, 바닥, 테이블, 알수없음) SurfaceMeshesToPlane를 사용하는 SurfacePlanePrefab의 컴포넌트여야함(?)
PlaneThickness - 각 평면의 두께
UpNormalThreshold - normal의 임계값 > 평면이 수평인지 수직인지 판단할 때 사용
FloorBuffer - 수평 평면이 테이블로 명시되기 전에 가장 큰 바닥평면으로부터의 최대 거리
CeilingBuffer - 수평 평면이 테이블로 명시되기 전에 가장 큰 천장평면으로부터의 최대 거리
WallMaterial - 벽 플레인을 랜더링할 때 사용할 메터리얼
FloorMaterial - 바닥 플레인을
CeilingMaterial - 천장 플레인을
TableMaterial - 테이블 플레인을
UnkownMaterial - 알수없음 플레인을
Shaders
'홀로렌즈(HoloLens) > SpatialMapping' 카테고리의 다른 글
Hololens - Open Spatial Mapping.obj in 3ds Max 2015 / 3ds Max에서 Spatial mapping 파일 열기 (0) | 2017.08.04 |
---|---|
Spatial Mapping in Unity 번역 (0) | 2017.07.18 |