ページ 1 / 1
こういう3D背景を作りたいのですが…
Posted: 2010年3月07日(日) 01:34
by レッドリ
ぼくはVC++EE2008,DXライブラリでゲームを作っています。
こんな感じの背景を作りたいのです。
柱と地面がこちらにむかってくる背景です。
確か、yuさんが以前公開されていた東方紅魔館EXのSTGのような背景にしたいと思っています。
龍神録では、壁が連続で表示されているので
これを、少し間を空けて表示させたいのですが、
どうすればできるでしょうか?
60章のここを変更してみたのですが、あまり変化しませんでした。
Ob->ObchindMax = OBCHILD_MAX;
if( Ob->Type >= 0 ){// デフォルトではif( Ob->Type == 0 )
Ob->ObchindMax = ObchildMax;
}
OBCHILD_MAXを小さくしても画像が伸びるだけで、できませんでした…。

Re:こういう3D背景を作りたいのですが…
Posted: 2010年3月07日(日) 16:50
by Justy
> 実行してみたのですが、結果は変わらず、
> 壁が連続して表示されていました。
その修正方法の是非はともかく、Ob->ObchindMaxが表示するポリゴンの数を制御するものなのは
確かだと思います。
ただ 60章のコードは、最終的にポリゴンが連なって表示された時の長さが常に一定になるよう
1ポリゴン毎のZ方向のサイズを調整したはずです。
この状態では最終的に表示される奥行きなどは変化しません。
ただ個々のポリゴンに目を向ければマッピングされているテクスチャが引き延ばされたり
圧縮されたりと何らかの変化があるはずです。
そのあたり確認してみてください。
Re:こういう3D背景を作りたいのですが…
Posted: 2010年3月07日(日) 17:00
by Justy
書き忘れました。
> 東方紅魔館EXのSTGのような背景にしたい
そういう3Dモデルを作って表示した方が調整も楽ですし、手っ取り早いと思いますよ。
Re:こういう3D背景を作りたいのですが…
Posted: 2010年3月08日(月) 02:46
by レッドリ
Justyさんの言うとおりに、柱モデルを作って、
龍神録と同じような近づいてくる描画はできました。
本当にありがとうございます。
このスレッドの項目は達成できたので解決にします。

Re:こういう3D背景を作りたいのですが…
Posted: 2010年3月08日(月) 21:30
by Justy
> これが3Dモデルをαブレンドする関数でしょうか?
そうですが、MV1SetOpacityRate()を使った方がもっと楽だと思います。
勿論加算とかするなら、ブレンド関数の方でないとだめですが。
Re:こういう3D背景を作りたいのですが…
Posted: 2010年3月08日(月) 21:36
by Justy
ああ、2Dと違って3Dの透明描画は結構厄介です。
3Dモデルの多くは普通に半透明で表示すると描画が破綻することがあります。
その場合はまた別のアプローチが必要になるかもしれません。
Re:こういう3D背景を作りたいのですが…
Posted: 2010年3月08日(月) 21:41
by レッドリ
ありがとうございます。
新スレ立ててややこしいことしてすみません。
MV1SetOpacityRate( int MHandle, float Rate ) ;
でできました。
本当にありがとうございます。
Re:こういう3D背景を作りたいのですが…
Posted: 2010年3月08日(月) 21:43
by レッドリ
おおっと、再び重なってしまいました。
そうなんですか。
その場合はバイネリア法を指定すればいいのかな…。
また調べてみます。

Re:こういう3D背景を作りたいのですが…
Posted: 2010年3月08日(月) 21:47
by Justy
>その場合はバイネリア法を指定すればいいのかな…。
いえ、破綻に対する対策としては無意味ですが、どちらにしても3Dモデルにテクスチャが
貼られているならバイリニアは指定しておいた方がいいでしょう。
Re:こういう3D背景を作りたいのですが…
Posted: 2010年3月08日(月) 21:50
by レッドリ
そうなんですか。
一応、六角形の柱のモデルに
フォトショで作成した木のテクスチャを張り付けてあるので、
念のためバイリニア指定しておきます。