분류 전체보기

Developments/Hololens

[Hololens2] Unity 설치 및 MRTK 소개 Tutorial

MRTK는 VR(가상 현실) 및 AR(증강 현실)의 혼합 현실 환경을 빌드하기 위한 플랫폼 간 도구 키트이다. MRTK를 활용하여 Hololens2 의 개발을 진행할 수 있는 방법은 현재 Unity에서만 기능이 제공되고 있다. 본 글은 Microsoft 사의 첫번째 Tutorial 을 기반으로 작성하였다. Mixed Reality Toolkit 소개 - 프로젝트 설정 및 손 상호 작용 사용 - Training | Microsoft Learn 1. Unity Editor 설치 Unity Hub 에서 Install Editor 를 눌러 원하는 버전을 설치하도록 한다. Add Module 에서 Universal Window Platform Build Support 를 추가하도록 한다. 설치할 때에는 Holol..

Developments/VTK

[VTK] PolyData Cutting and Projection

1. 개요 World 에 있는 PolyData 형상과 면이 있을 때 면과 형상의 수직(normal) 벡터의 시점으로 cutting을 수행하고 cutting contour 를 해당 면으로 투영하는 기능을 수행한다. Polydata cutting 기능은 이전에 설명하였고 추가적으로 projection에 관한 기능과 코드의 흐름은 주석을 보면 알 수 있다. 2.코드 public void TestCutterPolydataProjection() { // Plane 을 실시간으로 변경하여 테스트 할 수 있는 Widget 생성 var planeWidget = vtkPlaneWidget.New(); planeWidget.SetNormal(0, 0, -1); planeWidget.SetOrigin(-1, -1, 0); ..

Developments/VTK

[VTK] Camera Clipping 보장하기

Camera 제어에서 Clipping 영역을 넘어가는 Actor가 있으면 짤려서 보이지를 않는다. 이를 해결하기 위한 방법 renderer.StartEvt += (sender, arg) =>{ renderer.ResetCameraClippingRange(); } ResetCameraClippingRange : Reset camera에서 clipping 요소만 reset을 한다.

Developments/VTK

[VTK] CornerAnnotation 알아보기

1. 개요 VTK 스크린 화면에 정보를 출력할 때 쉽게 사용할 수 있는 vktCornerAnnotation 을 알아보려고 한다. 구현은 매우 쉬우므로 TextPosition의 정의와 정의되어 있는 Tag를 활용하는 방법을 설명한다. 2. TextPosition Renderer 의 화면을 총 8개의 위치로 정의하며 각 위치별 index와 명칭은 아래와 같다. public void TestTextPosition() { annotation.SetText((int) VtkTextPosition.LowerLeft, $"{(int) VtkTextPosition.LowerLeft}-{VtkTextPosition.LowerLeft}"); annotation.SetText((int) VtkTextPosition.Lowe..

Developments/VTK

[VTK] Camera 알아보기 2

1. 개요 카메라를 정의하는데 필요한 속성 정보는 이전에 설명한 내용과 같고 이를 설명하는데 있어 개념적으로 헷갈릴 수 있는 부분을 보충하기 위한 내용을 작성한다. [VTK] Camera 제어하기 — 로봇을 품은 개발자 이야기 (tistory.com) [VTK] Camera 제어하기 Camera 속성알기 Position : camera 가 3차원공간에 있는 위치이다. FocalPoint : camera 3차원 공간을 바라보고 있는 초점의 위치이다. View Angle : Pinhole 카메라 모델을 적용하였을 때에 camera가 보는 시점의 화 richardworld.tistory.com 카메라의 속성에서 가장 중요한 것은 Position 과 Focal point이다. 이는 Camera가 바라보는 방향 ..

Developments/VTK

[VTK] PolyData 절단 외곽선, 단면 그리기

1. 개요 PolyData를 단면으로 절단하면 새로운 절단된 면이 생긴다. 절단된 면은 Points 로 구성되며 같은 데이터를 이용하여 단면을 이루는 외곽선을 그릴 수 있다. 2. 구현 vtkCutter : 입력된 PolyData 를 입력된 vtkImplicitFunction을 이용하여 절단 기능을 수행한다. 절단된 된 면의 포인트와 라인을 갖는 Polydata를 생성한다. vtkDelaunay2D : 입력된 points 데이터를 이용하여 삼각형 polygons을 생성한다. vtkStripper : 삼각형 polydata 를 stripper 데이터로 생성한다. Stripper는 중복되는 데이터를 정리하여 메모리 소모를 줄일 수 있다. vtkCutter의 출력데이터를 입력하면 한개의 line 으로 만들고,..

Developments/VTK

[VTK] Coordinate 알아보기

1. 개요 VTK 에는 여러개의 기준 좌표계가 존재한다. 그리고 좌표계 간의 위치 값을 변환해주는 클래스가 vtkCoordinate 이다. vtkCoordinate 를 이용하여 변환을 할 수 있는 좌표계는 아래와 같다. Display 윈도우 화면의 X, Y 좌표값 좌측하단이 0,0 이고 우측 상단이 window 사이즈 값이다 Nornmalized Display Display 를 정규화한 값이다 0~1 Viewport Renderer로 그린 viewport 영역에서의 X,Y 좌표 값 좌측하단이 0,0 이고 우측 상단이 viewport 사이즈 값이다 Normalized Viewport Viewport 를 정규화한 값이다 0~1 View Pose 좌표계에서의 X,Y,Z 값 -1~1 Pose 카메라의 좌표계 W..

Developments/VTK

[VTK] vtkProp 위치, 회전 제어하기

VTK 에서 vtkProp 은 화면에 그리고자 하는 사물의 위치와 회전 정보를 갖고 있다. 보통 Prop의 DataSet은 건드리지 않고 공간상의 위치와 회전을 변경하는 방식을 많이 사용하게 된다. 이때 고려해야 할 것들을 정리한다. 1. 1. vtkProp 기본 제어 Prop 의 원점과 위치 제어는 API 명령을 통해 쉽게 할 수 있다. Origin 과 Position 이 다른 것은 Origin은 나중에 Transform을 수행할 때의 Pivot 점으로 사용된다. prop.SetOrigin(x,y,z); prop.SetPosition(x,y,z); 회전은 Degree 값을 회전을 하는데 PostMultiply (상대축회전) 로는 RotZ->RotX->RotY 순으로 PreMultiply (절대축회전) ..

Developments/VTK

[VTK] Interactor observer 알아보기

VTK 의 RenderWindow에서 interaction 을 수행하기 위한 이벤트 처리에 대한 흐름 내용과 Interaction Style을 구현하는 방법을 공부한 것을 간단하게 정리하려고 한다. 개념적인 부분에 대한 설명에서는 개인적인 이해에 따라 작성한 것이므로 잘못된 내용이 있거나 설명이 부족할 수도 있다. 1. 개요 RenderWindow의 interactor는 사용자와의 상호작용을 수행하기 위한 관리자와 같다. Observer 패턴으로 구현되어 있어 사용자는 처리하고 싶은 이벤트를 등록하고 observer에서 해당 이벤트가 발생하면 사용자가 등록한 callback 함수를 수행하도록 한다. 2. Interactor Observer vtkRenderWindowInteractor는 RenderWin..

Developments/VTK

[VTK] Multi Renderer 알아보기

VTK 의 Renderer를 여러개 사용하는 방법을 공부한 것을 간단하게 정리하려고 한다. 개념적인 부분에 대한 설명에서는 개인적인 이해에 따라 작성한 것이므로 잘못된 내용도 있을 수 있다. 1.개요 VTK 의 RenderWindow는 Rendering 수행을 관리하는 Renderer 를 등록하여 관리한다. 그리고 Renderer는 독립적인 버퍼를 갖고 활성화된 Camera 정보를 이용하여 Actor와 같은 Prop을 그린다. RenderWindow는 컨트롤마다 한개만을 갖고 있으나 Renderer 는 여러개를 갖고 독립적으로 관리할 수 있다. 여러개의 Renderer 를 만들고 원하는 목적에 따라서 관리한다면 어떻게 활용해야 할 것인가.. 2. Multi Renderer Viewport 여러개의 Ren..

RichardBang
'분류 전체보기' 카테고리의 글 목록 (6 Page)