셰이더 작업Working with Shaders

Visual StudioVisual Studio의 그래프 기반 셰이더 디자이너를 사용하여 사용자 지정 셰이더 효과를 디자인할 수 있습니다.You can use the graph-based Shader Designer in Visual StudioVisual Studio to design custom shader effects. DirectX 기반 게임 또는 앱에서 이 셰이더를 사용할 수 있습니다.You can use these shaders in your DirectX-based game or app.

셰이더Shaders

셰이더는 그래픽 계산(예: 꼭짓점 변환 또는 픽셀 색 지정)을 수행하는 컴퓨터 프로그램으로, 일반적으로 CPU 대신 GPU(그래픽 처리 장치)에서 실행됩니다.A shader is a computer program that performs graphics calculations—for example, vertex transformations or pixel coloring—and typically runs on a graphics processing unit (GPU) instead of the CPU. 기존의 고정 함수 그래픽 파이프라인의 단계 대부분이 이제 셰이더 프로그램에서 수행되므로 이를 사용하여 앱의 요구 사항에 맞는 파이프라인을 만들 수 있습니다.Because most stages of the traditional, fixed-function graphics pipeline are now performed by shader programs, you can use them to create a pipeline that's specific to the needs of your app.

가장 일반적인 종류의 셰이더는 꼭짓점 셰이더픽셀 셰이더입니다. 전자는 꼭짓점별 계산을 수행하고 프로그래밍할 수 없는 그래픽 하드웨어에서 고정 함수 변환 및 조명 회로를 대체하며, 후자는 픽셀의 색을 결정하는 픽셀별 계산을 수행하고 프로그래밍할 수 없는 그래픽 하드웨어에서 고정 함수 색 결합 회로를 대체합니다.The most common kinds of shaders are vertex shaders, which perform per-vertex calculations and replace the fixed-function transformation and lighting circuitry in non-programmable graphics hardware, and pixel shaders, which perform per-pixel calculations that determine the color of a pixel and replace the fixed-function color-combiner circuitry in non-programmable graphics hardware. 최신 그래픽 하드웨어는 더 많은 종류의 셰이더, 즉 그래픽 계산용 헐 셰이더, 도메인 셰이더, 기하 도형 셰이더 및 비그래픽 계산용 계산 셰이더를 만들 수 있습니다.Modern graphics hardware has made even more kinds of shaders possible—hull shaders, domain shaders, and geometry shaders for graphics calculations, and compute shaders for non-graphics computations. 이러한 단계들 중 어느 것도 프로그래밍할 수 없는 그래픽 하드웨어에서 사용할 수 없습니다.None of these stages are even available in non-programmable graphics hardware. 셰이더는 원래 데이터 병렬(SIMD) 및 그래픽 중심(내적) 명령을 제공하는 어셈블리와 비슷한 언어를 사용하여 만들어졌습니다.Shaders were originally created by using an assembly-like language that provided data-parallel (SIMD) and graphics-centric (dot product) instructions. 이제 셰이더는 일반적으로 HLSL(High Level Shader Language)과 같은 C 유사 고급 언어를 사용하여 만듭니다.Now, shaders are typically created by using high-level, C-like languages like HLSL (High Level Shader Language).

셰이더 디자이너를 사용하여 코드를 입력하고 컴파일하는 대신 대화형으로 픽셀 셰이더를 만들 수 있습니다.You can use the Shader Designer to create pixel shaders interactively instead of by entering and compiling code. 셰이더 디자이너에서 셰이더는 데이터와 작업을 나타내는 많은 노드 및 셰이더를 통한 데이터 값과 중간 결과의 흐름을 나타내는 노드 간의 연결로 정의됩니다.In the Shader Designer, a shader is defined by a number of nodes that represent data and operations, and connections between nodes that represent the flow of data values and intermediate results through the shader. 셰이더 디자이너에서 이러한 방법과 실시간 미리 보기를 사용하여 셰이더 실행을 더 쉽게 시각화하고 실험을 통해 흥미로운 셰이더 변형을 "검색"할 수 있습니다.By using this approach and the real-time preview in the Shader Designer, you can visualize the execution of the shader more easily, and "discover" interesting shader variations through experimentation.

DGSL 문서DGSL documents

셰이더 디자이너는 셰이더를 DGSL(Directed Graph Shader Language) 형식으로 저장합니다. 이 형식은 DGML(Directed Graph Markup Language)을 기반으로 하는 XML 형식입니다.The Shader Designer saves shaders in the Directed Graph Shader Language (DGSL) format, which is an XML format that's based on Directed Graph Markup Language (DGML). 모델 편집기에서는 3차원 모델에 DGSL 셰이더를 직접 적용할 수 있습니다.You can apply DGSL shaders directly to 3-D models in the Model Editor. 그러나 앱에서 DGSL 셰이더를 사용하려면 먼저 DirectX에서 이해할 수 있는 형식(예: HLSL)으로 내보내야 합니다.However, before you can use a DGSL shader in your app, you must export it to a format that DirectX understands—for example, HLSL.

DGSL은 DGML과 호환되므로 DGML 문서를 분석하여 DGSL 셰이더를 분석하도록 설계된 도구를 사용할 수 있습니다.Because DGSL is compatible with DGML, you can use tools that are designed to analyze DGML documents to analyze your DGSL shaders. DGML에 대한 자세한 내용은 DGML(Directed Graph Markup Language) 이해를 참조하세요.For information about DGML, see Understanding Directed Graph Markup Language (DGML).

제목Title 설명Description
셰이더 디자이너Shader Designer Visual StudioVisual Studio 셰이더 디자이너를 사용하여 셰이더 작업을 수행하는 방법을 설명합니다.Describes how to use the Visual StudioVisual Studio Shader Designer to work with shaders.
셰이더 디자이너 노드Shader Designer Nodes 그래픽 효과를 얻기 위해 사용할 수 있는 셰이더 디자이너 노드의 종류를 설명합니다.Discusses the kinds of Shader Designer nodes that you can use to achieve graphics effects.
셰이더 디자이너 예제Shader Designer Examples 셰이더 디자이너를 사용하여 공통 그래픽 효과를 얻는 방법을 보여 주는 항목에 대한 링크를 제공합니다.Provides links to topics that demonstrate how to use the Shader Designer to achieve common graphics effects.