シェーダーを操作するWork with shaders

Visual Studio のグラフ ベースのシェーダー デザイナーを利用し、自分だけのシェーダー効果をデザインできます。You can use the graph-based Shader Designer in Visual 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

シェーダー デザイナーは Directed Graph Shader Language (DGSL) 形式でシェーダーを保存します。これは、Directed Graph Markup Language (DGML) を基盤とする 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). モデル エディターで、3D モデルに DGSL シェーダーを直接適用できます。You can apply DGSL shaders directly to 3D models in the Model Editor. ただし、アプリで DGSL シェーダーを使用するには、DirectX が認識できる形式にシェーダーをエクスポートする必要があります。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 の詳細については、「Directed Graph Markup Language (DGML) について」を参照してください。For information about DGML, see Understanding Directed Graph Markup Language (DGML).

TitleTitle 説明Description
シェーダー デザイナーShader Designer Visual Studio シェーダー デザイナーを使用してシェーダーを操作する方法について説明します。Describes how to use the Visual 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.