본문으로 바로가기

OpenGL 에서 정말 난이도가 높은것 중 하나가 와이어프레임을 그리는것이라 생각함..
이유는 면위에 선을 그리는거 자체가 간섭이 일어나기에 선이 제대로 보이지 않고..
면을 Offset 하지 않으면 도통 깨끗한 라인을 볼수 없다는것.. (OpenGL에서 선을 offset 하는 기능은 없음)
이것도 문제가 면을 Offset 하기 때문에 간혹 면과 다른 면의 선이 간섭이 발생하는것처럼 보이기도함..
그래서 선을 geometry 스테이징에서 아주 앏은 quad로 변환하여 Offset 해도 마찬기로 간섭이 발생하는것처럼 보이기도함..
어쨌던 이래나 저래나 Wireframe을 그리는 단계가 추가되기 때문에 속도 저하가 아주 약간이라도 있기마련..

면을 그릴때 선을 같이 쉐이더에서 그릴수는 없을까 생각하다 구글링을 해보니.. 아래의 논문이 보임..

 

imm4884.pdf
1.31MB


확인해보니.. fragment 스테이징에서 primitive의 최외각을 추출해서 선을 그려주는 아주 간단하면서
속도 저하가 없는 아주 깨끗한 라인을 그릴수 있는 기법이란걸 알앗음.

해당 논문을 구현한 싸이트가 보이는데..
http://strattonbrazil.blogspot.com/2011/09/single-pass-wireframe-rendering_10.html
http://strattonbrazil.blogspot.com/2011/09/single-pass-wireframe-rendering_11.html

혹시 싸이트가 언제 짤릴지 모르니 아래는 백업 pdf…

Clipping-Space_-Single-Pass-Wireframe-Rendering.pdf
0.30MB
Clipping-Space_-Single-Pass-Wireframe-Rendering-Explained-and-Extended.pdf
0.41MB


최종 구현 결과는…

 

'블로그 (Blog) > 개발로그 (Devlogs)' 카테고리의 다른 글

pacman 업데이트 에러  (0) 2024.03.08
OpenCascade 란?  (0) 2024.03.08
ccache  (0) 2024.03.08
FBVector  (0) 2024.03.08
ffmpeg 프레임 추출 예제  (0) 2024.03.08