LoadPixelShader

ピクセルシェーダーバイナリを読み込みシェーダーハンドルを作成する

val = LoadPixelShader(FileName)

FileName : ピクセルシェーダーバイナリファイルのパス

(プラグイン / モジュール : DxLibW)

解説

ピクセルシェーダーのプログラムをコンパイルしてできるバイナリファイルをメモリに読み込み、
それを使用するためのハンドル( int型の値 )を取得します。

コンパイル前のシェーダープログラムを読み込むことはできませんので注意してください。( シェーダープログラムをコンパイルするためのソフトはDXライブラリのパッケージの Tool\ShaderCompiler の中に入っています )

戻り値で得られるシェーダーハンドルは SetUsePixelShader の引数として使用します。

同時に読み込んでおけるシェーダーの数には限りがありますので、必要が無くなったら DeleteShader で削除してください。

DXライブラリ内部で設定するピクセルシェーダー定数について

DXライブラリではフォンシェーディング( ピクセルシェーダーでライティングを行う手法 )の為にマテリアルやライトの設定をライブラリ内部でシェーダー定数として設定しています。

以下がその一覧です。

Direct3D 11 の場合

Direct3D 11 版作成直後で今後変更される可能性があるので、今のところリファレンスでは非公開です。

( 現在でもDXライブラリのソースファイルパッケージの中の Windows\DxShader_PS_D3D11.h と

Shader\Windows\Direct3D11\PixelShader.h で確認することができます )

Direct3D 9 の場合

float4型定数

0     x:0.0f  y:0.5f z:1.0f w:2.0f

1     マテリアルエミッシブカラー + マテリアルアンビエントカラー * グローバルアンビエントカラー
2     マテリアルディフューズカラー
3     マテリアルスペキュラカラー
4     マテリアルスペキュラハイライトのパワー
5     不透明度など

6     トゥーンレンダリングの輪郭線の色

7     トゥーンレンダリングの輪郭線の太さ

8     フォグカラー
9     有効ライト0番目のディフューズカラー

10     有効ライト0番目のスペキュラカラー

11     有効ライト0番目のアンビエントカラー

12~14  有効ライト1番目のパラメータ( 内訳は 9~11 と同じ )

15~17  有効ライト2番目のパラメータ( 内訳は 9~11 と同じ )

18~21  シャドウマップ処理用のパラメータ

22~31  未使用( ピクセルシェーダー2.0で使用可能な float4型定数の数は 32個です )

32     有効ライト0番目の座標( ビュー空間 )

33     有効ライト0番目の法線( ビュー空間 )

34     有効ライト0番目のディフューズカラー
35     有効ライト0番目のスペキュラカラー
36     有効ライト0番目のアンビエントカラーとマテリアルのアンビエントカラーを乗算したもの

37     有効ライト0番目の x:有効距離の二乗 y:Falloff

z:距離減衰パラメータ0 w:距離減衰パラメータ1

38     有効ライト0番目の x:距離減衰パラメータ1

y:スポットライト用パラメータ0( cos( Phi / 2.0f ) )

z:スポットライト用パラメータ1( 1.0f / ( cos( Theta / 2.0f ) - cos( Phi / 2.0f ) ) )

39~45  有効ライト1番目のパラメータ( 内訳は 32~38 と同じ )

46~52  有効ライト2番目のパラメータ( 内訳は 32~38 と同じ )

53~59  有効ライト3番目のパラメータ( 内訳は 32~38 と同じ )

60~223  未使用( ピクセルシェーダー3.0で使用可能な float4型定数の数は 224個です )

int4型定数

0~15    ライブラリでは未使用( ピクセルシェーダー2.0では int4型定数はありません )

BOOL型定数

0~15    ライブラリでは未使用( ピクセルシェーダー2.0では int4型定数はありません )

ライブラリが殆ど使ってしまっていますが、これらの定数は SetPSConstF などの関数で上書き可能で、

オリジナルのシェーダープログラムで使用しない定数については上記ライブラリ定数を無視して使うことが

できますのでご安心ください。

( 例えばオリジナルのマテリアル処理を行う場合は float4型定数 1~4 を上書きして使用しても問題ありません )
※ DxLib のハンドル値は 32bit/64bit 共に int 型です。

戻り値:
  -1    : エラー発生
  -1以外 : シェーダーハンドル

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib その他
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs