Posten Sie diese Frage hier und nicht SO, da sie für die Spieleentwicklung relevant ist.
Mein Dilemma ist folgendes: Es sind derzeit meine Sommerferien nach meinem ersten Semester bei CompSci und ich habe genug C ++ gelernt, um tatsächlich mit etwas fortgeschritteneren Dingen zu beginnen.
Ich möchte noch nicht mit der Programmierung von Spielen beginnen, bis ich mir selbst lineare Algebra, Trigonometrie usw. beigebracht habe. Ich möchte jedoch die Grundlagen, die Theorie und die Methoden der Spielprogrammierung kennen!
Ich dachte, ich hätte ein paar anständige Bücher in der Universitätsbibliothek, aber sie waren schrecklich veraltet mit Büchern über Spielprogrammierung oder Spiel-Engines oder Spiel / Grafik (Thema hier) von den frühen 90ern bis 2002.
Da ich den volatilen Zustand der Computertechnologie kannte, dachte ich, dass es keine gute Idee ist, Wissen über Spitzentechnologie aus einem zehn Jahre alten Buch zu gewinnen. Amazon selbst lässt mich ahnungslos, welches Buch ich will.
Was ich nicht will: Ein plattformabhängiges Buch. Ich möchte nicht OpenGL, Direct3D oder eine bestimmte API lernen. Ich möchte nur Dinge wie Tessellation wissen, wie die GPU mit Dingen umgeht, was unter der Haube vor sich geht und welche Art von Raytracing- und Radiosity-Methoden es gibt. Die Grundlagen, die Kernkonzepte - solche Dinge.
Ich hoffe das ist klar! Bücher, Ressourcen sind willkommen. Obwohl ich ein Buch einer Website vorziehe!
Antworten:
Diese sind für Spiele keineswegs "erschöpfend", aber sie sind insbesondere für Computergrafiken gute Bücher. Hier also ein Anfang.
Grundlagen der Computergrafik
Peter Shirley, Steve Marschner
Amazon Link (Dritte Ausgabe) | Buch-Website (zweite Ausgabe)
(Quelle: images-amazon.com )
Dieses Buch enthält eine Menge Informationen zu vielen Bereichen der Computergrafik. "Online" -Konzepte (wie Echtzeit) sowie "Offline" (wie globale Beleuchtung) werden ebenso behandelt wie Mathematik, Schattierung, Grafikpipeline, Texturen, Datenstrukturen, Licht- und Farbtheorie, Netzkonzepte usw. Es ist definitiv nicht speziell auf Spiele ausgerichtet, sondern auf Computergrafikkonzepte im Allgemeinen. Das Buch ist nicht in einer bestimmten Programmiersprache geschrieben, sondern in der Sprache der Mathematik.
Echtzeit-Rendering
Tomas Akenine-Möller, Eric Haines, Naty Hoffman
Amazon Link (Dritte Ausgabe) | Buch-Website (dritte Ausgabe)
(Quelle: images-amazon.com )
Dieses Buch richtet sich hauptsächlich an "Online" -Grafikmethoden (in Echtzeit). Es behandelt die Grafik-Pipeline und verwandte Mathematik, Schattierung und Texturierung, Beleuchtung, Bildschirmraumeffekte, NPR, Netze und Kurven sowie einige Beschleunigungstechniken. Das Kapitel über Schnittpunkttestmethoden ist allein die Kosten des Buches wert, da es eine fantastische Referenz zum Testen von Kollisionen zwischen nahezu jeder Art von Begrenzungsvolumen ist, die Sie jemals verwenden möchten. Es wird über Shader gesprochen, wo sie in die Pipeline passen und wofür sie verwendet werden können (was ein wesentliches Wissen in der modernen Grafikarbeit ist), aber Sie konnten die Shader-Programmierung in keiner Sprache aus diesem Buch lernen. Es ist ein allgemeiner Überblick über Echtzeittechniken, kein Programmierbuch. Auch hier ist die in diesem Buch verwendete Sprache Mathematik.
Game Engine-Architektur
Jason Gregory
Amazon Link (Erstausgabe) | Buch-Website (Erstausgabe)
(Quelle: gameenginebook.com )
Ich würde dieses Buch zu Ihrer Liste hinzufügen, wenn Sie sich speziell für Grafiken interessieren, die sich auf Spiele beziehen. Gregory deckt große Game-Engine-Systeme aus einer Sicht von 10.000 Fuß ab und gibt Ihnen gelegentlich Codebeispiele in C ++, um seine Punkte zu veranschaulichen. Meistens gibt es jedoch einen Überblick darüber, was die wichtigsten Engine-Subsysteme sind, wie sie funktionieren, wie sie zusammenpassen und welche Dinge Sie tun sollte beim Entwerfen / Bauen darüber nachdenken. Es werden 3D-Mathematik und eine C ++ - Auffrischung (mit einem besonderen Schwerpunkt auf Spielprogrammierung) sowie Ressourcenmanager, Simulationsschleifen, Eingabegeräte, Debugging-Techniken, Rendering- und Animationsengines, Kollisionen und Starrkörperdynamiken sowie Spielsysteme behandelt. Die einzigen zwei großen Engine-Subsysteme, die in diesem Buch fehlen, sind Audio und Networking. Das ist ehrlich gesagt wegzulassen, da das Buch bereits über 800 Seiten umfasst.
quelle
Wenn Sie an einer Rundreise durch alles Rendering interessiert sind, ist Echtzeit-Rendering die beste Wahl.
In Bezug auf Mathematik gibt es mehrere gute Einführungsbücher, die von der sanfteren 3D-Mathematik-Grundierung für Grafik und Spieleentwicklung bis zur breiteren Mathematik für 3D-Spielprogrammierung und Computergrafik reichen .
Ich kann Game Engine Architecture auch nur empfehlen, wenn Sie an dieser Route interessiert sind. Es ist kein ausführliches Buch zu diesem Thema (und könnte es auch nicht sein), aber es ist eine solide Grundlage für ein breites Themenspektrum. Für einen Anfänger wäre es von unschätzbarem Wert.
quelle