- 알파테스트 - 알파테스트는 알파채널값이 얼마든간에, 알파값이 있으면 1, 없으면 0으로 판단하여 계산이 되므로 연산속도가 비교적 빠릅니다. 하지만 그만큼 퀄리티가 안좋아집니다. 그럼에도 불구하고 대부분의 게임에서는 이 알파테스트를 많이 사용합니다. 왜냐하면 게임에서 대부분 속도가 중요하기 때문입니다. 즉 반투명은 없다고 생각하면 됩니다.
- 알파블렌딩 - 반투명의 유리가 수십장 겹쳐져 있어도 전부 보이는 상황 있습니다. 이럴때는 깊이 테스트를 해야 합니다. 그러면서 위치값을 재 정렬하고, 다시 찍으면서 모든 픽셀의 색상을 전부 계산해주어야 합니다. 그래서 연산이 느립니다. 대부분의 이펙트가 알파 블렌딩만 으로 처리되는 경우가 많으며 이때문에 게임에 부하를 주는 원인중 하나입니다. 그 외에도 반투명한 유리, 비치는 옷 등은 알파 블렌딩을 사용할 수 밖에 없습니다.
최적화하는 방법은 알파테스트를 통하여 최대한 알파블렌딩을 할 요소들을 줄여주는것이 좋습니다.
- 알파소팅 - 실시간 렌더링에서 속도를 올리는 기법중에 가장 기본적인 기법중에 '알파소팅'이 있습니다. 알파가 없는 오브젝트들은 화면 앞의 오브젝트부터 뒤에 있는 오브젝트 순으로 렌더링하는게 빠릅니다. 이것은 화면 앞의 오브젝트를 렌더링하면 그 뒤에 가려진 오브젝트는 렌더링하지 않아도 되기 때문에 속도가 빨라지는 원리입니다. 하지만 반투명, 투명 오브젝트는 위와 같이 앞에서부터 그리더라도 뒤에 있는 오브젝트가 그려져야 하기 때문에 위와 같이 처리할 수 없습니다. 그래서 반투명,투명 오브젝트는 반대로 뒤에서부터 그려야 합니다. 그래야 앞에 반투명 오브젝트를 그리더라도, 먼저 그려진 뒤의 오브젝트가 비춰서 보입니다. 이런 이유때문에 게임에서는 알파가 없는것들 따로 그리고, 알파가 있는것들을 따로 그립니다. 이것을 '알파 소팅' 이라고 합니다. 그래서 한 오브젝트에 투명한 마테리얼과 불투명한 마테리얼이 섞여 있으면, 그 오브젝트는 반투명 오브젝트들과 같이 렌더링 됩니다. 즉, 이런 경우엔 앞에서부터 렌더링하는 '최적화 효과'를 적용할 수 없기 때문에, 반투명 오브젝트가 많은 경우에는 렌더링 속도가 느려집니다. 그래서 불투명과 반투명 마테리얼을 분리해서 따로 렌더링하는것이 더 효율적입니다.