방법: 셰이더 내보내기How to: Export a Shader

이 문서에서는 앱에서 사용할 수 있도록 셰이더 디자이너를 사용하여 DGSL(Directed Graph Shader Language) 셰이더를 내보내는 방법을 보여 줍니다.This document demonstrates how to use the Shader Designer to export a Directed Graph Shader Language (DGSL) shader so that you can use it in your app.

이 문서는 다음 활동을 보여 줍니다.This document demonstrates this activity:

  • 셰이더 내보내기Exporting a shader

셰이더 내보내기Exporting a shader

셰이더 디자이너를 사용하여 셰이더를 만든 후, 앱에서 사용하기 전에 그래픽 API가 이해하는 형식으로 셰이더를 내보내야 합니다.After you create a shader by using the Shader Designer and before you can use it in your app, you have to export it in a format that your graphics API understands. 요구 사항에 따라 다양한 방법으로 셰이더를 내보낼 수 있습니다.You can export a shader in different ways to meet different needs.

셰이더를 내보내려면To export a shader

  1. Visual StudioVisual Studio에서 시각적 셰이더 그래프(.dgsl) 파일을 엽니다.In Visual StudioVisual Studio, open a Visual Shader Graph (.dgsl) file.

    열 수 있는 시각적 셰이더 그래프(.dgsl) 파일이 없으면 방법: 기본 색 셰이더 만들기에 설명된 대로 파일을 만듭니다.If you don't have a Visual Shader Graph (.dgsl) file to open, create one as described in How to: Create a Basic Color Shader.

  2. 셰이더 디자이너 도구 모음에서 고급, 내보내기, 다른 이름으로 내보내기를 선택합니다.On the Shader Designer toolbar, choose Advanced, Export, Export As. 셰이더 내보내기 대화 상자가 표시됩니다.The Export Shader dialog box is displayed.

  3. 파일 형식 드롭다운 목록에서 내보내려는 형식을 선택합니다.In the Save as type drop-down list, choose the format that you want to export.

    선택할 수 있는 형식은 다음과 같습니다.Here are the formats that you can choose:

    HLSL 픽셀 셰이더(*.hlsl)HLSL Pixel Shader (*.hlsl)
    셰이더를 HLSL(High Level Shader Language) 소스 코드로 내보냅니다.Exports the shader as High Level Shader Language (HLSL) source code. 이 옵션을 사용하면 앱에 배포된 후더라도 나중에 셰이더를 수정할 수 있습니다.This option makes it possible to modify the shader later, even after it's deployed in an app. 이렇게 하면 최종 사용자 문제에 따라 코드를 더 쉽게 디버그 및 패치할 수 있지만, 예를 들어 사용자가 경쟁 게임에서 부당한 이득을 얻기 위해 바람직하지 않은 방법으로 셰이더를 수정하기도 더 쉽습니다.This can make it easier to debug and patch the code based on end-user problems, but it also makes it easier for a user to modify your shader in unwanted ways—for example, to gain an unfair advantage in a competitive game. 셰이더의 로드 시간이 늘어날 수도 있습니다.It also might increase the load time of the shader.

    컴파일된 픽셀 셰이더(*.cso)Compiled Pixel Shader (*.cso)
    셰이더를 HLSL 바이트 코드로 내보냅니다.Exports the shader as HLSL bytecode. 이 옵션을 사용하면 앱에 배포된 후더라도 나중에 셰이더를 수정할 수 있습니다.This option makes is possible to modify the shader later, even after it's deployed in an app. 이렇게 하면 최종 사용자 문제에 따라 코드를 더 쉽게 디버그 및 패치할 수 있지만, 셰이더가 미리 컴파일되므로 앱이 셰이더를 로드할 때 추가적인 런타임 오버헤드가 발생하지 않습니다.This can make it easier to debug and patch the code based on end-user problems, but because the shader is pre-compiled, it does not incur extra runtime overhead when the shader is loaded by the app. 그래도 충분히 숙련된 사용자가 바람직하지 않은 방법으로 셰이더를 수정할 수 있지만 셰이더를 컴파일하면 이런 수정이 훨씬 더 어려워집니다.Sufficiently skilled users can still modify the shader in unwanted ways, but compiling the shader makes this significantly more difficult.

    C++ 헤더(*.h)C++ Header (*.h)
    HLSL 바이트 코드가 포함된 바이트 배열을 정의하는 C 스타일 헤더로 셰이더를 내보냅니다.Exports the shader as a C-style header that defines a byte array that contains HLSL bytecode. 이 옵션을 사용하면 수정 사항을 테스트하기 위해 앱을 다시 컴파일해야 하므로 최종 사용자 문제에 따라 코드를 디버그 및 패치하는 데 더 많은 시간이 사용될 수 있습니다.This option can make it more time-consuming to debug and patch the code based on end-user problems because the app must be recompiled to test the fix. 그러나 이 옵션을 사용하면 앱에 배포된 후 셰이더를 수정하기가 어려울 수 있지만 바람직하지 않은 방법으로 셰이더를 수정하려는 사용자가 가장 힘들 것입니다.However, because this option makes it difficult, though not impossible, to modify the shader after it's deployed in an app, it presents the most difficulty to a user who wants to modify the shader in unwanted ways.

  4. 파일 이름 콤보 상자에서 내보낸 셰이더의 이름을 지정하고 저장 단추를 선택합니다.In the File name combo box, specify a name for the exported shader, and then choose the Save button.

참고 항목See Also

방법: 기본 색 셰이더 만들기 How to: Create a Basic Color Shader
셰이더 디자이너Shader Designer