3Dゲームの作り方を教えてくださいat GAMEDEV
3Dゲームの作り方を教えてください - 暇つぶし2ch244:名前は開発中のものです。
15/01/07 21:54:57.87 lEBpx2ib.net
BPS

245:名前は開発中のものです。
15/01/08 18:17:22.77 3JV63qZl.net
URLリンク(books.google.co.jp)

DirectX逆引き大全500の極意: Visual C++2002/2003/2005対応 著者: 鎌田茂雄
434ページからの レイによる衝突判定からを読んで、
ポリゴンモデルの上の歩き方について書いてある。

DirectX9必携 鎌田 茂雄 (著) : 同じ物です。

246:名前は開発中のものです。
15/01/09 11:48:22.37 qmU+glKK.net
衝突判定自体はわかってる
問題は、地面の多数のポリゴンからどうやって足元周辺ポリゴンを割り出すのか
総当たりは遅くなる

247:名前は開発中のものです。
15/01/09 12:36:19.08 cpDVhBN/.net
通常は、総当りで出来る。
当たり判定に使う、必要最低限のポリゴンなら少ない。
処理が重いのならば、それはポリゴンが多すぎる。

シームレスの巨大マップにしたければ、
部屋に分けてポリゴンをグループ分けする。
自分の所属する部屋の中だけのポリゴングループに対して処理する。

色々な最適化がある、方法はマップの条件によって異なる。

248:名前は開発中のものです。
15/01/10 07:38:44.87 nNPbjeZG.net
データ構造が判らないとなんとも言えない

むしろ判定に都合の良いデータ構造にする。
MAPを格子状に区切ってその格子の順番にポリゴンを格納する。
①ポリゴンの範囲はは格子よりも小さくしておく(最大のポリゴンを元に格子のサイズを決め手も良い)
②ポリゴン座標の最小値で格納する格子を決定する。例えば(Ax,Ay)、(Bx,By)、(Cx,Cy)なら(Ax,Cy)になりうる。
③格子ごとに連続してポリゴンを格納してき、インデックスを保存しておく
これで判定対象のいる格子と、-x側の格子、-y側の格子、-x-y側の格子の4つを範囲にあるポリゴンを
インデックスを元に参照する。検証は任せたw


自分が実際にやったのは基本1km単位で
各頂点のxy値は1kmの範囲内でランダムになっているメッシュ上の地形データで、
隣接する格子を含めた9つの格子の計18ポリゴンでチェック。
そしてHITした頻度の高いポリゴンから判定するようにインデックスを入れ替える。
建物は各所にグリッド状に配置するので、その全体を判定してHITすれば判定すべき建物と判定。
って感じだったかな。うろ覚えだけどw

249:名前は開発中のものです。
15/01/10 08:31:26.61 Ryzdgy9l.net
>>244
ポリゴンを格子で区切るということは、格子と格子の接合面にあたるポリゴンは
格子の枠に沿った形状でつなげてあるということ?
でかい3Dマップも、格子状に分割できるようにポリゴンをつないでいるということ?
格子をまたぐポリゴンはないということ?

250:名前は開発中のものです。
15/01/10 13:16:00.91 earh9GX8M
それは、高さマップと同じだなぁ

251:名前は開発中のものです。
15/01/11 06:37:53.00 SeJYfhrW.net
「ポリゴンを格子で区切る」なんて書いたっけ?

> 格子と格子の接合面にあたるポリゴンは
> 格子の枠に沿った形状でつなげてあるということ?
格子の頂点とポリゴンの頂点が一致するデータ構造でいいなら、そうするのが良いと思う。

> でかい3Dマップも、格子状に分割できるようにポリゴンをつないでいるということ?
いくつもの格子を跨ぐポリゴンがあると、
ある格子に掛かるポリゴンがどれだけあるか判定が大変になる。

> 格子をまたぐポリゴンはないということ?
跨ぐ前提で話をしている。


ポリゴンは最大で格子と同じサイズまでにすれば
1つのポリゴンは1つの格子と隣接するプラス側の格子に掛かる可能性がある。
これを逆に考えると
1つの格子にはその格子と隣接するマイナス側の格子に登録されたポリゴンが掛かる可能性がある。

252:名前は開発中のものです。
15/01/12 01:18:11.06 HlhvcqEy.net
>>244
インデックスを格納した格子の構造体がたくさん?
その地形をロードするたびインデックスの並べかえはリセット?

253:名前は開発中のものです。
15/01/12 15:47:53.77 aAhaXk+Z.net
>>242
>衝突判定自体はわかってる

一応聞くけど、兄さん >>197>>202 と同一人物じゃないのかね。

親切に回答している方も、そろそろ「?」ばっかり連発してる質問者が
あなたに“全部答えさせようとしている”と気が付いた方がいいんじゃないかな。

254:名前は開発中のものです。
15/01/15 21:42:30.77 XCAGVc2R.net
それどころかどうせ3Dゲームが完成しない事も想定済み。

255:名前は開発中のものです。
15/01/16 03:24:54.08 QCVnSEdw.net
ピンポイントで質問が浮かぶような人→たいてい自分で解決出来る。

初心者→何から手を付けていいか分からないから漠然とした質問しか出来ない。
      答える方も基礎を学べとしか言いようがない。

気位だけ高い→基礎を学べと言われて逆切れする。

サイコパス→全部答えさせようとする。

…うまく噛み合わないね。

256:名前は開発中のものです。
15/01/16 14:55:25.37 1Snv1/Ug.net
簡単な3Dのゲームを作るなら、DarkBasicが良いと思う。
3Dライブラリを使って、簡単に3Dを扱えるようになっている。
初心者向けで、入門として良い。

サンプルコード( .dbaがソースコードになる。テキストファイル。)
URLリンク(www1.axfc.net)

ある程度の雰囲気や概要がわかってきたなら、
高度な3D数学や物理を学ぶのが良い。
いきなり、難しい事から始めると、確実に挫折する。

257:名前は開発中のものです。
15/01/16 22:30:09.87 BdLRVVjH.net
そして、オリジナル3Dライブラリ自作している自分に気がつく。

258:名前は開発中のものです。
15/01/16 23:13:16.38 603gq/0h.net
モデラーとかアニメーションも

259:名前は開発中のものです。
15/01/18 01:31:18.84 OEVWJWuh.net
いきなり難しいことから始めたら挫折するというけど、
難しいことを後回しにしたら挫折も後回しになるだけ。

260:名前は開発中のものです。
15/01/18 02:06:54.61 3/9SdjT+.net
例えば、小学校1年生から6年生へいきなり飛び越えても無理、
算数のたし算を知らなくて掛け算や連立方程式を計算できるわけが無い。
3Dの場合は かなりね、専門用語の壁が厚いのです。

261:名前は開発中のものです。
15/01/18 04:52:53.86 LhlxXUHN.net
行列やらベクトルの演算やら数学嫌いには拷問だよな

262:名前は開発中のものです。
15/01/18 06:00:56.92 Q3Wdh6kS.net
代数幾何の教科書読み直して理解できるくらいじゃないなら、
3D処理は出来合いのものを使ったほうが良い。つか必ず使わなきゃダメ。

263:名前は開発中のものです。
15/01/18 06:42:47.62 n+Z+LZlo.net
教科書はよく選んだ方がいいよね。プログラミングのための線形代数、お勧め。
巻頭のグラフ見るだけでも大分イイ!

264:名前は開発中のものです。
15/01/19 00:28:48.30 h8qE+fk3.net
昔のアニメ専門学校の広告でよくあったなあ。
「一から教えるからあなたにも大丈夫!」みたいなノリ。

高い入学費払って半分は中途退学。たまに成功する人もいるんだけど、
じつはそういうのは最初から才能を持ってる。

小1から中3まで算数や数学を順を追ってきちんと学んでも、高校数学で行き詰る人間が約半分。
順を追って学べば全て分かるなら、全ての人間がフェルマーの大定理が解けなきゃおかしい。

本当に勉強したければ、自分が行き詰ったところ、もしくは学ぶ機会のなかったところからやればいい。
それこそ小1の足し算からやって「俺にもできるかも!?」なんて


265:気分だけ味わうのは時間と金のムダ。



266:名前は開発中のものです。
15/01/19 00:33:40.10 h8qE+fk3.net
よく「足し算だけ、掛け算だけを解かせるとちゃんとできるのに、
足し算の応用問題を掛け算して解こうとする子供がいる」って話を聞くだろ。

人に勉強を教えると分かるけど、行列やベクトルの演算が分からない人、
まして数学が拷問に思えたり、教科書読んで分からなかったりする人は、
「計算が出来ない」んじゃなくて、「数式の意味や使い方が分からない」んだ。

意味や使い方そのものが分からないのに、ライブラリで何をどうごまかせるんだ。

267:名前は開発中のものです。
15/01/19 00:43:52.49 rXZoEcs9.net
3Dモデルを回転させるのに、回転行列を使う。
それを、ライブラリならば、「回転しなさい」というコマンドを使う。

これだけのこと。 四則演算で出来る。 あまり難しく考えてはいけない。

268:名前は開発中のものです。
15/01/19 04:07:34.69 S9THw46U.net
数学が判っていれば、本来なら行列を使うところを
一部の計算だけで同じ結果になるケースを見極めて
計算コストを省けるんだけどな。
でもそんな工夫している間にCPUが早くなっているw

269:名前は開発中のものです。
15/01/19 15:20:56.05 ZvVYE33q.net
>これだけのこと。 四則演算で出来る。 あまり難しく考えてはいけない。

株に手を出せない人に投資信託を勧めるのと同じ。
本当は複雑で難しいことを、素人でも分かる程度に簡略化して、分かった気にさせる。
「分かった気にさせて、手を出させる」のが狙い。

270:名前は開発中のものです。
15/01/19 15:36:39.73 ZvVYE33q.net
もう一度言うけど、3Dプログラミングは高卒かそれ以上の線形代数そのもの。

もちろん、昔それに挫折した人や機会がなかった人でも、やる気さえあれば腰を据えてやればいい。
それでできなくても得るものはあるだろう。

でもそこで腰が引けて迂回しようとしても他に道はない。他に道がありますよと言うのは甘言。
同じところをぐるぐる回らされていたと思い知らされるだけ。

271:名前は開発中のものです。
15/01/20 22:41:28.21 XwYpBp6C.net
GPUって3Dに特化しすぎじゃね?

vector3 とか matrix4 とか何で決め打ちなん!

もっと任意長のベクトルを流し込んで並列処理するような
汎用性のある枠組みにしたほうが分かりやすいのに。

それで3D特化はシェーダプログラムのほうでやればいい。
そうすればこまごました仕様が一掃されてシェーダが書きやすくなるのに。

シェーダでいろいろなアルゴリズムを試そうと思ったけど
ハードウェアの区別と制限がごちゃごちゃに思えて手を出せぬ

272:名前は開発中のものです。
15/01/20 22:56:20.52 XwYpBp6C.net
2008年の時点でこの記事があるな
URLリンク(www.atmarkit.co.jp)

現在ではどうなってるんだろう?
GPUで ray tracing の画像をリアルタイムで描けたりするんだろうか?

273:名前は開発中のものです。
15/01/20 23:13:07.51 XwYpBp6C.net
DirectX11 にコンピュートシェーダーというのがあるのか!
これで汎用アルゴリズムが直に書けるのかな?!
テンション上がるわー

Unity3D でも使えるんね

でも DirectCompute はまだシェーダ言語の一部という感じだが
C++ AMP というのを使うと C 言語っぽく汎用的に組めるのかな?

274:名前は開発中のものです。
15/01/21 02:16:00.24 oMkFY+XG.net
Unity3D でも使えるんね

275:名前は開発中のものです。
15/01/21 02:16:36.14 oMkFY+XG.net

何なんだよ、その不自然な改行。
おまえらステマ業者って根本的に相手をバカにしてるだろ?

276:267
15/01/21 10:22:34.70 yekSsXFj.net
ごめん。普段から言動が不自然と言われるけど
うにちのステマ業者じゃないよ

ちなみに C++ AMP は unity じゃ使えないのでは?
C++ だし。

277:名前は開発中のものです。
16/03/23 00:01:43.29 SpSehPDt.net
教えてあげないよん

278:名前は開発中のものです。
17/02/03 02:22:20.30 1Nz75uXE.net
age

279:名前は開発中のものです。
17/02/13 04:25:06.90 KNIkvquG.net
けちんぼしないで

280:名前は開発中のものです。
17/12/31 22:10:44.11 /rN76OKL.net
簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
JBWBKFVSM6

281:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch