This page may not work correctly inside the Unity editor. Open in browser

커스텀 셰이더에 Procedural Instancing 지원 추가

Nature Renderer 1.3.0 또는 더 최신 버전이 필요합니다.

Nature Renderer의 Procedural Instancing 기능은 컴퓨트 셰이더를 사용해 GPU의 전 렌더링 파이프라인을 실행할 수 있게 해줍니다. 퍼포먼스가 대폭 향상됩니다.

전 렌더링 파이프라인은 GPU에서 처리되기 때문에 셰이더로 바로 연결됩니다. 다시 말해 절차적 인스턴싱 기능을 적용하려면 커스텀 셰이더를 약간 수정해야 한다는 뜻입니다.

Nature Renderer에서 제공되는 모든 Nature Shaders는 이미 Procedural Instancing을 지원합니다.

참고: 이 코드는 새로운 주요 Nature Renderer 버전에서 업데이트되었을 수 있습니다. 차후 버전의 Nature Renderer에서 동작하지 않는 경우, 다시 이 페이지를 확인해 업데이트된 안내를 따르면 됩니다.

1.태그 추가

셰이더에 "NatureRendererInstancing" = "True” 태그를 추가합니다. 해당 셰이더가 절차적 인스턴싱을 지원함을 Nature Renderer에 알리는 태그입니다.

nature-renderer-add-procedural-instancing-tag.jpg

2.인스턴싱 옵션 추가

다음 pragma를 셰이더에 추가합니다. multi_compile_instancing pragma는 GPU 인스턴싱을 지원하는 두 번째 셰이더 배리언트를 추가합니다. instancing_options procedural:SetupNatureRenderer pragma는 Nature Renderer가 렌더링 데이터를 설정할 수 있도록 Unity에서 이 셰이더를 위한 ‘SetupNatureRenderer’ 함수를 호출해 렌더링하게 합니다.

#pragma multi_compile_instancing
#pragma instancing_options procedural:SetupNatureRenderer

셰이더에 이미 이 2줄이 있으면 대체해야 합니다.

3.Nature Renderer 라이브러리 참조

셰이더에 Nature Renderer 셰이더 코드를 포함시켜야 합니다. 프로젝트에 Nature Renderer가 있으면 추가함으로써 포함된 파일을 직접 간단히 참조할 수 있습니다.

#include "Assets/Visual Design Cafe/Nature Shaders/Common/Nodes/Integrations/Nature Renderer.cginc"

 

선택 사항

다수의 렌더러를 지원해야 하는 경우, NATURE_RENDERER 키워드를 사용하면 Nature Renderer 코드를 포함 또는 제외할 수 있습니다. Nature Renderer는 Nature Renderer로 렌더링된 머티리얼을 위한 NATURE_RENDERER 키워드를 자동으로 설정합니다.

예:

#ifdef NATURE_RENDERER
#include "Assets/Visual Design Cafe/Nature Shaders/Common/Nodes/Integrations/Nature Renderer.cginc"
#endif

다수의 렌더러를 지원해야 한다면 잊지 말고 NATURE_RENDERER를 셰이더 기능으로 추가해야 Nature Renderer용 셰이더 배리언트와 다른 용도의 셰이더 배리언트, 두 가지가 생성됩니다.

#pragma multi_compile_local _ NATURE_RENDERER

 

도움이 되었습니까?
10명 중 5명이 도움이 되었다고 했습니다.