PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeitaufwand für 3D-Grundlagen



paul.muad.dib
19-08-2004, 21:55
Ich wollte mich in den Semesterferien mal ein bischen mit 3d-Grafik beschäftigen, frage mich aber, wie viel Zeit ich in etwa einrechnen muss.

Dabei möchte ich keine API verwenden, sondern das ganze Softwaremäßig ablaufen lassen. D.h., ich müsste erst mal die mathematisch Grundlagen davon lernen und dann das ganze coden.

Ziel wäre es z.B. eine Figur wie etwa einen Tetraeder oder ähnliches, um den ich als Betrachter herumfliegen kann.
Evtl. noch mit Lichtquelle oder Texturen.

Bevor ich mich jetzt darauf stürze, wollte ich mal fragen, wie viel Zeit ich dafür etwa investieren müsste.
Vielleicht weiß auch jemand ein gutes Tutorial, bislang habe ich nur welche gefunden, wo APIs verwendet wurden.

An Vorwissen habe ich meine Oberstufen-Kenntnisse in analytischer Geometrie, d.h., ich weiß was ein Vektor ist, wie eine Ebenengleichung aussieht, oder wie man die raltive Lage zweier Geraden/Ebenen bestimmt.

d.j.peters
07-09-2004, 03:55
hallo paul?
habe auch mal bei 0 mit 3D Programmierung angefangen. In einem anderem posting von Dir konnte ich ersehen das Du BASIC kannst und auf C++ gerade umsteigst. Damit ich alles am besten verstehe habe ich auch keine API verwenden wollen. Spätestens wenn du ein fertig gerendertes Bild (Frame) im Speicher hast mußt Du diesen Speicherbereich in den sichbaren Monitor (Fullscreen) oder Fenster kopieren und spätestens dann benötigst Du doch eine API (Windows/Linux).

Also die Mathe (Matrixmultiplikation) an sich (Rotation, Translation, 3D nach 2D) hast Du mit Vorkenntnissen schon nach kurzer Zeit fertig aber das Texturien von Polygonen (Perspektivisch korrekt) ohne jede API ist schon recht aufwendig. Ich hatte mir mal so etwas zuerst in BASIC geschrieben (flat, gouraud, phong, shadow, mipmapping etc.) als diese Mamutfunktion fertig war und vor allem fehlerfrei lief war die berechnung so langsam wie ein Raytracer. Erst nach dem ich das Teil in einem hartem Monat in optimiertem Assemblercode geschrieben hatte konnte man damit auch größere Objekte (viele Polygone) in echtzeit (>24 Frames pro Sekunde) rendern.

Wenn Du nach 3D +programmierung +tutorial googelst dann findest Du mitlerweile Berge an Quellcodes und guten Erklärungen.

Selbst wenn Du fertige API's benutzt (Direct3D,MESA,OPENGL ...) bleibt noch genügend Platz um Deine Kreativität beim Programmieren und Verstehen einzubringen.

Ich selber schreibe nun schon 1,5 Jahre GameBasm und portiere den ganzen Kram (Assembler) nach Linux damit da auch z.B. 'gute' BASIC Leute eine größere Flut an Linux Spielen auslösen. (träum)

Also wenn Du deine semesterfreie Zeit nicht nur vor der Kiste sitzen möchtest dann schau Dir ruhig mal fertige API's an (und dessen Quellcode). Allein die Zeit die Du brauchst um die API und dessen vielfältigen Möglichkeiten zu erfassen solltest du nicht unterschätzen. Kann aber den Drang es selbst von Anfang an hin zu bekommen nachvollziehen ;-)

In diesem Sinne eine schöne Zeit mit dem 3D Projekt.

Joshy