Version: 2018.1
로우레벨 네이티브 플러그인 렌더링 확장 기능
에셋 번들

로우레벨 네이티브 플러그인 셰이더 컴파일러 액세스

Unity 에디터는 로우레벨(low-level) 네이티브 플러그인 인터페이스 외에 셰이더 컴파일러에 대한 로우레벨 액세스도 지원하므로 사용자가 다양한 배리언트를 셰이더에 추가할 수 있습니다. 특정 내장 이벤트가 발생하면 플러그인이 콜백을 받는 이벤트 기반 접근 방식이기도 합니다.

Unity 에디터에서 노출되는 셰이더 컴파일러 액세스 확장 기능 정의는 IUnityShaderCompilerAccess.h에서 찾을 수 있고 에디터와 함께 제공됩니다.

이 확장 기능은 현재 D3D11에서만 지원됩니다. 이후에 더 많은 플랫폼에서 지원될 예정입니다.

셰이더 컴파일러 액세스 확장 기능 API

렌더링 확장 기능을 사용하기 위해서는 플러그인이 UnityShaderCompilerExtEvent를 익스포트해야 합니다. 포함 파일에는 여러 문서가 있습니다.

Unity 에디터에서 내장 이벤트 중 하나가 트리거될 때마다 UnityShaderCompilerExtEvent를 통해 플러그인이 호출됩니다. 스크립트에서 CommandBuffer.IssuePluginEventAndData 또는 CommandBuffer.IssuePluginCustomBlit 커맨드를 통해 콜백을 CommandBuffers에 추가할 수도 있습니다.

기본 스크립트 인터페이스 외에, Unity의 네이티브 코드 플러그인은 특정 이벤트가 발생하면 콜백을 받을 수 있습니다. 주로 플러그인에서 로우레벨 렌더링을 구현하고 Unity의 멀티스레드 렌더링과 함께 작동할 수 있도록 하는 데 사용됩니다.

Unity 에디터에서 노출되는 인터페이스를 정의하는 헤더는 에디터와 함께 제공됩니다.

셰이더 컴파일러 액세스 설정 인터페이스

Unity 에디터는 셰이더 컴파일러 액세스를 설정할 수 있는 IUnityShaderCompilerExtPluginConfigure 인터페이스를 제공합니다. 이 인터페이스는 플러그인이 자체 키워드를 예약하고 셰이더 프로그램 및 GPU 프로그램 컴파일러 마스크(플러그인을 어떤 셰이더 또는 GPU 프로그램 타입을 위해 호출할지)를 설정하는 데 사용됩니다.


  • Unity 2017.1의 새로운 기능 NewIn20171

  • 2017–07–04 편집 리뷰 없이 페이지 게시됨

로우레벨 네이티브 플러그인 렌더링 확장 기능
에셋 번들