Skip to content

**** ****

for my bad memories..

Single-pass Wireframe Rendering


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

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

imm4884.pdf

확인해보니.. 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
Clipping Space_ Single-Pass Wireframe Rendering Explained and Extended.pdf

최종 구현 결과는…


Categorized as: Programming



답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다


이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.