셰이더 프로그래밍 - AMD RenderMonkey 사용해서 쉐이더 공부를 해보자9 (영상처리 기법, 포스트프로세싱 흑백 세피아)
<본 포스팅은 강좌가 아닙니다.>
포스트 프로세싱은 기존에 렌더링된 씬에 렌더링 효과를 더하는 작업이다.
렌더링 결과를 2D로 저장해 그 이미지에서 추가 작업을 하는 것이다.
화면을 2D 이미지로 렌더타깃으로 저장하는 셰이더 하나와
효과만 주는 셰이더 여러개로 가벼운 작업이 가능하다.
use viewport dimension으로 화면에 꽉차는 이미지로 한다.
렌더타깃으로 이 이미지로 저장하게 한다.
ScreenAlighnedQuad는 렌더몽키에서 지원하는 화면 사각형 모델이다.
하드웨어가 이 면을 뒷면으로 생각해서 RenderState를 추가해 CullMode를 None으로 설정한다.
- 흑백셰이더
VS 버텍스 셰이더
정점 위치가 이미 투영공간에 있어서 변환이 필요없다.
PS 버텍스 셰이더
그저 색 평균으로 나누어도 되지만 회색처럼 보이지만
인간의 눈이 RGB에서 명암을 지각하는 정도가 달라
공식이 있다고 한다. 책에서는
빨강은 30% 녹색은 59% 파랑은 11%라고 한다.
찾아보니 https://www.wikiwand.com/en/Grayscale#/Converting_colour_to_grayscale
Grayscale | Wikiwand
In digital photography, computer-generated imagery, and colorimetry, a grayscale image is one in which the value of each pixel is a single sample representing only an amount of light; that is, it carries only intensity information. Grayscale images, a kind
www.wikiwand.com
결과
- 세피아 셰이더
세피아 톤은 갈색빛 도는 감성이 도는 느낌이다.
버텍스셰이더는 위에와 동일하다.
PS 픽셀셰이더
책에 있는 셰피아 공식을 그대로 적용했다.
결과