다음과 같이 플랫폼마다 서로 다른 셰이더 컴파일러를 셰이더 프로그램 컴파일에 사용합니다.
사전 정의된 셰이더 매크로를 사용하여 Unity가 사용 중인 컴파일러를 식별할 수 있습니다. 하나의 컴파일러가 지원하는 HLSL 구문을 사용하는 경우 사전 정의된 셰이더 매크로를 사용하거나 컴파일러 버그를 해결할 수 있습니다.
You can configure various shader compiler settings using [SL-Programs](compilation directives).
셰이더 컴파일에는 여러 단계가 포함되어 있습니다. 첫 번째 단계 중 하나는 셰이더 소스를 전처리하는 작업입니다. 기본적으로 Unity는 플랫폼 컴파일러의 프리 프로세서를 사용하여 이 단계를 수행합니다. 하지만 이를 오버라이드하고 Unity의 캐싱 셰이더 프리 프로세서를 사용하여 전처리를 수행하도록 선택할 수도 있습니다. 캐싱 셰이더 프리 프로세서는 플랫폼 컴파일러에서 사용하는 기본 프리 프로세서보다 최대 25% 더 빠릅니다.
캐싱 셰이더 프리 프로세서는 셰이더 임포트 및 컴파일 시간을 단축하기 위해 중간 전처리 데이터를 캐싱합니다. 에디터는 이 캐싱 데이터를 재사용하므로, 콘텐츠가 변경될 경우에만 포함 파일을 파싱하면 됩니다. 따라서 동일한 셰이더의 여러 배리언트를 더욱 효율적으로 컴파일할 수 있습니다. 캐싱 셰이더 프리 프로세서를 활성화하면 프로젝트 내 셰이더가 매우 많은 공통 포함 파일을 사용할 때 가장 큰 효과를 얻을 수 있습니다.
캐싱 셰이더 프리 프로세서는 아직 실험 기능이며, 현재 개발 중에 있습니다. Unity 포럼에서 이 실험 기능에 대한 피드백을 제공할 수 있습니다.
에디터 설정 창의 Shader Compilation 섹션에서 Caching Shader Preprocessor (Experimental) 체크박스를 사용하여 캐싱 셰이더 프리 프로세서를 활성화하거나 비활성화할 수 있습니다. 또한 C# 스크립트에서 EditorSettings.cachingShaderPreprocessor API를 사용하여 이 기능을 활성화하거나 비활성화할 수도 있습니다.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.