DXライブラリにはキューブマップを使用する方法が無かったので追加しました
よろしければこちらをダウンロードしてください
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
追加した機能は以下の通りです
・キューブマップの dds ファイルの読み込みに対応
LoadGraph で読み込みます
・描画対象にできるキューブマップの画像を作成するための関数 SetCubeMapTextureCreateFlag を追加
具体的にはこのように使います
SetCubeMapTextureCreateFlag( TRUE ) ;
dynamicCubeTex = MakeScreen( 512, 512, TRUE ) ;
SetCubeMapTextureCreateFlag( FALSE ) ;
尚、タテヨコのサイズは同じである必要があります
・描画対象にできるキューブマップの画像の、どの面を描画対象にするかを指定するための引数 SurfaceIndex を
関数 SetRenderTargetToShader に追加
SetDrawScreen には引数を追加しなかったので、キューブマップ画像に対して描画する場合は
SetRenderTargetToShader を使用します( 第3引数です )
// キューブマップのY+面を描画対象にする
SetRenderTargetToShader( 0, dynamicCubeTex, DX_CUBEMAP_FACE_POSITIVE_Y ) ;
各面と番号の対応は以下の通りです( Direct3D9 の定義と同じです )
#define DX_CUBEMAP_FACE_POSITIVE_X (0) // +X面
#define DX_CUBEMAP_FACE_NEGATIVE_X (1) // -X面
#define DX_CUBEMAP_FACE_POSITIVE_Y (2) // +Y面
#define DX_CUBEMAP_FACE_NEGATIVE_Y (3) // -Y面
#define DX_CUBEMAP_FACE_POSITIVE_Z (4) // +Z面
#define DX_CUBEMAP_FACE_NEGATIVE_Z (5) // -Z面
追加した機能は以上の3点です
後は SetUseTextureToShader でキューブマップのテクスチャを設定して、
シェーダー側で samplerCUBE などを使用して参照します
主に「○×つくろーどっとコム」様の「ゲームつくろー!」のコーナーの
「プログラマブルシェーダ編」にあります
「その13 静的・動的キューブマップテクスチャの作り方」
http://marupeke296.com/DXPS_PS_No13_CreateCubemapTexture.html
のページからダウンロードできるサンプルプログラムと同じ処理を行えるように機能を整備しました
その際に作成した『サンプルプログラムとほぼ同じ挙動をするプログラム』をこちらにアップしましたので、
よろしければご覧になってみてください m(_ _)m
https://dxlib.xsrv.jp/temp/CubeMapTest.zip