DirectXでインデックスバッファの値が上書きされる
Posted: 2014年6月10日(火) 16:06
使用OS:Windows 8
開発環境:Visual Studio 2013
使用ライブラリ:DirectXSDK June 2010
こんにちは。現在DirectX9を用いて、頂点と頂点インデックスを指定し「複数の」オブジェクトをレンダリングすることを考えています
そこで「頂点バッファを作成」→「頂点バッファをロック」→「頂点の座標値の指定」→「頂点カラーの指定」→「頂点データのアンロック」→「頂点インデックスバッファの作成」→「インデックスバッファをロック」→「インデックスの書き込み」→「インデックスバッファをアンロック」という手順を2回繰り返し、それぞれの頂点座標とインデックスバッファをIDirect3DDevice9に保持しています。(下記URLからDLできるソースのScene.cppとScene2.cppのcreate関数がそこに該当します)
ところが、いざその後レンダリングしてみると、最初に頂点情報などを取得したオブジェクトの画像が崩れてしまいます
この原因を追ってみると、1回目のインデックスバッファの内容を記録した領域に、2回目のインデックスバッファの内容が上書きされているということがメモリビューワーから明らかになりました
このため、1個ならともかく2個分以上の頂点情報を与えると、1個目の頂点情報が破壊された状態で描画されてしまいます
ソースは下記のURLからダウンロードできますので、心当たりがあるかた、この問題の解決法をご教授いただけないでしょうか?
ソース自体は2013以前のVisualStudioでも、空プロジェクトを作って追加のライブラリディレクトリと追加のインクルードディレクトリにDirectXSDKを指定し、全cpp,hを追加すれば動くと思いますのでなにとぞよろしくお願いします
https://box.yahoo.co.jp/guest/viewer?si ... ype=detail
開発環境:Visual Studio 2013
使用ライブラリ:DirectXSDK June 2010
こんにちは。現在DirectX9を用いて、頂点と頂点インデックスを指定し「複数の」オブジェクトをレンダリングすることを考えています
そこで「頂点バッファを作成」→「頂点バッファをロック」→「頂点の座標値の指定」→「頂点カラーの指定」→「頂点データのアンロック」→「頂点インデックスバッファの作成」→「インデックスバッファをロック」→「インデックスの書き込み」→「インデックスバッファをアンロック」という手順を2回繰り返し、それぞれの頂点座標とインデックスバッファをIDirect3DDevice9に保持しています。(下記URLからDLできるソースのScene.cppとScene2.cppのcreate関数がそこに該当します)
ところが、いざその後レンダリングしてみると、最初に頂点情報などを取得したオブジェクトの画像が崩れてしまいます
この原因を追ってみると、1回目のインデックスバッファの内容を記録した領域に、2回目のインデックスバッファの内容が上書きされているということがメモリビューワーから明らかになりました
このため、1個ならともかく2個分以上の頂点情報を与えると、1個目の頂点情報が破壊された状態で描画されてしまいます
ソースは下記のURLからダウンロードできますので、心当たりがあるかた、この問題の解決法をご教授いただけないでしょうか?
ソース自体は2013以前のVisualStudioでも、空プロジェクトを作って追加のライブラリディレクトリと追加のインクルードディレクトリにDirectXSDKを指定し、全cpp,hを追加すれば動くと思いますのでなにとぞよろしくお願いします
https://box.yahoo.co.jp/guest/viewer?si ... ype=detail