3Dグラフィックプログラミングには、次の数学トピックが必要であることを理解しています。私は数学コースでそれらのいくつかを始めました。誰かが私にそれらがどのように適用されるかを説明するリソースの方向に向けることができますか?どのグラフィック/ゲームの問題を解決するために使用されていますか?
- ベクトル数学
- 行列演算
- 四元数
- 線形代数
私が見る限り、これらはすべて線形代数/行列のトピックです。他に必要なトピックはありますか?
3Dグラフィックプログラミングには、次の数学トピックが必要であることを理解しています。私は数学コースでそれらのいくつかを始めました。誰かが私にそれらがどのように適用されるかを説明するリソースの方向に向けることができますか?どのグラフィック/ゲームの問題を解決するために使用されていますか?
私が見る限り、これらはすべて線形代数/行列のトピックです。他に必要なトピックはありますか?
回答:
線形代数は、空間ジオメトリを記述するための数学言語であるという理由だけで、3Dグラフィックスプログラミングの第一の分野です。他の3つのトピックは、実際には線形代数のサブセットにすぎません。
3Dグラフィックスプログラミングに関連する他の数学に関する限り、十分な愛情を得られないことをお勧めするのは計算幾何学です。多くの自然問題は、計算幾何学のトピックに要約されます。
その後、基本的な計算法、特に微分方程式の数値計算法を検討することをお勧めします。これらは3D物理学よりも3Dグラフィックス自体とはあまり関係がありませんが、一般に2つのトピックは非常に密接に結びついています(たとえば、キャラクターアニメーションなどの運動学の単純な問題でも)、両方のいくつかの知識はいずれかの知識を大幅に強化します。グラフィックスが使用するのと同じコア線形代数の知識なしに関連する物理学を動作させることは不可能ではないにしても困難ですが、同時に物理学の知識を持つことはグラフィックスのトピックを理解するための別の参照点を提供します。
http://www.dickbaldwin.com/KjellTutorial/KjellVectorTutorialIndex.htmは、2D / 3Dベクトル数学とグラフィックスプログラミングのアプリケーションに関する非常に優れたわかりやすいチュートリアルです。
デカルト座標に精通している場合、上記のトピックのコンピューターグラフィックスへの適用はかなり明確なはずです。これらのOpenGL用のチュートリアルは、基本的な表示の問題を解決するための数学の適用を明確にするのに役立ちます。たとえば、ワイヤフレームモデルを回転させる方法などです。透視図に関するWikipediaの記事は、少し歴史的な背景に役立つかもしれません。
それ以外にも、数学的定式化の恩恵を受ける多くのディスプレイトピックがあります。たとえば、3Dソリッドは通常、表面の三角形分割によって表されます。観察者が「見る」べき表面の部分のみを表示するには(非表示の表面/ラインアルゴリズム)?特定の光源/方向からオブジェクトを照らす場合、これがどのように遠近法と相互作用して説得力のある表面レンダリングを提供しますか?
それ以外にも、霧や炎のアニメーションなど、あらゆる種類の興味深いモデリングトピックがあります。ただし、トピックのリストが中心になっているように見える座標の変換は、後のすべての進歩の主要な要素です。
Practical Linear AlgebraとFundamentals of Computer Graphicsは、あなたが本などに興味があるなら、あなたが言及するトピック(およびコンピューターグラフィックス内での使用)をカバーする2つの非常に良い本です。
すべてが必要というわけではありません。ベクトル数学はすべて3Dグラフィックス上にあり、ベクトル数学のより細かい点を知らなくてもジオメトリを設定できるかもしれませんが、バンプマップのようなものは本当に難しくなり、物理学に落ち着きます。
四元数は、数学の一部について単に異なる説明を提供するだけでいいかもしれませんが、四元数を使って実行できる計算を説明するには、より一般的な数学で十分なので、必ずしも必要ではありません。
行列数学と線形代数は非常に密接に関連しており、ほとんどの場合、数値の集合に対する線形演算を記述しています。しかし、繰り返しますが、これはベクトルと代数で記述できるいくつかのことを記述する別の方法です。
あなたがそれを単なる基本的な数学の一部とみなすかどうかはわかりませんが、三角法は確かにリストを作成する必要があります。