Lumino
ln::Shader Class Reference

シェーダーを表すクラスです。 More...

#include <Shader.hpp>

Inheritance diagram for ln::Shader:
ln::AssetObject ln::IGraphicsResource

Public Member Functions

ShaderParameter2 * findParameter (const StringRef &name) const
 名前を指定してこの Shader に含まれる ShaderParameter を検索します。 More...
 
ShaderTechniquefindTechnique (const StringRef &name) const
 名前を指定してこの Shader に含まれる ShaderTechnique を検索します。 More...
 
Ref< ReadOnlyList< Ref< ShaderTechnique > > > techniques () const
 この Shader に含まれる ShaderTechnique を取得します。
 
void setFloat (const StringRef &parameterName, float value)
 浮動小数点値を設定します。
 
void setVector (const StringRef &parameterName, const Vector3 &value)
 ベクトル値を設定します。
 
void setVector (const StringRef &parameterName, const Vector4 &value)
 ベクトル値を設定します。
 
void setTexture (const StringRef &parameterName, Texture *value)
 setTexture
 
Ref< detail::ShaderSecondaryDescriptor > acquireDescriptor ()
 この Shader の DescriptorLayout をもとに、ShaderDescriptor を作成します。
 

Static Public Member Functions

static Ref< Shadercreate (const StringRef &filePath, ShaderCompilationProperties *properties=nullptr)
 事前コンパイル済みシェーダファイルまたはシェーダプログラムファイルから Shader オブジェクトを作成します。 More...
 
static Ref< Shaderload (const StringRef &filePath, AssetImportSettings *settings=nullptr)
 load
 
static Ref< Shadercreate (const StringRef &vertexShaderFilePath, const StringRef &pixelShaderFilePath, ShaderCompilationProperties *properties=nullptr)
 Lumino の独自拡張 (technique 構文など) を使用しない HLSL シェーダをコンパイルし、Shader オブジェクトを作成します。 More...
 

Detailed Description

シェーダーを表すクラスです。

このクラスは DirectX9 ~ 11 世代に提供されていた「エフェクト」と同様の、シェーダーステージをまとめて管理・適用する機能を持っています。

Note
パラメータは通常 Material 経由で設定するが、Shader に直接設定することも可能。 その場合 Material 側で持つデータ量や転送のオーバーヘッドは少なくなるが、以下の点に注意すること。
  • 値をシリアライズすることはできなくなる。
  • 複数の Material から参照される場合、値は共有される。

Member Function Documentation

◆ create() [1/2]

static Ref<Shader> ln::Shader::create ( const StringRef filePath,
ShaderCompilationProperties *  properties = nullptr 
)
static

事前コンパイル済みシェーダファイルまたはシェーダプログラムファイルから Shader オブジェクトを作成します。

Parameters
[in]filePath: 入力ファイル名

シェーダプログラムファイル の読み込み機能はデバッグを目的として用意されています。

シェーダプログラムファイルを読み込むことができるのは、デスクトップターゲットのみです。 モバイルターゲット、Web ターゲットでは事前コンパイル済みシェーダファイルのみを読み込むことができます。

◆ create() [2/2]

static Ref<Shader> ln::Shader::create ( const StringRef vertexShaderFilePath,
const StringRef pixelShaderFilePath,
ShaderCompilationProperties *  properties = nullptr 
)
static

Lumino の独自拡張 (technique 構文など) を使用しない HLSL シェーダをコンパイルし、Shader オブジェクトを作成します。

作成された Shader は、1 つの ShaderTechnique と 1 つの ShaderPass を持ちます。

◆ findParameter()

ShaderParameter2* ln::Shader::findParameter ( const StringRef name) const

名前を指定してこの Shader に含まれる ShaderParameter を検索します。

Parameters
[in]name: パラメータの名前
Returns
一致した ShaderParameter。見つからない場合は nullptr。
Attention
現在、SamplerState の設定は未サポートです。将来的には、この関数で SamplerState 型のパラメータを検索できるようにする予定です。

◆ findTechnique()

ShaderTechnique* ln::Shader::findTechnique ( const StringRef name) const

名前を指定してこの Shader に含まれる ShaderTechnique を検索します。

Parameters
[in]name: 定数バッファの名前
Returns
一致した ShaderConstantBuffer。見つからない場合は nullptr。

The documentation for this class was generated from the following file: