トップページgamedev
1001コメント372KB

DirectX総合スレ (Part5)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2006/09/08(金) 23:56:42ID:0F5D1JWX
言語はC++
他の言語使ってる奴はいますぐ消えろ
0330名前は開発中のものです。2006/09/21(木) 01:31:55ID:8drzSPV5
>>328
Lampっつーの初めてみたけど、コレ使われてるの?
他の DXだかいうライブラリも同じ感じ??
だったら、>>327 のやつもイイ線いってるってことなのかな。

なんでもっとシンプルに仕上げられないのか疑問だぜ・・(´Д`) ボソリ
>>320 はシンプルすぎだがw
0331名前は開発中のものです。2006/09/21(木) 02:00:52ID:4FMuFct9
コメントをdoxygen等に対応させると
ドキュメント自動生成してくれるので楽よ。
03322912006/09/21(木) 06:16:52ID:NSl3TVGi
グラボを、ラデオン9200SEから、ゲフォ4にしたら、
かなり改善されました。
しかし、完全には無くなりません。
D3Dによる頂点バッファは、50あるポリゴンごとに確保してます。
この世代のグラボでこーなるのは、仕様であったりバグであったりするものでしょーか?
0333名前は開発中のものです。2006/09/21(木) 06:20:00ID:5ruKmJ4x
俺からすればTextureManageなんてロストさえなければ作る意味がわからない。
やっぱ、実装だけはVistaまで待ったほうがいいよ。
絶対、不必要なもんばっかりだから。
03342912006/09/21(木) 06:20:02ID:NSl3TVGi
あ、漏れのコードにちょとバグはけん
03352912006/09/21(木) 06:45:04ID:NSl3TVGi
バグなおしたけど同じでした。
頂点バッファをかえてもダメってことは、あと考えられるのは
テクスチャもポリゴンごとに確保することぐらいしか
0336名前は開発中のものです。2006/09/21(木) 06:57:59ID:G9WJnnc7
スクリーンショット撮って該当箇所に丸付けて見せて。
0337名前は開発中のものです。2006/09/21(木) 08:44:26ID:HLxN0OV5
>>335
だからお前さんさ、
DrawPrimitiveしたあと描画完了待たないで書き換えてるんじゃねーの?
0338名前は開発中のものです。2006/09/21(木) 09:14:46ID:HLxN0OV5
>>333
DX10はVista専用だからそれにあわせて作るのもどうかと思う。
DX9で作っておけばWin98,ME,2000,XP,Vistaでの動作がサポートされるわけだし。

Vistaが普及なんて2,3年はかかるってM$の人間すら言ってるのだから
サポート環境や性能的に見てもしばらくはDX9対応のものがいいと思う。

>>329
もう1台マシン用意してリモートデバッグって手もあるぜ。
まぁprintfデバッグはライブラリよりゲームの時に使ってる。
イベント発生とかのタイミングで表示させたりと結構便利。
0339名前は開発中のものです。2006/09/21(木) 15:24:12ID:Gz5/V+Ov
>302
何となく見てみたが、
最初に見たMemoryManagerとやらの腐った実装に、突っ込まずには居られない。
0340名前は開発中のものです。2006/09/21(木) 18:50:24ID:w/U4pxaF
>>302
何となく見てみたが、
Program'm'ed だよ
0341名前は開発中のものです。2006/09/21(木) 21:45:59ID:HLxN0OV5
MemoryManagerはこれから手を入れていくんじゃないの?
Windowsなのにわざわざメモリ管理を自作する所からするとコンシューマーの人のような気がするけど。

あと自分でメモリ管理すると当然その分のメモリは確保しておく必要があるわけだけど、
現状だと>>302のライブラリは起動するだけで最低でも10MBのメモリを消費するという事は理解してる?

あとWindowsの場合new/deleteやmalloc/freeで確保したメモリを解放しないで
アプリケーションを終了させた場合でも、OSが全部勝手に解放してくれるし、
解放してないメモリの確保時のファイル名と行番号を教えてくれたりする。

最低でもコレ以上の機能はないと自分で実装する意味はないってことになるな。
0342名前は開発中のものです。2006/09/21(木) 21:58:21ID:HvKhVd8X
どうも302、以後Nと名乗ります。
MemoryManagerに関して何が目的で作ったかというとnewやdeleteなどのメモリ確保
などをゲーム中、あるシーンに入る前にジオメトリやらテクスチャやらを読み込む時に
毎回行うのと既に確保しているのから割り当てて使うのではスピードが早いので作りました。
0343名前は開発中のものです。2006/09/21(木) 22:30:29ID:/4EhidU1
N…ヌルポか!
0344名前は開発中のものです。2006/09/21(木) 22:47:15ID:5ruKmJ4x
おいおい。
ネタ提供してくれんのはありがたいと思うけど、こういうライブラリって役にたたねぇよ。
普通にLuna(既存)の方がいいじゃねぇか。
しかも、どうみてもラッパーの域をでねぇ。

>>341
>解放してないメモリの確保時のファイル名と行番号を教えてくれたりする。
え?これどうやってわかんの?
たまーに出てくるときもあるけど99.5%は????みたいなのが出てくるんだけど?
0345名前は開発中のものです。2006/09/21(木) 23:11:50ID:lwyY0NN2
出てきたばかりなんだから、長年やっているライブラリより足りないものが
あるに決まってるだろ。
C++のメモリ取得開放は遅いから(GCの方が早い)、独自メモリ管理は
やっている所もあるじゃないか。
03462912006/09/21(木) 23:13:21ID:NSl3TVGi
>>337
描画完了を待つにはどうやるの?全裸で。じゃなくてDX7で。
0347名前は開発中のものです。2006/09/21(木) 23:16:30ID:HLxN0OV5
画面更新で自動的に待つことになる。
普通は待たないですむように作る。
同じバッファの使い回しとかDX8以降は出来るが7はしらね。
0348名前は開発中のものです。2006/09/21(木) 23:32:56ID:HLxN0OV5
>>302
とりあえずここらへんを参考に
ttp://gamdev.org/w/?%5B%5B%A5%E9%A5%A4%A5%D6%A5%E9%A5%EA%5D%5D
03492912006/09/21(木) 23:57:31ID:NSl3TVGi
テクスチャを50で全部独自に確保させたがダメだ。
なんかダメポです。解決不能。ってか、スリープ入れると直るってことはあれですね。描画未完了?
DX8に移るしかないようです。
0350名前は開発中のものです。2006/09/22(金) 00:04:13ID:ZBffE3Vt
なんでいまさら8?
素直に9に行きなさいナ。
03512912006/09/22(金) 00:12:27ID:FzUiG/+d
9だとGefo2が対応してないでしょ。
ビデオメモリ32M世代の。
0352名前は開発中のものです。2006/09/22(金) 00:12:35ID:AFaA2CK2
>>345
いや、それをあえてここでやる意味がわからん。
みんなで新しいライブラリを考えようってのならわかるが、
現時点で既存より劣ってるものについて語る意味ないと思うんだけど?

ああ、別に>>302の人が駄目っていうんじゃなくて、
俺等にとってLunaと>>302のLibと違いがあるかっていうとないでしょ?
この状況ならLunaのリンク貼ってLunaについて考えるところからはじめたほうがよっぽど先へ進むじゃん。
>>302ってLunaと作りが違うわけでも新世代(?)ライブラリでもなく、あくまで既存のラッパーの域を
でてないじゃん。ちなみにLanaがいいというわけではなくてあくまで既存の代表という意味で名前は使った。
ここでの例は別にソースが公開されているなら他のライブラリでも一向に構わないと思う。
0353名前は開発中のものです。2006/09/22(金) 00:16:04ID:mkbMBLxG
>>351
え、普通に対応してるでしょ。
03542912006/09/22(金) 00:17:00ID:FzUiG/+d
よくキャラクタごとにDrawPrimiじゃなくて、1回でやった方がいいってあれって、
それによってCPUの消費時間が減るとあるけど、
頂点情報を描画用頂点バッファに入れなきゃならないから、
その頂点を入れる作業と、いきなりDrawPrimiを実行するのとでは、
CPUが消費する時間は同じ以下だと思う
0355名前は開発中のものです。2006/09/22(金) 00:17:49ID:ZhhHldQ9
>>344
DEBUG_NEW でぐぐれ。
0356名前は開発中のものです。2006/09/22(金) 00:52:07ID:AFaA2CK2
>>355
ありがとう!
ところで非MFCの場合ってどうやるの?

_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_CRTDBG_LEAK_CHECK_DF);

これ↑でやると肝心の場所がさっぱりわからないんだけど・・・。
0357名前は開発中のものです。2006/09/22(金) 00:56:34ID:AFaA2CK2
すまんみつけた。

リンクとサイトが消滅したときのために引用。
リンク
http://daybreaks.exblog.jp/m2006-04-01/#3421733

以下引用・・・・・・・・・・・・・・・・・・

CrtSetDbgFlagの力でメモリリークを撲滅!
使い方は簡単。
まず
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>

その後Main関数の最初に
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

を記述するだけで、デバッグ終了時に、何番目のnewで得たメモリがリークしているか出力してくれます。
後は
_CrtSetBreakAlloc( n );
でn番目のメモリ確保にブレークポイントをセットして、それが何なのか確認してやればオッケー。
もっと早く知ってれば楽できたのにー
0358名前は開発中のものです。2006/09/22(金) 03:24:51ID:hMj4THWP
>>354
なんで突然そんなこと言い出すのか分からんが、そんなネタは散々既出で
NVIDIAなんかが計測したデータも公表している。
っていうか、頂点バッファに書き込む処理なんて無視できるほど小さい。
それよりDrawPrimitiveのオーバーヘッドが物凄くでかい。
0359名前は開発中のものです。2006/09/22(金) 03:33:55ID:bWdUmn2S
>341
手を入れていくって……
現時点でバグってるって言いたいんだが。
FILOで使わないとまともに動かない。

この設計の拙さ、コンシューマーの人というかもっと若い、中とか高ぐらいに感じる、
0360名前は開発中のものです。2006/09/22(金) 06:33:42ID:AFaA2CK2
>>358
まあ、どっちにしてもシェーダごとテクスチャごとに切り替えるしかないんだけどな。
1回でやれも糞もシェーダが違うんだから、DrawPrimitive呼ぶしかないって状況のほうが多いな。
03612912006/09/22(金) 07:03:57ID:FzUiG/+d
>>358
GPUにレンダリングをやらせてる間は、CPUは次の処理がされるんじゃないの?
並列に処理されるんじゃないの?
0362名前は開発中のものです。2006/09/22(金) 07:52:19ID:ttaHMyE5
>>頂点バッファに書き込む処理なんて無視できるほど小さい。
PCI-Expressならともかく AGPx4とかAGPx8の時代だとかなり遅くなるお
0363名前は開発中のものです。2006/09/22(金) 08:03:13ID:n5kn1hns
AGPメモリにマッピングされている限り、
書き込み処理のアクセス速度はメインメモリと変わらない。
遅いとか言っている奴はVRAMにいちいち送信していたりと、
使い方が分かっていない>>362のようなアホだけ。
0364名前は開発中のものです。2006/09/22(金) 08:10:08ID:ttaHMyE5
>>363
すまん、VRAMを経由しない方法教えてくさい…FPSが出なくてこまってた
0365名前は開発中のものです。2006/09/22(金) 08:15:02ID:Lw2G2Q/B
USAGE_DYNAMIC
0366名前は開発中のものです。2006/09/22(金) 08:41:37ID:ZBffE3Vt
D3DLOCK_DISCARD
0367名前は開発中のものです。2006/09/22(金) 08:45:04ID:ZBffE3Vt
>>360
だから既存のWindowsのゲームもポリゴン数を
増やすことはたやすいがオブジェクト数を増やすことは非常に難しい。
0368名前は開発中のものです。2006/09/22(金) 08:48:16ID:Lw2G2Q/B
そこでマテリアルソートとかの話が絡んでくるのだが
そういう処理をやってる日本製のライブラリを(現場以外で)見たことがないのだが
0369名前は開発中のものです。2006/09/22(金) 09:07:11ID:ZBffE3Vt
マテリアルソートはテクスチャ切り替えは減るけど、
シェーダーが変わるときはやっぱりだめじゃね?

データ作る段階で1キャラ1テクスチャで作ったほうが早いような。
1024x1024とかのテクスチャも余裕でいけるんだし。
0370名前は開発中のものです。2006/09/22(金) 09:30:58ID:ZaJMS9tT
CPUに余裕のある時はそれでもいいけど、速度が出なきゃ品質落としてでも
マテリアルまとめて大量のオブジェクトを一つの頂点バッファにブチ込んだりするワケよ。
ちゅーかこの話題は最適化すべきシーンを明確にしないと荒れるから
DP呼び出しは少ない方がいいですハイそーですかで終わって欲しいんだけど…。
0371名前は開発中のものです。2006/09/22(金) 09:34:03ID:Lw2G2Q/B
>>369
揚げ足とってるみたいになっちゃうけどシェーダでソートしないとは言ってない。
つかシェーダで完全ソートすりゃテクスチャ切り替えは出てくるし
その辺何が最も高速かなんてのは状況次第で幾らでも変わる
0372名前は開発中のものです。2006/09/22(金) 09:52:09ID:FzUiG/+d
371 :名前は開発中のものです。:2006/09/22(金) 09:34:03 ID:Lw2G2Q/B
  状況次第で幾らでも変わる
  ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ∧_∧
    ( ',:`_´:)     ∧_∧
    /     \   (´∀` ) ハハハ
.__| |    .| |_ /      ヽ
||\  ̄ ̄ ̄ ̄   / .|   | |
||\..∧_∧    (⌒\|__./ ./
||.  (    )     ~\_____ノ|   ∧_∧
  /   ヽアホか       \|   ( ´_ゝ`) じゃ出てくんなよ
  |     ヽ           \/     ヽ.
  |    |ヽ、二⌒)        / .|   | |
  .|    ヽ \∧_∧    (⌒\|__./ /
0373名前は開発中のものです。2006/09/22(金) 10:05:27ID:ZBffE3Vt
>>371
そもそもボーン使うときはソートも何もねーしな

>>302
とりあえず現状ではまだ未完成なんだし、
なるべく早い段階でEL/DX/Lunaと並べるくらいまで作ったうえで、
独自の利点を考えていくくらいでいーんでない?

上記3つのライブラリでまともに3DサポートしてるのはLunaだけだが、
LunaにはBSPは実装されてないし、シーングラフもないから
オブジェクトのソートみたいなこともおまけ程度にしかついてないし。

ビューフラスタムでのカリングとオクトツリーのフィールド描画はあったけど。
0374名前は開発中のものです。2006/09/22(金) 11:49:56ID:DORsqBmh
おまいらは口内発射動画でも見とけ!(´Д`*)
http://chinkame.ath.cx/uploader/src/up0014.jpg

http://chinkame.ath.cx/uploader/src/up0014.wmv
03753622006/09/22(金) 12:15:52ID:Cod4Un3V
>>365-366
ありがとうございます。微妙に改善できました。
0376名前は開発中のものです。2006/09/22(金) 13:08:43ID:nltIXCgA
ありえねぇ
0377名前は開発中のものです。2006/09/22(金) 15:01:31ID:Tw50U/1F
簡単にお金稼ぎ!!!

以下の手順でやれば、無料でお金稼ぎができます。
企業も広告の宣伝になるから、お金をくれるわけです。
最初の1日目で 2000 円〜3000 円 は確実に稼げます。
実際の作業は数十分程度、1時間はかかりません。

@ http://www.gendama.jp/invitation.php?frid=470908
    ↑このアドレスからサイトに行く。
Aそこのサイトで無料会員登録(応募)します。
 (その時点で 500 ポイントが貰えます。)
 ※事前に新規でヤフーなどのフリーメールアドレス
 を取っておくといいですね。
Bポイントを稼ぎます。
 懸賞の応募や無料会員登録などをする事によって
 1日目で約 20000 ポイントは GET できます。
C 3000 ポイントから、現金や WEB マネーに交換できます。
Dトップの右上に「交換」という所がありますので、
 そこから交換をしましょう。
 その月に初めてポイントバンクにポイントを移行した時、
 さらに別途として 1000 ポイント貰えます。

これで現金や WEB マネーを稼ぐといいですよ!!!
0378名前は開発中のものです。2006/09/22(金) 16:02:59ID:TfYxVfg6
よく解らんのですが、もうすぐDirecrX10.0?がでたら今のDirectX9.0勉強は
無駄になるってことですか?
0379名前は開発中のものです。2006/09/22(金) 16:09:30ID:iijsCJm6
>>378
無駄にはならない
関数消えたり引数変わるのはいつものこと
固定機能の関数は消えるけどシェーダとして引き継がれる
基本は変わらないよ
0380名前は開発中のものです。2006/09/22(金) 16:11:29ID:TfYxVfg6
>>379
ありがとうございます
安心しました
0381名前は開発中のものです。2006/09/22(金) 21:23:26ID:ZBffE3Vt
Vista専用のDX10が一般に普及するまで3年くらいかかるだろうしねー
0382名前は開発中のものです。2006/09/22(金) 21:31:47ID:UO4OwrjN
まぁDirectX自体が低レベルなAPIだけどな。
0383名前は開発中のものです。2006/09/22(金) 21:33:11ID:UO4OwrjN
>>382
低レベルなのはお前の頭だろwww
0384名前は開発中のものです。2006/09/22(金) 21:36:52ID:+bp4fGt2
志村ーID!ID!
0385名前は開発中のものです。2006/09/22(金) 21:45:25ID:AFaA2CK2
>>373
だったら、Lunaを使えといいたい。
0386名前は開発中のものです。2006/09/22(金) 21:50:49ID:AFaA2CK2
>>370
さすがにそれはデザイナが作りこんだクオリティがすべて無駄になってしまうからやらないと思う。
カメラを下に向ける(あんまり広い範囲を描かない)とかそんな対応になると思う。
ちょっと近づくとキャラに関しては髪の毛、肌、服(鎧)ぐらいはシェーダが切り替わってるから
マテリアルソートは俺のところはやってない。(無駄っしょ。α物関連のソートも含めるとやる意味なさげ)
そもそもデータ出してみたら同じシェーダを設定してること事態少ない。
0387名前は開発中のものです。2006/09/22(金) 23:44:07ID:9ULI2Lw/
>>382-383
これは酷い
0388名前は開発中のものです。2006/09/22(金) 23:52:23ID:aND7GHAp
>>382-383
わろすw
とりあえず市ねw
0389名前は開発中のものです。2006/09/23(土) 00:28:35ID:GYfaIXhj
低級なAPIって言ったら通じたかね?
0390名前は開発中のものです。2006/09/23(土) 00:53:34ID:lErZFtkU
通じなかったと思うw

よりハードよりのAPIって言ったほうがいいんでない?

低級=アセンブラ
高級=JAVA

くらいの感じで。
0391名前は開発中のものです。2006/09/23(土) 02:13:15ID:6PuG3s8F
>>390
それだと彼にはただのjava信者にしか見えないだろうw
0392名前は開発中のものです。2006/09/23(土) 02:28:49ID:uPOLW/0M
>>291
いっぺんソースさらしてみ?
0393名前は開発中のものです。2006/09/23(土) 03:06:56ID:2edMqpIz
Nです。
タスクシステムって将来的に必要ですかね?個人的にはソース追いにくく感じるので
実装どうしようかまよってるんですが皆様どうでしょう?
0394名前は開発中のものです。2006/09/23(土) 03:15:25ID:MnwVaaoo
ここはDirectXスレなので設計論とかはこういうスレに行ってきたほうがいいよ
http://pc8.2ch.net/test/read.cgi/gamedev/1155209226/
0395名前は開発中のものです。2006/09/23(土) 03:22:58ID:vLFfZIn0
>>394
>>302>>342
0396名前は開発中のものです。2006/09/23(土) 03:54:59ID:MnwVaaoo
流れ的にそうかもしれないがスレ違いではあることは変わりないような…
って固くるしいのは俺もあまり好きじゃないので俺的意見を書くよ

N氏の意図しているタスクシステムは必要ではなさそうに見える。
ソース追いにくく感じるような場面で使われるタスクシステムならば使う必要がない。
そのタスクシステムは、どういう設計で、どういうことに対して使うことを想定してるの?
0397名前は開発中のものです。2006/09/23(土) 04:50:19ID:As545zCT
>>N
だからシーングラフ実装しれって。ゲーム上のオブジェクトをイテレーション
できる仕組みがあればいわゆるタスクシステムなぞいらん。

まあノンプリエンプティブな擬似マルチスレッド(Fiberみたいな)が使えると
スクリプト周りとかは何かと楽だが。
0398名前は開発中のものです。2006/09/23(土) 08:35:20ID:6PuG3s8F
そもそも俺はタスクシステム(擬似タスクって言われる奴?)自体いらんと思うのだけど、
っていうかタスクシステム自体何のために必要なのかいまいち理解できない。
ソースに記述しなくて、共通パラメーターを使うことでフィールドに追加するのが楽ってのはわかるけど
そのおかげでそれ以上にすさまじい数のバグを産むことになると思う。

例えば、アクションゲームでフィールドに「移動する足場壁付きの砲台」と「キャラ」があったとして、
ワンフレームの処理や判定は足場と壁の判定をもってる「移動する足場付きの砲台」の方からやらにゃならんよね?
この順序って確定してるし、必ずその順序でなきゃバグるよね?

移動する足場壁付き砲台の処理
キャラの処理

ね。これが

キャラの処理
移動する足場壁付き砲台の処理

になると普通にバグる。
ここで優先度とか設けるんだろうけど、ここが確定してるなら面倒でもソースに書いたほうがいいと思うんだけど?
なにより圧倒的にデバッグが楽。
なんだけど、妙なタスクシステムを作る奴って何故か減らないんだよなぁ・・・。
仕事で火消しに入ってやることの80%はまずこれのシステムを止めさせることになってるんだけどw
てか、経験上、火消しが必要になるほどバグを出すのって原因のほとんどがこれ。
このシステム、死んだキャラの相互の関連をすべて無くして(まずこれをチェックするのがそもそも至難の業)
タスクからとりはずすのって結構難しいんだよな。
0399名前は開発中のものです。2006/09/23(土) 08:40:50ID:vLFfZIn0
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

これらの書き込みから、このスレでDirectX以上の議論をするのは、
時期尚早であることが証明されました。
0400名前は開発中のものです。2006/09/23(土) 08:54:05ID:2luzFxgZ
Nです。DirectX以外の実装に関してはひかえるべきでしたすいません。
シーングラフについての実装についてですが、ほとんど理解がなかったのでいろいろを
調べましたがこんな感じでいいでしょうか?
まず木構造で行われる。例えば
         描画物
       |
------------------
| |
2D 3D
|
----------------
| |
ライト有     ライト無
| |
----------------
|
----------------
| |
モーション有 モーション有
みたいなことでしょうか?
0401名前は開発中のものです。2006/09/23(土) 13:26:16ID:CX441kPl
描画処理を完全にシーングラフ内で処理するのもいいけど、
2Dの描画はレイヤーを分離して描画したい気もする。
0402名前は開発中のものです。2006/09/23(土) 15:05:16ID:LShRrPtb
なんでシーングラフを使うのか、というのは意識しておいたほうがいいだろね。

大昔のBASICのように上か順に描画命令を並べたほうがわかりやすいのは自明で
なんでそういうモデルを使わずに一度データ構造として表すのか。オブジェクト指向
ならオブジェクトにdraw関数を付けるんじゃなかったのかよ?とかそういうところ。

それはそのデータ構造を多目的に使うためなんだと思う。
衝突判定であったり、影のためにNパスのアルゴリズムを使うためだったり、
シリアライズのためであったり。(デザパタのvisitorパターンと同じ考え方)

DirectXは過去Retained ModeとかFahrenheiteとかその部分を作っては
放棄ということを繰り返してるわけだけども、今度のXNAはどうするのだろうね。
0403名前は開発中のものです。2006/09/23(土) 16:08:53ID:6PuG3s8F
なんだシーングラフって?
何をツリーにするか?ってのは作る奴次第?

描画順は色々な要素が絡んで順番が決定するし、
座標計算は親から辿ってく必要があるし、
内部処理はその物体の持つ意味によって処理順が変わるし、
ゲームで生成、消滅するインスタンスはそもそもツリーにする意味がないしで
全くわからんですな。
0404名前は開発中のものです。2006/09/23(土) 16:20:20ID:vLFfZIn0
まぁ、只のラッピングじゃないかと指摘されて、
余計な事まで手を出し始めたってとこだな。
やるのは勝手だと思うが、
そろそろDirectXと離れてきrたので、
別スレでやった方がいい希ガス。
0405名前は開発中のものです。2006/09/23(土) 16:45:08ID:CX441kPl
正直シーングラフはなくてもいい要素だと思う。
単純に半透明のソートだけしてくれる機能があるならそれでいいと思う。

普通にゲーム作るとして基本的には、
1.背景(地形や天球など
2.キャラ(不透明
3.キャラ(半透明+ソート
4.パーティクルなどの加算エフェクト
5.ウィンドウとか(2D

これから大きく外れることってないと思う。
どっちみち半透明のポリゴンを完全にソートは出来ないしねぇ。
せいぜいマテリアル単位でソートするのが限界でしょ。
0406名前は開発中のものです。2006/09/23(土) 17:15:05ID:uPOLW/0M
シーングラフってのはさ、結局のところ情報管理方法だから
DirectXとは直接関係ないし、描画まで行うライブラリの中で実装
しなくても良いいんだよね。

このスレで議論するんであれば、DirectXの情報をシーングラフで管理するとか。
LPD3DXMESH とか LPDIRECT3DTEXTURE9 とかを管理してて、描画とか必要な時に
自由に使えるようにする、管理するためだけのライブラリ。
0407名前は開発中のものです。2006/09/23(土) 17:53:02ID:F7d6H2tv
シーングラフってツリーの事でしょ
ハイトマップで視錐台に収まっている部分だけ描画するのに使う程度じゃねいの
0408名前は開発中のものです。2006/09/23(土) 18:10:16ID:LShRrPtb
シーングラフはツリーに限らないよ。

http://en.wikipedia.org/wiki/Scene_graph

要約すると、シーングラフの実装はアプリによって千差万別。何か決まったルールが
あるわけじゃない。例えば、半透明ソートのためにオブジェクトを配列に入れれば
それはすでに単純なシーングラフだ。だから、シーングラフが必要かどうかというなら、
お前はもうシーングラフを作っている、と言えるだろうね。
0409名前は開発中のものです。2006/09/23(土) 18:19:35ID:6PuG3s8F
>>407
オクトツリーはオクトツリーで別にもってるよ。俺は。
座標計算は座標計算用のツリーでもつし、
敵セットは敵セットリスト。
味方セットは味方セットリスト。




って感じでもって
実体は線形のリストでもってIDでアクセスってしてる。
ツリーももちろん実体にアクセスするIDが入ってるだけ。

って感じ。
0410名前は開発中のものです。2006/09/23(土) 18:39:57ID:hn0c+x2R
ブラーとかキューブとかミラーっぽい処理とかで複雑に
0411名前は開発中のものです。2006/09/23(土) 18:47:04ID:6PuG3s8F
>>410
な。
「どうもつといい。」とかいう話じゃなくて
必要なときに必要なもんを手早くかき集めてこれるようにしておくのがベストだよね。
0412名前は開発中のものです。2006/09/23(土) 18:55:18ID:5JWF+Hio
女の子のキャラクターの髪の毛を自動で動かしたいのですが、何か良い方法ないでしょうか。
髪の毛を一本一本制御する必要は無くて、ロングヘアーに関節が2箇所ほどあるボーンが1本
通っていて、これを重力と慣性と空気抵抗を加味して、走ったときに勝手になびいたり首を
かしげた時に勝手に横方向に垂れたりするようにしたいのです。
せめて背中には勝手に髪がめり込まないように、それなりに辻褄の合った動きしたいのですが、
どういうやり方がありますか。
ポリゴン単位で当たり判定とか凄いことでなくても、だいたいでいいのですが・・・。
0413名前は開発中のものです。2006/09/23(土) 20:22:45ID:CX441kPl
ボーンにあわせたバウンディング持つ、
髪の毛の間接に適当な大きさの球を入れる。

この球と体のバウンディングを判定すればおおむねOK。
ロングヘアで腕を貫通とかの問題はあるけどな
0414名前は開発中のものです。2006/09/23(土) 22:21:19ID:5JWF+Hio
>>413
体も球にして大丈夫でしょうか。
体側は体のX方向にも複数球を設定するべき?でしょうか?
DCのジャスティス学園の委員長の髪程度の動きで良いのですが。
0415名前は開発中のものです。2006/09/23(土) 22:28:51ID:aqvKAN9/
そんな奴は知らない。
0416名前は開発中のものです。2006/09/23(土) 22:31:47ID:CX441kPl
>>414
ダレソレ
0417名前は開発中のものです。2006/09/23(土) 23:32:20ID:hn0c+x2R
ジャスティス学園は全然計算してなかったような気がする。
0418名前は開発中のものです。2006/09/23(土) 23:36:07ID:YgY24rUz
>>415-416
ヲタのヲタ叩きワロス
0419名前は開発中のものです。2006/09/23(土) 23:43:53ID:GYfaIXhj
君は想像力が豊かだ
0420名前は開発中のものです。2006/09/23(土) 23:59:59ID:5JWF+Hio
ジャスティス学園は計算で髪とか服のヒラヒラとかを動かしてるようでしたが・・・
別に何でもいいです、スターオーシャン3とかでも。
0421名前は開発中のものです。2006/09/24(日) 00:38:40ID:6Si9nPYM
この記事の「オリジナル物理エンジンによる挙動生成」は?
http://watch.impress.co.jp/game%2Fdocs/20060911/vp2.htm
0422名前は開発中のものです。2006/09/24(日) 00:53:33ID:WXa9HNUr
>>421
そんなの薦めてどうするんだw

>>412
とりあえず、めり込むとか摩擦とか抜きにして動きだけ実装してみ?
あとは角度に制限つけるだけで、それなりに見えるようになるから。
0423名前は開発中のものです。2006/09/24(日) 02:18:41ID:lOmzOYmw
>>422
う〜む、角度で制限ですか・・・単にウロウロ歩き回るだけでなくて、かなり色んなポーズを取る
ので、もうちょっと何とかしたいです。
>>421のは良いですね〜〜、これのサンプルなんかがあれば最高なんですが。
背骨のボーンに対して焼き鳥状にカプセルを配置、髪は髪でボーンに沿うようにカプセルを配置、
お互いにめり込まないように調整、くらいが妥当ですけね・・・
0424名前は開発中のものです。2006/09/24(日) 02:34:39ID:WXa9HNUr
>>423
関節2つしかないのに大層な処理をしようとしてるな・・
っつーか、>>413 のアドバイスと同じ方法だろソレ。
0425名前は開発中のものです。2006/09/24(日) 03:01:58ID:lOmzOYmw
結局そうなりますね
関節の数ってこの場合あんまり関係なく無いですか。
0426名前は開発中のものです。2006/09/24(日) 18:42:02ID:WXa9HNUr
間接が2つしかないんだから、球や楕円とか使ってまともにコリジョンとっても
角度で制限つけても結果はあまり変わらんって話なんだけどね。

角度で制限つける方法って想像できてないでしょ?
0427名前は開発中のものです。2006/09/24(日) 19:37:48ID:D7IayF5T
ttp://www.watch.impress.co.jp/game/docs/20060911/vp2.htm

この記事の後半が参考になると思う
0428名前は開発中のものです。2006/09/24(日) 19:40:17ID:WXa9HNUr
おまえら どんだけVP2が好きなんだよw
0429名前は開発中のものです。2006/09/24(日) 20:24:48ID:lOmzOYmw
>>426
角度で制限って言っても・・・それなりに複雑になりませんか。
背中に背負ったコーン(を半分に切った奴)の中しかボーンが動けないようにするとか?
いい方法があるのなら教えて欲しいのですが・・・。

カプセル同士で髪が体にめり込まないようにする方法をチラっと考えていたんですが、
一方の端を固定したカプセル(頭から延びる髪の一つ目のボーン)と、動かないカプセル
(体に仕込んだカプセル)が接触した場合、髪の方のカプセルをどっち方向にどれだけ
回せば(押し返し処理)良いのかって言うのを求めるのはなかなか難しいですねぇ・・・
■ このスレッドは過去ログ倉庫に格納されています