トップページ > 記事閲覧
シェーダーでキューブ(環境)マップを使いたいのですが
名前:CYARACON 日時: 2013/06/24 23:28

シェーダーでキューブ(環境)マップを使いたいのですが お世話になっております。 現在、DXライブラリィのシェーダー関連関数を使用して、オリジナルシェーダーの制作を試行錯誤しております。 下記のサイトで「キューブ(環境)マップ」の解説があり、 同様の機能をDXライブラリィを経由してオリジナルシェーダーで実現したいのですが、 ttp://marupeke296.com/DXPS_PS_No6_EnvMap.html 1.DSSフォーマットのキューブ(環境)マップの読み込み 2.カメラのワールド位置を、パラメーターとして頂点シェーダーに渡す 3.reflect関数 を使用する などは、DXライブラリィで可能でしょうか? 自力でDXライブラリィの各関数の仕様を調べた限りでは、実現方法を見つけられず、 助言をいただけると助かります。 ※ 2.については、float4型定数の 43〜87 が「ライブラリでは未使用」という仕様になっているので   これを利用しようかとも考えています。
メンテ

Page: 1 |

Re: シェーダーでキューブ(環境)マップを使いたいのですが ( No.1 )
名前:管理人 日時:2013/06/30 18:53

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
メンテ
Re: シェーダーでキューブ(環境)マップを使いたいのですが ( No.2 )
名前:CYARACON (解決済み) 日時:2013/07/03 01:30

>管理人様。 新規に機能追加していただいたのですか! もうなんと言えばいいのか、お手数をお掛けしてもうしわけありません。 是非いろいろ実験して実装してみたいと思います。 本当にありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存