10월, 2022의 게시물 표시

220930) RGBA, 알파테스트, 알파블렌딩, 알파소팅, Z-fighting

이미지
RGBA RGB 색상값에서 '알파 채널 값'을 더한 색상값이다. 알파값이란 텍스처에서 투명도를 나타내기 위한 값이며, RGB값처럼 0~1까지의 범위를 가진다. 알파테스트 임의로 설정한 값을 기준 으로 알파채널의 값에 따라 결과값을 1, 없으면 0으로 판단하여 투명도를 결정하는 방법 으로, 간단명료하여 연산속도가 빠르지만 , 중간값이 없어 반투명이 존재하지 않는다. --- 알파블렌딩 대상(Dest)에 원본(Src)을 변경/조합해서 픽셀 색을 조정하는 방법. 투명도를 세밀하게 주어 반투명을 표현할 수 있는 방법이며, 반투명한 객체가 여러 장 겹쳐있어도 전부 보이는 것처럼 모든 픽셀은 언제나 보일 수 있다는 것을 전제로 작동한다. 때문에 깊이 테스트를 하여 위치 값을 재정렬하고, 다시 찍어서 모든 픽셀의 색상을 전부 계산해야 하기 때문에 처리속도가 느리다. --- 알파 소팅 실시간 렌더링에서 처리속도를 올리는 기법 중 하나. 일반적으로 알파가 없는 오브젝트 들은 화면 앞쪽 오브젝트 부터 뒤쪽 오브젝트 까지 순서대로 렌더링 하는 것이 가려진 오브젝트를 렌더링하지 않아도 되기 때문에 처리속도가 빠르다.  그러나 알파값이 있는 오브젝트는 앞에 그리더라도 뒤쪽 오브젝트를 그려야 하기 때문에 위처럼 처리할 수 없다. 알파값이 있는 오브젝트 는 반대로 뒤쪽부터 그린다. 이처럼 알파값이 있는 오브젝트 와 없는 오브젝트 를 따로 그려 렌더링하는 기법을 알파 소팅 이라 한다. Z-Fighting 두 개의 폴리곤이 유사한 Z깊이 값을 가지고 있어 두 객체가 눈에 깜빡거리듯이 번갈아 나타나는 증상 을 가리킨다. 이는 두 객체 중 무엇을 우선적으로 렌더링을 해야 하는지 알 수 없어 발생하는 현상이기 때문에 이를 해결하기 위해서는 개발자가 표현하고자 하는 순서를 명확하게 제시할 필요가 있다. 순서를 명확히 하는 방법은 여러가지가 있다. 1. Z축의 소수점 단위로 수치를 조절하는 방식 2. 카메라의 near와 far plane값을 조절하는 방식 (카메라에 근접할수록 ...