GLSL 쉐이더 프로그래밍 - 포스트프로세싱을 활용하여 모니터 화면 픽셀 느낌 내기 - Whitmem
GLSL 쉐이더 프로그래밍 - 포스트프로세싱을 활용하여 모니터 화면 픽셀 느낌 내기
Graphic Development
2024-08-16 20:57 게시 cbe5d88de7da5a65c7f2

0
0
76
이 페이지는 외부 공간에 무단 복제할 수 없으며 오직 있는 그대로 게시되며 부정확한 내용을 포함할 수 있습니다. 법률이 허용하는 한 가이드 라인에 맞춰 게시 내용을 인용하거나 출처로 표기할 수 있습니다.
This page is not to be distributed to external services; it is provided as is and may contain inaccuracies.
RGB 텍스처를 사용한 픽셀 화면 구현
모니터를 바라보는 듯한 픽셀 느낌을 내기 위해서는 현재 텍스처와 픽셀 텍스처를 서로 합성해주면 된다. Blender 소프트웨어에서 하는 방법은 https://whitmem.kr/read/281 에 언급을 해두었다. 이번 작업물에서는 Object 자체에 Pixel 텍스처를 구현하는 것이 아니라, 포스트 프로세싱을 통해서 화면을 Pixel 처럼 구현하였다.
화면이 렌더링된 모습
다른 부분은 완전 검은색 부분이라서 (0,0,0) 픽셀이 렌더링되지 않았지만 화면에 보이는 전체적인 객체들을 한 번에 RGB 픽셀 모양으로 합성한 모습이다. 생각보다는 결과물이 나오지 않지만 우선 기본적인 방법만 기록한다.
GLSL PipeLine
기본적인 파이프 라인은 상기와 같다. PNG 이미지를 큐브 텍스처와 함께 렌더링하는 쉐이더와, 이 쉐이더를 RenderTarget에 담아 다시 화면상의 NDC Plane 에 렌더링하는 쉐이더 부 2개로 구성되어있다.
전반적인 렌더 흐름
초기 객체 메시
초기 객체 메시를 렌더링하는 GLSL 단, 객체의 버텍와 PNG 를 렌더하기 위한 텍스처 좌표를 픽셀 쉐이더로 넘긴다.
픽셀 쉐이더
넘겨온 텍셀 좌표를 바탕으로한 픽셀 쉐이더를 렌더링하는 쉐이더 단
위는 객체를 큐브를 렌더링하는 GLSL 단이다. 위 파이프라인은 결과적으로 렌더 타겟에 렌더링되고, 렌더 타겟 텍스처는 다시 NDC에 렌더링되면서 아래 쉐이더로 흘러들어간다.
렌더 타겟의 포스트프로세싱을 위한 버텍스 쉐이더
포스트 프로세싱의 NDC Plane 좌표는 -1~1 까지의 범위를 가지고 있으므로 텍스처 좌표로 맞춰주기 위해서 +1 /2 를 해준다. 그러면 0~1 좌표로 보정된다.
포스프프로세싱을 위한 픽셀 쉐이더
해당 좌표의 RenderTexture 는 color에 담고, rgb 픽셀 하나를 나타내는 텍스처는 x,y에 각각 10000번 곱하여 한 행, 열당 10000개의 RGB 텍셀이 표시되도록 한다. 이 값에 color을 곱하여 RGB 분위기를 나타 낼 수 있었다.
원본 R1 렌더 타겟 텍스처
합성된 뷰
댓글 0개
댓글은 일회용 패스워드가 발급되며 사이트 이용 약관에 동의로 간주됩니다.
확인
Whitmemit 개인 일지 블로그는 개인이 운영하는 정보 공유 공간으로 사용자의 민감한 개인 정보를 직접 요구하거나 요청하지 않습니다. 기본적인 사이트 방문시 처리되는 처리 정보에 대해서는 '사이트 처리 방침'을 참고하십시오. 추가적인 기능의 제공을 위하여 쿠키 정보를 사용하고 있습니다. Whitmemit 에서 처리하는 정보는 식별 용도로 사용되며 기타 글꼴 및 폰트 라이브러리에서 쿠키 정보를 사용할 수 있습니다.
이 자료는 모두 필수 자료로 간주되며, 사이트 이용을 하거나, 탐색하는 경우 동의로 간주합니다.