トップページ > 過去ログ > 記事閲覧
マルチテクスチャブレンディング
名前:white 日時: 2009/11/21 01:35

・壁につけられていく弾痕。 ・ダメージ表現(傷を受けた部分に徐々に広がる血の染み等)。 ・擬似的な光や影(ライトマップ)表現。 …のような表現をテクスチャで行うために、 MV1LoadModel()で読みこんだひとつのポリゴンモデルに対して、 LoadGraph()等で読み込んだ複数のテクスチャを、 プログラム上から動的にブレンド・貼り付けて表示したいの ですが…方法が分からず詰まってしまいました。 リファレンスを読んだところ、テクスチャが設定されている 3Dオブジェクトに対してテクスチャ全体を変更することは、 MV1SetTextureGraphHandle()関数を使用することで出来たのですが、 ひとつのオブジェクトに対して、追加で複数のテクスチャを透明度や UV値を指定してブレンドして重ね合わせる方法が分かりません。 ※DirextXのテクスチャステージ設定で行うSetTextureStageState メソッド(?)のようなもの?。 テクスチャにレンダリングしていく方法だと、使用領域を細かく UV設定しているモデルの場合だとうまく行きません。 面倒な話を何度も書いて恐縮ですが、Dxlibを使用したプログラム上で マルチテクスチャを扱うにはどのような方法で行えばよいのでしょうか。 よろしくお願いいたします。

Page: 1 |

Re: マルチテクスチャブレンディング ( No.1 )
名前:Cage 日時:2009/11/21 02:15

憶測で書きますが、あらかじめモデルに設定してあるテクスチャをLoadGraphで読み込んで、 それに加算する形で弾痕等を表現し、モデルにそのテクスチャを割り当てるような方法では不可能でしょうか?
Re: マルチテクスチャブレンディング ( No.2 )
名前:white 日時:2009/11/21 03:52

Cageさん、レスありがとうございます。 教えていただいた方法も試しているのですが、 1つのUVで1つのテクスチャを扱っている場合に、別のテクスチャを 上から加算してしまうと、1枚目のUV設定の影響を受けない流血や 弾痕、影とかができなくなってしまうように思えます。 たとえば2Dのマップチップやタイルのように、512x512の1枚の 大きなテクスチャがあって、そこから64x64のサイズ等で各部分 を使用してUV設定している状態(壁のタイルなど)で その上から別のテクスチャを加算すると、加算後のテクスチャも 同じUV設定で分割されてしまうようです。 それを避けると弾痕や流血や影も64x64サイズ内に収めて加算 しないといけず、貼り付け結果も不自然になってしまいます…。 細かい事を言って申し訳ありません(^^;) 一方UV座標を複数持っていると、 ・Aのテクスチャは、マップチップ状に貼り付け…。 ・Bのテクスチャは、別のUV値を使って上から貼りつけ…。 という事が可能になるので、色々便利に思えます。 あまり難しいことは分からないので間違っているかもしれませんが DxLibのソースを拝見すると、mv1形式もDirectx9の仕様に沿って 8個までUV座標を保持しているようなので、同じ感じでマルチ テクスチャブレンドできればいいな…とちょっと期待しています。
Re: マルチテクスチャブレンディング ( No.3 )
名前:Cage 日時:2009/11/21 20:37

なるほど! それができるようになると、自分の作っているゲームにも活かせそうです。 おもしろそう。
Re: マルチテクスチャブレンディング ( No.4 )
名前:管理人 日時:2009/11/22 13:51

うーんどうしましょう・・・ マルチテクスチャブレンディングや複数のUV値を持つ機能は現在ありませんが 提示していただいた ・壁につけられていく弾痕。 ・ダメージ表現(傷を受けた部分に徐々に広がる血の染み等)。 ・擬似的な光や影(ライトマップ)表現。 こちらの3つの表現は本日アップした「3Dアクション基本」という サンプルプログラムでの影の表現に使用している方法の応用で 実現できると思いますので、よろしければご覧になってみてください m(_ _;m < サンプルプログラム 3Dアクション基本 > http://homepage2.nifty.com/natupaji/DxLib/program/dxprogram_3DAction.html 一度モデルを描画した後、同じ座標からちょっと浮いた座標に影を描画するというものです・・・
Re: マルチテクスチャブレンディング ( No.5 )
名前:white 日時:2009/11/22 17:27

管理人様、ありがとうございます。 サンプルプログラム拝見させていただきました! 教えていただいた方法で、湾曲のある地形などでも弾痕や 擬似的な影表現ができそうです。 当たり判定にこういう使い方があるとは想像出来ませんでしたが アニメーション関連など、他の部分でも知らない事があったので 勉強になります。 しかしながら、これだけの量のサンプルを作られていたとは 本当に頭が下がりますが、もう一方の掲示板で拝見したところ 首の状態がお悪いとは…。 そんなことは露知らず気軽に書いてしまい申し訳ありませんでした。 私も首を痛めて一時通院していましたので、首の痛みの大変さについては お察しいたします。モニターを見ていると負担がかかりますし…。 複数のUV値に関しては、将来的に機会がある時に対応いただけると 有り難いですが、管理人さんご自身の生活が一番大事ですしDXlibに関する 優先順位から考えても、この件でお時間を取らせるわけには参りません。 教えていただいた方法を応用して、モデルデータを作る時にもUVをきちんと 考えて作ることで対処致します。 どうかご自愛下さい。

Page: 1 |