본문 바로가기
카테고리 없음

머티리얼 최적화: 버텍스 인터폴레이터

by oddsilk 2024. 7. 1.

 

Vertex Interpolater

버텍스 인터폴레이터를 사용하면 사용 가능한 UV 채널 중 하나를 사용하게 됩니다.

스태틱 메시의 경우 최대 8개의 UV 채널을 사용할 수 있습니다. 이는 픽셀 단계에서 버텍스 단계로 무언가를 이동시키기 위해 UV 채널을 사용한다는 의미입니다.

 

 

이것이 왜 유용할까요?

먼저, 성능을 향상시킬 수 있습니다. 픽셀 단계에서 실행되는 텍스처를 생각해보면, 화면의 모든 픽셀에 대해 계산이 필요합니다. 하지만 버텍스 인터폴레이터를 사용하면 픽셀 단계에서 이러한 계산을 하지 않고 버텍스마다 계산하게 됩니다. 예를 들어, 어떤 객체가 550개의 버텍스를 가지고 있다면, 30,000번 대신 550번만 계산하게 되는 것입니다.

 

 

 

 

물론 버텍스 인터폴레이터를 사용하는 것에도 약간의 오버헤드가 있을 수 있지만, 대개는 큰 성능 향상을 가져올 수 있습니다. 단색을 사용하는 경우, 이것은 훌륭한 성능 향상을 가져올 수 있습니다. 예를 들어, 초록색을 계산할 때 픽셀마다 계산하는 대신 버텍스마다 계산하면 성능이 더 좋습니다.

 

 

저는 캐릭터 셰이더에서 이 방법을 많이 사용합니다. 예를 들어, 캐릭터 셰이더에서 색상을 층층이 쌓을 때 버텍스 인터폴레이터를 사용하고, 그 후 하나의 텍스처 샘플을 사용하여 그 사이를 블렌딩합니다.

 

또한, 버텍스 인터폴레이터를 인스턴스 객체와 함께 사용할 수도 있습니다. 예를 들어, 잎사귀와 같은 인스턴스 객체에서 피벗 포인트를 사용하여 오프셋 마스크를 만들 때, 전체 인스턴스 컬렉션을 기준으로 작동하는 경우가 있습니다. 하지만 버텍스 인터폴레이터를 사용하면 각 인스턴스마다 그라데이션을 적용할 수 있습니다.

 

 

정리하자면, 버텍스 인터폴레이터는 성능을 향상시키고 특정 효과를 구현하는 데 유용합니다. 성능 면에서는 한 단계에서 다른 단계로 명령어를 이동시키는 것이며, 일반적으로 버텍스 단계가 픽셀 단계보다 훨씬 저렴합니다. 따라서 반드시 픽셀 단위로 정확할 필요가 없는 경우, 버텍스 단계에서 처리하는 것이 좋습니다.