3D Graphics/libigl 5

libigl에서 Colormap(Lookup Table) 사용하기

Colormap을 사용하는 이유 Colormap은 수학적인 결과를 색상으로 보고자 할때 많이 사용한다. 예를 들어 가우시안 곡률을 색상으로 보면 한눈에 개략적인 상황파악이 쉬워지고, 결과적으로 작성한 코드의 수식을 디버깅하기 용이해진다. Colormap에 대하여 Colormap은 0.0 ~ 1.0에 해당하는 값을 출력해주는 기능으로써 float N개짜리 vector를 넣어주면 N행 3열짜리 매트릭스 를 반환하는데 각 행에는 RGB값을 0.0 ~ 1.0 값으로 표현된 형태로 들어 있음. Colormap은 색상분포가 종류별로 많은데, 기본적으로는 RGB를 잘 섞은 Turbo 타입이 무난한거 같음 각 정점에 0.0 ~1.0 값에 해당하는 컬러맵을 대입해서 출력한 결과는 아래와 같음 Colormap 사용 방법 ..

3D Graphics/libigl 2023.05.05

libigl에서 Keyboard, Mouse Picking 이벤트 처리

이벤트 처리는 Viewer 단계에서 처리함 이벤트 함수가 미리 정의되어 있는데, 해당 함수를 교체하는 방식으로 사용. 아래의 예시는 Mesh위에서 마우스 클릭했을때, 클릭한 위치의 Face ID와 Vertex ID를 알려주는 구문 #include bool mouse_down(igl::opengl::glfw::Viewer& viewer, int button, int modifier) { // 클릭한 메시의 Face ID와 가장 가까운 Vertex ID 알려주는 구문 int fid; Eigen::Vector3f bc; double x = viewer.current_mouse_x; double y = viewer.core().viewport(3) - viewer.current_mouse_y; if (igl::..

3D Graphics/libigl 2023.05.05

libigl을 이용하여 새로운 프로젝트 시작하기

이전 글(libigl 시작하기)에서 libigl을 설치하고 예제를 돌려보았다면 나만의 프로젝트를 시작해 보자. 목표 libigl을 이용하여 내프로젝트를 만들기. 추가 목표 빠른 컴파일을 위한 환경 설정 : 원래 libigl은 header 파일만 있으면 사용할수 있어서, 사전 빌드과정이 필요는 없다. 하지만 이 방식을 사용하면 코드 한 줄을 고칠때마다 전체 빌드를 해야 하므로 개발할때 답답해진다. 코도 한줄 고치고 20초간 컴파일한다고 생각하면 개발이 너무 지루해진다. 그래서 이전글을 참고해서 빌드를 했다면 정적 라이브러리 파일이 하나 생성되는데 해당 라이브러리파일을 이용하여 빌드시간을 줄이는 환경을 설정하면 개발이 편해진다. 선행조건 개발툴 : Visual studio 2022 Community libi..

3D Graphics/libigl 2023.04.29

libigl 시작하기

libigl(https://libigl.github.io/) 이란? 3D Mesh Processing and Visualiztion Library로써 3차원 폴리곤 데이터 처리 알고리즘 및 뷰어를 제공해주는 라이브러리 libigl(2.4.0)가 제공하는 기능 - Geometric Operators : Curvature, Gradient, Laplacian, Geodesic, Deformation, Remeshing 등등의 알고리즘 제공 - Visualization : OpenGL 기반의 랜더링 뷰어 제공 - 외부 라이브러리 추가 포함 : CGAL 등등의 외부 라이브러리도 추가적으로 포함되어 있어서 확장성이 좋음 라이선스 - https://libigl.github.io/license/ 기본적인 사항들은 M..

3D Graphics/libigl 2023.04.23