[リストへもどる]
一括表示
タイトル質問です。
記事No9908
投稿日: 2011/11/08(Tue) 15:57
投稿者ぼおん
要望とかでないので軽く聞いていただきたいんですけども。

レンダーターゲットを2枚用意して、例えば片方に背景モデルを描画した後にそのZバッファを利用してもう片方にキャラクタを描画して最終的に合成する・・・のは可能でしょうか?
E3DBeginScene 背景scid
(背景レンダ)
E3DEndScene

E3DBeginScene キャラscid, 0, 背景scid
(キャラレンダ)
E3DEndScene

//E3DBeginScene 背景scid, 1 でもいいのでしょうが念のため別バッファ
E3DBeginScene 合成scid
E3DBeginSprite
E3DRenderSprite 背景spid, (倍率), (倍率), 0, 0
E3DRenderSprite キャラspid, (倍率), (倍率), 0, 0
E3DEndSprite
E3DEndScene
これで

E3DBeginScene 合成scid
(背景レンダ)
(キャラレンダ)
E3DEndScene
と同じ画面になるはずだと思ったんですが上手く出来ませんでした。

タイトルRe: 質問です。
記事No9910
投稿日: 2011/11/08(Tue) 17:45
投稿者おちゃっこ
それはちょっと使い方が違います。

スワップチェインというのはサーフェス(色が付くところ)と
Zバッファの2つから成っています。
別々なのです。

つまりサーフェスにはZ情報は保存されません。

あと
スプライトは描画時に指定するZしか奥行き情報を持ちません。

タイトルRe^2: 質問です。
記事No9912
投稿日: 2011/11/08(Tue) 18:11
投稿者ぼおん
あ、スプライトの方はZでなくアルファ合成のつもりで書いたんですが(ぶっちゃけた話加算合成でもいいです)要は常に上書きで構いません。

>つまりサーフェスにはZ情報は保存されません。
これはメインのバッファしかZ情報を持たない、という解釈でいいのでしょうか。
スワップチェインのZバッファを使ってレンダリングするのは不可能、という事ですか?

欲しかった描画結果は キャラscid にキャラをレンダリングする時に、背景モデルによって欠けて欲しい・・・この辺ちょっと伝わりにくいですかね。

タイトルRe^3: 質問です。
記事No9913
投稿日: 2011/11/08(Tue) 18:24
投稿者おちゃっこ
> E3DBeginScene キャラscid, 0, 背景scid
> (キャラレンダ)
> E3DEndScene

のスキップフラグ0では背景scidのZが初期化されます。
これがうまくいかない原因でしょう。

>>つまりサーフェスにはZ情報は保存されません。
>これはメインのバッファしかZ情報を持たない、という解釈でいいのでしょうか。
>スワップチェインのZバッファを使ってレンダリングするのは不可能、という事ですか?
いえ違います。
スワップチェインにもZはあります。
ぼくが言いたかったのは、スプライトとして使うときに
スワップチェインのZは付いてこないということです。