일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 베지에 곡선
- 컴퓨터 아키텍쳐
- Mesh Processing
- 윈도우 프로그래밍
- OpenGL
- denoising
- 컴퓨터 구조
- 오픈지엘
- 운영체제
- 윈도우
- shader programming
- MFC 윈도우 프로그래밍
- shader
- window programming
- win32
- 윈도우프로그래밍
- bezier curve
- 그래픽스기초
- 셰이더프로그래밍
- Graphics
- modeling
- c4d
- 핵심 API로 배우는 윈도우프로그래밍
- Geometry Modeling
- 그래픽스
- 렌더링
- 윈도우 구조
- 셰이더
- MFC
- Win32 API
- Today
- Total
목록Mesh Processing (8)
오다기리 박의 알고리즘 노트
지형 메쉬를 편집하는 툴을 만들어보았다. 쿼드 메쉬를 하나 만들어서 작은 삼각형으로 subdivision하고, 메쉬를 sculpting 및 deformation을 해서 지형 메쉬로 만들었다. [개발 환경] C++ / OpenGL / Visual Studio [참고] Botsch, Mario, and Leif Kobbelt. "An intuitive framework for real-time freeform modeling." ACM Transactions on Graphics (TOG) 23.3 (2004): 630-634.
메쉬에 존재하는 홀(hole)을 발견해서 부드러운 메쉬(초록색)로 채운 후, 그 위에 디테일을 추가하여 모델을 복원하는 툴을 만들어보았다. [개발 환경] C++ / OpenGL / Visual Studio [참고] Liepa, Peter. "Filling holes in meshes." Proceedings of the 2003 Eurographics/ACM SIGGRAPH symposium on Geometry processing. 2003. Park, Jung-Ho, et al. "GeoStamp: Detail Transfer Based on Mean Curvature Field." Mathematics 10.3 (2022): 500.
메쉬를 부위별로 분할하고 선택하는 기능을 만들어보았다. 분홍색으로 나타나는 영역에서 메쉬 굴곡이 급격하게 변하는 부분까지 자동으로 분할이 가능하다. [개발 환경] C++ / OpenGL / Visual Studio [참고] Au, Oscar Kin-Chung, et al. "Mesh segmentation with concavity-aware fields." IEEE Transactions on Visualization and Computer Graphics 18.7 (2011): 1125-1134.
메쉬에서 일부 영역을 선택해서 Fairing 을 적용해보았다. mesh fairing은 디테일/노이즈를 제거하여 부드럽게 만드는 기법이다. [개발 환경] C++ / OpenGL / Visual Studio [참고] Moreton, Henry P., and Carlo H. Séquin. "Functional optimization for fair surface design." ACM SIGGRAPH Computer Graphics 26.2 (1992): 167-176. Desbrun, Mathieu, et al. "Implicit fairing of irregular meshes using diffusion and curvature flow." Proceedings of the 26th annual con..
메쉬의 재질(material)에 셰이더(shader)를 붙여서 표현해보았다. OpenGL에서는 기본적으로 삼각형 안에서 세 점의 조명색상을 보간하는 방식인 Gouraud 셰이딩을 사용하기 때문에 메쉬의 렌더링 퀄리티가 높지 않다. 영상에서는 GLSL을 사용하여 퐁(Phong) 셰이딩, 툰(Toon) 셰이딩, 환경 매핑(Environment mapping)등을 사용한다. 특히 퐁셰이딩은 삼각형 안에서 세 점의 법선을 보간하기 때문에 Specular 효과를 확실하게 표현할 수 있다. [개발 환경] C++ / OpenGL / Visual Studio
메쉬의 노이즈를 제거하여 표면을 부드럽게 만들어 보았다. 각 정점의 위치를 이웃한 정점들의 무게중심으로 이동시키는 단순한 방식을 적용했다. [개발 환경] C++ / OpenGL / Visual Studio
3D메쉬를 2D 공간에 교차없이 펼쳐보았다. 삼각형의 각도를 유지시키기 위해 Least Squares Solution을 사용했다. 2D 매개화는 텍스처 매핑, 리메싱, 압축, 곡면 복원 등에 널리 활용되는 기술이다. [개발 환경] C++ / OpenGL / Visual Studio [참고] Floater, Michael S., and Kai Hormann. "Surface parameterization: a tutorial and survey." Advances in multiresolution for geometric modelling (2005): 157-186.
메쉬의 곡률을 계산해서 가시화를 해보았다. 첫번째는 가우스 곡률을, 두번째는 평균 곡률을, 세번째는 법선 방향에 해당된다. 보통 메쉬위의 한 정점에서 곡률을 계산하면 그 값이 매우 국소적이기 때문에 전체적인 곡률 가시화 결과가 지저분할 수 있다. 이럴 때는 곡률값을 주변곡률의 평균으로 대체하는 등의 스무딩 기법을 적용하는 것이 좋다. [개발 환경] C++ / OpenGL / Visual Studio [참고] Botsch, Mario, et al. Polygon mesh processing. CRC press, 2010.