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
'Shader ' 카테고리의 다른 글
OpenGL Transform 개요 (0) | 2022.06.04 |
---|---|
노말맵 블렌딩 (0) | 2022.03.06 |
URP shader 에서 Texture 16장 초과하여 사용하기 (3) | 2021.08.04 |
유니티 셰이더 버전별 인터폴레이터 / 각 타겟별 성능 (0) | 2021.08.03 |
서피스 셰이더에서 버텍스 셰이더 인풋값 초기화 (0) | 2021.07.07 |
댓글