MakeShadowMap

シャドウマップを作成する

val = MakeShadowMap(SizeX, SizeY)

SizeX , SizeY : 作成するシャドウマップのサイズ( 2のn乗である必要があります )

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

解説

シャドウマップは3Dモデルの描画で影を表現する為のもので、この関数にシャドウマップの横解像度 SizeX、縦解像度 SizeY を引数として渡して作成します。

DXライブラリでシャドウマップを使用した影の表現する手順は以下のようになります。

<最初に行うこと>

1.MakeShadowMap を使用してシャドウマップを作成

<シャドウマップの準備>

2.SetShadowMapLightDirection を使用してシャドウマップへの描画で想定するライトの向きを設定

3.SetShadowMapDrawArea を使用してシャドウマップに描画する3D空間の範囲を設定

4.ShadowMap_DrawSetup を使用してシャドウマップへの描画の準備

5.シャドウマップへ描画したい全ての3Dモデルを MV1DrawModel で描画

6.ShadowMap_DrawEnd を使用してシャドウマップへの描画を終了

<シャドウマップによる影の表現を伴う3Dモデル描画>

7.SetUseShadowMap を使用して使用するシャドウマップを設定

8.シャドウマップによる影の表現を伴う描画を行いたい全ての3Dモデルを MV1DrawModel で描画

9.SetUseShadowMap のシャドウマップハンドルを指定する引数( 第二引数 )に -1 を渡して呼び出し、

使用するシャドウマップの設定を解除

<最後に行うこと>

10.必要が無くなったシャドウマップを DeleteShadowMap を使用して削除

尚、引数のコメントにもありますが SizeX、SizeY は2のn乗の数値( 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 ... )である必要があります。

SizeX, SizeY で指定するサイズが大きければ大きいほど描画される影の粗さが軽減されますが、その分描画負荷や使用するVRAMのサイズも大きくなりますので注意してください。

また、シャドウマップの機能はグラフィックスデバイスがシェーダーモデル2.0以降に対応している必要があり、
且つそれなりに処理負荷が高いので古いPCでも動作するソフトを作成する場合はシャドウマップの機能を使用しないか、
オプション等でシャドウマップの機能を使用するかどうかを選択できるようにする必要があります。
※ 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