●深度サーフェイスの任意の位置の深度を見る試み

結局成功してない。
俺が試した事をとりあえず書いとく
誰か実装できたら教えて(´・ω・`)


サーフェイスのデバイスコンテキストを取得して、GDIのGetPixelを使ってはどうか?
IDirect3DSurface9 ::GetDCが有効なフォーマットはD3DFMT_R5G6B5、D3DFMT_X1R5G5B5、D3DFMT_R8G8B8、D3DFMT_X8R8G8B8のみ。
つまり深度サーフェイスでは使えない。


ロックしてみてはどうか?
ロック可能な深度サーフェイスはD3DFMT_D16_LOCKEBLEのみだが、うちのグラボはサポートしてなかった。
DX7時代のグラボはサポートしてたらしいけど、D3Dになって内部構造が変わってサポートするグラボが減ったらしい。
今ではあまりみかけないそうな(´・ω・`)
もちろんHALじゃなければ動くけどね(´・ω・`)・・・重いよね(´・ω・`)


他のサーフェイスに転送してみてはどうか?
3つのサーフェイス間転送関数では深度バッファを深度バッファ以外に転送する方法が無く、フォーマット変換は不可能。


妄想してたら思い出したCDX9LaodSurfaceFromSurfaceを使ってみてはどうか?
・・・たとえ同じフォーマットでも失敗したんだけど、やはり深度バッファでは使えないのか?
ちなみに、D3DXSaveSurfaceToFileもムリでした。


つまりお手上げ


トップへ
前へ