3Dゲームエンジンのプログラミングには通常どのような数学が必要なのか考えてみたいですか?非常に複雑な数学が本当に必要ではないように、特定の数学(ベクトル幾何学など)や計算アルゴリズム(高速フーリエ変換など)、またはこれはすべてDirectX/OpenGLで抽象化されていますか?3D(ゲーム)エンジンプログラミングで使用される数学
答えて
行列、三角、主に幾何学と線形代数のビット
は、複雑な数学ここhttp://www.essentialmath.com/
を見てください、多くの場合、再生するために入ってきたが、最も重要なのは、このような数学の概念を理解し、数学自体ではない。すべてがどのように一緒になっているかを理解している限り、多くの計算に必要なヘルパーメソッドがしばしばあります。もちろん、それは主にあなたが使用している開発プラットフォームにも依存します。
コンセプトをどこで学び、どのようにゲームプログラミングに適用するかについての提案がありますか?教授法への飛び方/方法/数学を行うこと、そして、いつ/あなたがそれを使うべきかを見つけること。 – TheGeoff
@ TheGeoff:3Dグラフィックスプログラミングでは、線形代数の理解が必要です。 [3Dコンピュータグラフィックスのベクトル数学のチュートリアル](http://chortle.ccsu.edu/vectorlessons/vectorindex.html)は、ベクトルと行列を学習するための最良のリソースです。また、各セクションの最後には、そのトピックの理解を検証し、密封するためのテスト問題があります。 – legends2k
大部分の線形代数と計算幾何学に関しては、クォータニオンは広範囲に使用され、物理エンジンで作業する場合は数値解析が必要です。
日常的にどのくらい使っているかは、自分が行っていることによって異なります。グラフィックスプログラマで3Dグラフィックスエンジン自体を構築する場合、実際に数学を行うクラスライブラリや関数の実装を実装または維持する可能性が高いため、詳細を知ることは比較的重要です。ライブラリーをクライアントとして使用している場合や、ゲームエンジンの別の部分(AI、オーディオ、UI、カメラなど)で作業している場合は、概念的に理解する必要がありますが、実装方法を知らないあなたの頭の上からホワイトボード上の行列逆行列。
グラフィックスAPIによって、この数値を知る必要はなくなりません。それらは描画に限られているので、シーン管理とワールドシミュレーションはすべてグラフィックスAPIの外部で実装する必要があります。もちろん、ミドルウェアオプションもありますが、多くのスタジオでは独自のシステムを使用しています。
この市場をターゲットにしたリソースはかなりあります。たとえば、アマゾンには3D Math Primer For Graphics and Game Developmentのような書籍があります。オンラインのものもたくさんあります。
線形代数!線形代数がたくさんあります!ここで
あなたがそれらを必要としているだけのクラスと例の状況
- ベクトル - 位置、速度、法線
- マトリックス - 変換
- クォータニオン - 回転(骨のための素晴らしいですアニメーション)
- レイ - 投射物衝突検出
- プレーン - 発射衝突検出
- 錐台から
- 球カリングレンダリング - カリング、衝突試験、空間分割 - カリング、高速衝突試験
- 軸-整列バウンディングボックスをレンダリング
- 指向バウンディングボックス - 衝突テスト
- 凸包 - 彼らはエンジン(グラフィックス、物理学、AI、など)でどこでも使用されるように、あなたはベクトルや行列で始まる必要など衝突、空間分割
ほとんどが動き回り、衝突検出のように見えます。 –
- 1. これらの数学トリグ(3Dゲームの世界)操作を「逆転」する
- 2. iPhone用3DゲームWYSIWYG
- 3. アンドロイド用のネイティブC++ 3d数学/ジオメトリライブラリ?
- 4. Monogameを使用して2Dゲームで3Dサウンドエフェクトを適用する
- 5. 3Dゲームで飛ぶ?
- 6. 単純な数学のゲーム
- 7. JavaScriptと3Dゲーム
- 8. アンドロイドの3Dゲーム
- 9. 数学ゲームでのintの比較PHP
- 10. 数学ベースのゲームを作成する
- 11. 数学ゲームで表現パーサーを使用する必要がありますか?
- 12. Java 3Dゲーム開発
- 13. C++ 3Dゲーム開発
- 14. Android 3Dゲーム、モデル、モデルアニメーション
- 15. Unity 3Dゲームのスプライト
- 16. Unity 3DゲームでChartboost広告が表示されない
- 17. 手動でロードされたゲーム内キャラクターモデルの推奨3Dモデルタイプ?
- 18. 2D/3Dゲーム開発用のQtライブラリ
- 19. wpfゲーム3Dスタジオからの3Dオブジェクト
- 20. Javaで3Dゲームをプログラミングする
- 21. 3Dアナグリフでゲームをレンダリングする方法
- 22. OpenGLの本と3d数学のリファレンス
- 23. 遠方の3Dオブジェクトレンダリング[ゲーム]
- 24. Androidとユニティ3Dゲーム開発
- 25. Unity 3D Sandboxゲームの問題
- 26. 3Dゲームでのストラッピング/サイドステッピングの処理
- 27. 学習C++:エラー:削除された関数の使用
- 28. ユニティ:2Dシャドウ私は世界の3Dで、このゲームを作ってるんだ3Dゲーム
- 29. JLWGLを使用して既存の2Dグリッドベースのゲームを3Dに変換する
- 30. Javascriptタイマーが数学ゲームで間違っています
3Dグラフィックスプログラミングでは、線形代数の適切な理解が必要です。 [3Dコンピュータグラフィックスのベクトル数学のチュートリアル](http://chortle.ccsu.edu/vectorlessons/vectorindex.html)は、ベクトルと行列を学習するための最良のリソースです。また、各セクションの最後には、そのトピックの理解を検証し、密封するためのテスト問題があります。 – legends2k
この質問は、Game DevelopmentやMathなどの他のStack Exchangeサイトのいずれかに移動する必要があります。 (この質問にはプログラミングが含まれているので、それが正しいかどうかは分かりません) – Andreas