グラフィックスAPIの前の3D理論?[閉まっている]


19

私はソフトウェアエンジニアであり、キャリアをゲーム開発に向けたいと考えています。現在、C ++ / DirectXを使用して2Dに関する本を読んでいます。3Dに入ると、正しくやりたいと思うようになります。たとえば、3Dスペースについては何も知りません。したがって、APIだけを学べば、それを知っているかもしれませんが、それを使ってインタラクティブなミニ3Dワールドを開発できるかどうかはわかりません。私は、最新のシェーダーなどで回転木枠を持っているだけで成功したとは思わないでしょう。私の数学スキルは、trig / linear代数までで、まだ大学にいます。もっと数学が来ることを知っています。OpenGL / Direct3Dやその他の提案を取り上げる前に、3D理論の本を読むべきですか?APIが3Dゲーム開発を教えるものではなく、その後失われることを望まないことを知っています。私は非常に本志向なので、そこに提案があればそれでも問題ありません。考えを歓迎します。ありがとう!

回答:


11

他のサイトであなたを否定した後、私は答える義務があると感じます:)

私自身はプロではありませんが、大学で3Dコンピュータグラフィックスコースを受講したことがあり、使用したAPIを理解するのに非常に役立ちました。

特に便利だと感じたもの:

  1. オブジェクトの変換だけでなく、表示変換、透視投影などの変換マトリックスとその機能。これがおそらく最も重要なことです。
  2. 稲妻と影の背後にある理論全体。特にシェーダーに手を出すときに役立ちます。
  3. テクスチャサンプリング、ミップマッピング。
  4. 色彩理論とブレンド技術も役立ちます。

そして、これらは数学的な背景がある限り、主題に関する本を1つか2つ読むだけで取り上げられる主題であると確信しています。


ありがとう。この本を聞いたことがありますか?3D理論を教えているが、3Dソフトウェアのラスタライズにも焦点を当てていると聞きました。何が起こっているのかを理解するのにまだ役立つと思います。 Amazon.com/…–
Phil

1
@Philラスタライズは重要ですが、「tips」という本から始めて「高度な」3D開発者向けの書籍を始めたかどうかはわかりません。
オーク

私は今、ボリューム1を読んでおり、これはボリューム2です。私はそれがあなたをマージすると推測していますが、私はそれを見たことはありません。彼は「上級」と言っていることを知っていますが、ほとんどはそうではないと言っています。リストに載せておきます:)
Phil

1
レイトレーシングも別の興味深いトピックですが、リアルタイムゲームには遅すぎます
ブライアンデニー

@Byran +1。ただし、照明の事前計算に使用されます。
ジョナサン

9

行うことから始めます。そうすれば、知らないことを発見できます。

次に、3D数学に関する優れた本を取り上げます。

「グラフィックスとゲーム開発のための3D Math Primer」をお勧めします

フレッチャー・ダンとイアン・パーベリー。(ワードウェア)

ポイントまで、非常に明確な-C ++コードおよびすべてを使用して。

ポイント、ベクトル、変換などの基本について知ることは非常に重要です。

しかし、それはあなたが飛び込む前にすべてを勉強しなければならないという意味ではありません。:)


3

大学でコンピューターグラフィックス入門クラスを受講しました(1〜2年前)が、コースのウェブサイトはまだ稼働しています。PowerPointのスライドの多くはまだ有用であり、役に立つと思われるかもしれません。トピックは2Dと3Dの両方のグラフィック理論をカバーしています。


2

私はあなたと似たようなボートに乗っています(私は大学で漠然と知っていたものを技術的に再学習していますが)、私の解決策はここの「Good 3D Math Theory Books」の質問で言及された本のいくつかをチェックアウトすることです あなたが本の学習者なら、それはあなたのために行く良い方法かもしれません。特にあなたの大学が実際に良い3Dグラフィックスコースを持っていない場合(私の持っていなかった)。


2

うーん、15年ほど前に最初の3Dゲームを作らなければならなかったとき(それが私の仕事だったので、忍耐に役立ちました)、高校の数学以外に3Dの知識はまったくありませんでした。パズルを解いて読むのが好きな人は、自分でインターネットの助けを借りてそのほとんどを推論できます(comp.graphics.algorithms faq)。私はopenGL聖書とhttp://www.amazon.com/Computer-Graphics-Principles-Practice-2nd/dp/0201848406を読みました(警告oldskool)有効な背景情報を提供します。このようにすると、間違った方法で開始する可能性がありますが、ある時点で、より良い解決策を思いつくか、それにぶつかることになります。2Dの把握が良好であれば、3Dの問題のほとんどを解決できます。一般的なトリガー、ピタゴラス、行列と逆行列/転置(投影用)、ドットとクロスの積、およびemを使用するもの、クォータニオン(emを理解する必要はありません、それらの使用方法を知っている-なしで実行できますが、今日では基本的な語彙の一部です)、遭遇するほとんどの問題を解決できます。あなたが行くにつれて、あなたはより良い方法にぶつかりますが、それらのいくつかは何でも解決できます。最善の方法は、自分の目標の外に目標を設定し、そこに到達するように強制することです。あなたが遭遇する問題は、あなたが学ぶ必要があるものです、そして、ちょっと、あなた


2

Wolfire Gamesのブログには、ゲーム開発者向けの線形代数に関する非常に優れた一連のチュートリアルが最近ありました。

APIの学習を始める前に、その背後にある数学を理解することが本当に重要です。そうでない場合、API呼び出しの順序と目的はあまり意味がありません。最初に数学レベルで彼らが何をしているかを理解する必要があります。


1

Game Institute、特にDirectX 9を使用したグラフィックプログラミングコースに登録することをお勧めします。

自己学習したいだけなら、インタラクティブクラスに参加する必要はありません。

ちなみに、非常に少ない追加料金で印刷された本を入手するオプションもあります。彼らはそれだけの価値があります。

私は数年前に彼らのコースをたくさんやったが、コースは少し古めかしいが本当に良いし、十分に推薦することはできないが、ゲイリー・シモンズは本当にいい人だ。


1

何よりも、何かを作ろうとするだけです。何よりもまず飛び込んでください。さもなければ、理論ではなく実践ではなく専門家になります。

あなたがグラフィックスに本当に情熱を持っていると思うなら、あなたはあなたの人生の大部分で新しい教材を学び続けると想像してください。始める前に必要なものをすべて学べるわけではありません。それだけでは機能しません。

3Dグラフィックスの数学についてますます学ぶにつれて、コンピュータグラフィックスの数学はなく、数学だけがあることに気付くでしょう。自分で数学を教える方法を学びます。その後、新しい技術が文献で紹介されているように、それらを消化できます。

グラフィックス技術が進化するにつれて、さまざまな数学手法を取り入れることになります。今日人気のあるものは明日人気がないかもしれません。

ここに同じものがいくつかあります。

現在、コンピューターサイエンスの幾何学的代数の資料は非常に興味深いと感じており、コンピューターグラフィックスのレイアウトアプローチから始める方が良いと考えています。 http://www.amazon.com/Geometric-Algebra-Computer-Science-Object-Oriented/dp/0123694655

この本では、四元数のようなものをはるかに簡単な方法で説明しており、数学的な背景と興味に応じて役立つかもしれません。


1

「コンピュータグラフィックス」の本を探してはいけません。線形代数から始めましょう-必要なものすべての基礎を築きます。MITには優れたビデオコースがあります:http : //ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2005/

そこから、コンピュータグラフィックスの入門テキストを選択するのは簡単です。UoWashingtonにはオンラインのコースがあります(ビデオはありません):http ://www.cs.washington.edu/education/courses/457/06au/lectures/

せっかちな場合は、線形代数のないグラフィックコースから始めることができますが、あなたに噛み付くように戻ってくると私を信じてください:)


1

従来のソフトウェアレンダリングパイプラインがどのように機能するかを理解したい場合(およびプログラム可能なハードウェアパイプラインを導入しても状況はそれほど変化していません)、私が絶対にお勧めする1冊の本は、ジムブリンの 『グラフィックパイプラインの旅』です。

他のいくつかの提案とは異なり、特に包括的なものではありませんが、非常に読みやすいため、3Dを使い始めたばかりの方には良い入門書だと思います。そして、それはコンピューターグラフィックスの創始者の一人であるジム・ブリンによって書かれており、したがって、実際にこれらの技術を発明/発見した誰かの観点から書かれています。


1

私は大学で数年間グラフィックスコースのTAを務めました。シラバスを設定し、ソフトウェアラスタライズとシェーディング、Java3D、OpenGLなどをカバーしました。その後しばらくして、自分自身の教育のためにレイトレーサーを書くことにしました。これは信じられないほどの経験でした-フレームバッファーとputpixel(x、y、color)ルーチンを使用して、500行で、球、三角形、ピクセルごとのシェーディング、シャドウなどの画像を生成するコードがありました。コースの練習をやり直すと、生徒はレイトレーサーを行うと主張します。ラスタライザを構築するときにスキャンラインアルゴリズムの詳細に簡単に追いつく方法、または3D APIを使用してブラックボックスを操作しているように感じる方法です。

グラフィックサンドボックスにすばやく確実にアクセスするには、独自のレイトレーサーを作成することをお勧めします。明らかに、これはプロダクションのリアルタイム3Dグラフィックスで一般的に使用されるものとはかけ離れていますが、理論を見て学習するための本当に直感的でコンパクトな方法です。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.