본문 바로가기
Shader

Unity Vertex Shader / Fragment Shader 의 설정 함수

by 대마왕J 2021. 8. 10.

Vertex Shader

UNITY_SETUP_INSTANCE_ID(input);
이 옵션을 사용하여 인스턴스 ID가 셰이더 함수에 액세스할 수 있게 만들 수 있습니다. 버텍스 셰이더의 맨 처음에 사용해야 하며 프래그먼트 셰이더에서는 선택 사항입니다. 

UNITY_TRANSFER_INSTANCE_ID(input, output);
이 옵션을 사용하여 버텍스 셰이더의 입력 구조에서 출력 구조로 인스턴스 ID를 복사할 수 있습니다. 이는 프래그먼트 셰이더의 인스턴스별 데이터에 액세스해야 하는 경우에만 필요합니다.

UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
Single Pass Instanced 렌더링(’스테레오 인스턴싱’이라고도 불림)을 사용하면 GPU가 단일 렌더 패스를 수행하여 각 드로우 콜을 인스턴스화된 드로우 콜로 교체합니다. 이렇게 하면 두 드로우 콜 간의 캐시 일관성으로 인해 CPU 사용이 대폭 감소하고, GPU 사용은 소폭 감소합니다. 또한 애플리케이션의 전력 소비도 크게 절감됩니다.
https://docs.unity3d.com/kr/2019.4/Manual/SinglePassInstancing.html

 

Fragment Shader

UNITY_SETUP_INSTANCE_ID(input);
이 옵션을 사용하여 버텍스 셰이더의 입력 구조에서 출력 구조로 인스턴스 ID를 복사할 수 있습니다. 이는 프래그먼트 셰이더의 인스턴스별 데이터에 액세스해야 하는 경우에만 필요합니다.


UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
Single Pass Instanced 렌더링(’스테레오 인스턴싱’이라고도 불림)을 사용하면 GPU가 단일 렌더 패스를 수행하여 각 드로우 콜을 인스턴스화된 드로우 콜로 교체합니다. 이렇게 하면 두 드로우 콜 간의 캐시 일관성으로 인해 CPU 사용이 대폭 감소하고, GPU 사용은 소폭 감소합니다. 또한 애플리케이션의 전력 소비도 크게 절감됩니다.
https://docs.unity3d.com/kr/2019.4/Manual/SinglePassInstancing.html

반응형

댓글