Developments

Developments/VTK

[VTK] Picker Interaction 2

1. 개요 이전 글에서 Picker의 종류들과 각각의 사용방법에 대해 알아봤었다. 이번에는 vtkPicker 를 사용하는데 알아두면 좋을 vtkPickingManager와 PickList를 알아보려고 한다. 2. vtkPickingManager Picking 은 Renderer 의 Scene 에서 기하학적 계산을 많이 하므로 매우 computation 소모가 큰 작업이다. 그렇기에 VTK 에서는 vtkRenderWindowInteractor 에서 관리하는 vtkPickingManager를 객체를 만들었고, 이를 통해서 중복적으로 picker 객체를 사용하는 것을 방지하기 위한 관리용 객체를 정의하고 있다. PickingManager는 하나의 interactor 에서 여러개의 picker가 중복적으로 사용..

Developments/VTK

vtkTransform Multiply 비교

1. 개요 vtkTransform 의 PreMultiply와 PostMultiply 방식을 비교한다. 2. PreMultiply Matrix 곱을 수행할 때 기존의 matrix를 pre 즉 앞단에 놓고 계산을 한다. 함수의 명칭때문에 헷갈리지만 명칭의 기준이 기존 matrix 값을 의미한다. Matrix = PrevMatrix * NewMatrix 로 표현할 수 있다. 이럴 경우 matrix의 좌표계는 상대 좌표계로 계산된다. 3. PostMultiply PreMultipy 와 반대로 기존 matrix 값을 post 뒷단에 놓고 계산 한다. Matrix = NewMatrix * PrevMatrix 로 표현할 수 있다. 이럴 경우 matrix의 좌표계는 월드 좌표계로 계산된다. 3. 구현 vtkAnnota..

Developments/AWS

AWS Cognito with OAuth2

Cognito 서비스에서 User Pool과 Identity Pool 에서 개별적으로 OIDC(Open Identity Connect) 기능과 OAuth2 를 제공하고 있다. 하지만 각자 사용하는 용도와 목적의 차이가 있기에 이를 정리한다. 1. Conito User Pool with OAuth2.0 OAuth2 는 인가를 위한 프레임워크로 사용자의 자격인증을 공유하지 않으면서 권한을 부여할 수 있는 방식이다. 이를 인증하는 방법은 여러가지가 있으나 기본적으로 Code 를 기반으로 인증을 수행하는 방법이 범용적으로 많이 사용된다. 여러 인증 방식은 아래의 링크를 확인하자 Understanding Amazon Cognito user pool OAuth 2.0 grants | Front-End Web & M..

Developments/AWS

AWS Service 요약

Compute Services: Amazon Elastic Compute Cloud (EC2): EC2 provides resizable compute capacity in the cloud. It allows businesses to launch virtual machines (instances) and run various applications, including web and mobile apps, databases, and enterprise applications. AWS Lambda: Lambda is a serverless compute service that runs code in response to events and automatically manages compute resourc..

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 으로 만들고,..

RichardBang
'Developments' 카테고리의 글 목록 (2 Page)