トップページ > 記事閲覧
動画再生とモデルへの貼り付けについて
名前:E_Nock 日時: 2025/12/15 17:56

恐れ入ります。いつもお世話になっております。 現在モデルに動画ファイルを貼り付けたいと思っておりまして、MakeScreenで作った画像ハンドルに対し、 動画再生をしているハンドルをDrawGraph等の関数で描画してから貼り付けております。 ただ、大きい動画や複数の動画を扱う際、MakeScreenを多用するとVRAMを圧迫してしまうので、なるだけ避けたいところです。 renderDocというソフトを使用して、内部的に動画再生の仕組みを観察してみたのですが、 更新が終わった動画をDxLib側でもテクスチャに吐き出しているようでした。 もしできればでよいのですが、吐き出し用テクスチャのハンドルそのもの、 あるいは通常のグラフィックハンドルのようにDirectXのリソース(ID3D11Texture2DやSRV、RTV)を取得する関数を用意していただけませんでしょうか? お忙しいところ恐縮ですが、よろしくお願いいたします。
メンテ

Page: 1 |

Re: 動画再生とモデルへの貼り付けについて ( No.1 )
名前:管理人 日時:2025/12/16 22:41

動画再生をしているハンドルを MakeScreenで作った画像ハンドルに対して描画しているとのことですが、 動画再生をしているハンドルをそのまま使用するのでは何か実現できない処理を行っているのでしょうか? (・・; > 更新が終わった動画をDxLib側でもテクスチャに吐き出しているようでした。 はい、通常のグラフィックハンドルが内部ではテクスチャであるのと同様に、動画再生をしている グラフィックハンドルも内部ではテクスチャです なので、通常のグラフィックハンドルと同様に GetGraphID3D11Texture2D で ID3D11Texture2D を取得することができます
メンテ
Re: 動画再生とモデルへの貼り付けについて ( No.2 )
名前:E_Nock 日時:2025/12/18 01:59

ご返信ありがとうございます。 > 動画再生をしているハンドルをそのまま使用するのでは何か実現できない処理を行っているのでしょうか? (・・; こちらについてですが、テクスチャなどのリソース管理全般をDirectX11の構造体も使用して行っています。 理由としては、Differd Rendering等の技術に特殊なテクスチャフォーマット(DXGI_FORMAT_R11G11B10_FLOAT等)を使用しつつ、 完全にDirectX11そのもので実装するよりもコストを下げるためです。 当方学生なものでして、1からDirectX11を学習しなおすとなると就活間に合わないため、少々強引に一部機能のみD3D11実装にさせていただいております。 ですので、モデル描画やテクスチャ描画のシェーダーに転送するフェーズではどうしてもハンドルではなくSRVを使用する形になりまして... > グラフィックハンドルも内部ではテクスチャです > > なので、通常のグラフィックハンドルと同様に GetGraphID3D11Texture2D で ID3D11Texture2D を取得することができます 見たところ、動画のハンドルをGetGraphID3D11Texture2Dに渡しても、nullptrが返ってきます。 念のため、再生後にも同じように呼んでみましたが、相変わらず帰ってくるポインタはnullでした。 ハンドル自体は有効かつ、再生も問題なくできております。 使用しているDxLibのバージョンはまだリリース前の3.25(以前モデルのメタリックテクスチャ等のPBR対応をお願いした際に頂きました)です。
メンテ
Re: 動画再生とモデルへの貼り付けについて ( No.3 )
名前:管理人 日時:2025/12/19 00:41

うーむ謎ですね… 手元の環境で mp4ファイルや mpgファイルを LoadGraph して取得したグラフィックハンドルに対して GetGraphID3D11Texture2D を行ったところ、問題なく ID3D11Texture2D のアドレスが返ってきました int GrHandle = LoadGraph( "test.mp4" ); const void *pTexture2D = GetGraphID3D11Texture2D( GrHandle ); 再生している動画のフォーマットは何でしょうか?
メンテ
Re: 動画再生とモデルへの貼り付けについて ( No.4 )
名前:E_Nock 日時:2025/12/19 09:43

すみません、今手元に環境がないので今日中にはなるかと思いますが、1つの試させてください。 実はテクスチャも動画も同じように非同期ロードを行っていて、ひょっとしたらそこら辺で何か起こっているのかもしれないです…… > 再生している動画のフォーマットは何でしょうか? 形式はmp4で、数秒程度の長さです。 再現性の確認が取れ次第、こちらにもう一度報告させていただきます。m(*_ _)m
メンテ
Re: 動画再生とモデルへの貼り付けについて ( No.5 )
名前:E_Nock(解決済み) 日時:2025/12/19 12:42

大変失礼いたしました。今回の件ですが、原因が判明致しました。 テクスチャを管理するマネージャーで、LoadGraphではなくMV1LoadTextureを呼んでしまっておりました。 おそらく、私がモデル・テクスチャ描画をDirectX11仕様に変える前の名残りです。 MV1LoadTextureをLoadGraphに変えたところ、無事描画ができました。 ご迷惑をおかけして申し訳ございません。<(_ _)>
メンテ

Page: 1 |

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

   クッキー保存