gpusermat

カスタムマテリアルの生成

gpusermat var,"vsh","fsh","defs",color,opt

var       : 生成されたマテリアルIDが代入される変数名
"vsh"     : バーテックスシェーダーファイル名
"fsh"     : フラグメントシェーダーファイル名
"defs"    : 追加のラベル定義
color(-1) : マテリアルカラー(24bitRGB値)
opt(0)    : マテリアルオプション値

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

解説

カスタムマテリアルを生成します。
カスタムマテリアルは、バーテックスシェーダー及びフラグメントシェーダーを指定した独自の描画を行ないます。
OpenGLのシェーダー言語(GLSL)で記述されたシェーダーファイル名を、"vsh"、"fsh"パラメーターに指定します。
"defs"パラメーターには、シェーダーコンパイル時に追加されるラベル定義を記述します。
colorパラメーターでデフォルトのカラーを設定することができます。省略した場合は、白色(0xffffff)が設定されます。
"vsh","fsh","defs"のパラメーターを省略した場合は、gpusershaderで設定された内容が設定されます。
optパラメーターにより、マテリアルの設定を変更することができます。
これらの設定は、gpmatstate命令で別途設定することも可能です。

        マクロ名                内容
    -------------------------------------------------------------------
	GPOBJ_MATOPT_NOLIGHT    ライティングを行なわない
	GPOBJ_MATOPT_NOMIPMAP   MIPMAPを生成しない
	GPOBJ_MATOPT_NOCULL     カリングを無効にする
	GPOBJ_MATOPT_NOZTEST    Zテストを無効にする
	GPOBJ_MATOPT_NOZWRITE   Zバッファ書き込みを無効にする
	GPOBJ_MATOPT_BLENDADD   プレンドモードを加算に設定する
	GPOBJ_MATOPT_SPECULAR   光源計算時にスペキュラーを適用します
	GPOBJ_MATOPT_MIRROR     反転した画像として表示する
	GPOBJ_MATOPT_CUBEMAP    キューブマップとして設定する
	GPOBJ_MATOPT_NODISCARD  αチャンネルによるピクセル破棄を無効にする

正常にマテリアルが生成できなかった場合は、エラー3(パラメータの値が異常です)が発生します。
正しく生成された場合は、varで指定された変数にマテリアルID(整数値)が代入されます。

カスタムマテリアルにより、任意のシェーダーを使って描画のすべてをコントロールすることができるようになります。
これは、シェーダーについての知識がある上級者向けの拡張機能ですので、通常は使用する必要はありません。
カスタムマテリアルを生成した場合は、gpmatprm命令によってシェーダーパラメーターに渡すための値を設定することができます。

関連項目

gpmatprmマテリアルのパラメーター設定(hgimg4)
gpcolormatカラーマテリアルの生成(hgimg4)
gptexmatテクスチャマテリアルの生成(hgimg4)
gpusershaderユーザーシェーダーの指定(hgimg4)
gpscrmatオフスクリーンテクスチャマテリアルの生成(hgimg4)

サンプル逆引き (3)

customshader.hsp
pronama3.hsp
pronama_box.hsp

情報

プラグイン / モジュールhgimg4
バージョン3.6
作成日2021/01/06
著作者onitama
URLhttp://www.onionsoft.net/
備考hgimg4.asまたはhgimg4dx.asをインクルードすること。
タイプ拡張命令
グループ拡張画面制御命令
対応環境
  • Windows 版 HSP
移植のヒントWindows+OpenGL3.1以降/DirectX9システム上で動作します。
hs ファイルhsphelp\hgimg4.hs