Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

C--

Alter Hase

  • »C--« ist der Autor dieses Themas

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

1

31.03.2010, 19:42

Tutorial oder Buch zum Thema "SoftwareRenderer coden"?

Ich wollte mich mal dem Thema SoftwareRenderer zuwenden, um die Technik hinter GL und DX ein bisschen besser zu verstehen.
Nun interressiert es mich, ob jemand ein gutes Tut oder Buch dazu kennt, in dem Step by Step erklärt, wie so ein SoftwareRenderer funktioniert und wie man einen implementiert.

Vielen Dank im Voraus!

Mfg C--
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

2

31.03.2010, 21:29

http://www.matthiasmaas.de/info_3d.html

Finde den Code aber ziemlich gruselig, weil der Typ versucht DirectX nachzumachen.
Ein Software Renderer ist eigentlich ganz einfach. Du brauchst halt für das Grundlegende Matrizen und Vektoren, eine Linien zeichnen Funktion und du musst wissen, was Polygone und Vertices sind. Natürlich solltest du dich auch noch über Projektion, Kamera, Transformationen, usw. schlau machen. Mit dem Wissen solltest du auch ohne Tutorial einen Software Renderer schreiben können (zumindest ein in Wireframe gerendertes Mesh).

Wenn es auch was kosten und auf Englisch sein darf, würde ich zum Graphics Programming with DirectX9 - Module I von www.gameinstitute.com raten. Das ist wirklich eines der besten Tutorials, die ich je gelesen habe.
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

Nexxtron

Alter Hase

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

3

01.04.2010, 21:16

mal ne frage: was soll ein Software Renderer sein? Ist es sowas wie DirectX oder einfach ne 3D Engine die mit DirectX oder opengl programmiert wurde? ( ersteres geht doch eigentlich gar net oder? )
New Project: Operation CityRacer

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

01.04.2010, 21:41

in der gpu finden die gleichen berechnungen statt die du auch mit deiner cpu ausrechnen kannst. nur das es spezielle schaltkreise sind die fließkommaoperaterationen(besonders multiplikationen und divisionen) wesentlich schneller ausführen können.

die matrize für das umrechnen einer 3d szene auf eine 2d oberfläche soll zwar recht kompliziert sein, trotzdem ist es natürlich möglich das auch auf der cpu zu berechnen.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

C--

Alter Hase

  • »C--« ist der Autor dieses Themas

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

5

01.04.2010, 22:10

Danke für die Tipps, ich werds mir mal angucken :P
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

Tobiking

1x Rätselkönig

  • Private Nachricht senden

6

01.04.2010, 22:29

Die Transformationen und Projektionen sind doch gar nicht das besondere beim Software Renderer. Das braucht man bei DirectX oder OpenGL auch teilweise. Interessant wird es dann bei Rasterizer.
in der gpu finden die gleichen berechnungen statt die du auch mit deiner cpu ausrechnen kannst. nur das es spezielle schaltkreise sind die fließkommaoperaterationen(besonders multiplikationen und divisionen) wesentlich schneller ausführen können.

die matrize für das umrechnen einer 3d szene auf eine 2d oberfläche soll zwar recht kompliziert sein, trotzdem ist es natürlich möglich das auch auf der cpu zu berechnen.
Schneller sind die Operationen auf der Grafikkarte nicht unbedingt. Die Parallelität macht den unterschied. Grafikkarten haben haufenweise Recheneinheiten die gleichzeitig arbeiten. Wenn es z.B. um die Transformation eines Models geht das mehrere tausend Vertizes hat, dann kann jede Einheit ein Vertex übernehmen. Der Rasterizer Vorgang ist ebenfalls gut parallelisierbar.

Sehr interessant ist zurzeit auch die Idee einen Software Renderer zu schreiben, den man dann über Cuda etc. wieder auf der Grafikkarte auszuführen. Da kann man dann mal sehen wie groß der Unterschied zu der normalen Grafikberechnung der Karten ist.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

7

01.04.2010, 22:36

Schneller sind die Operationen auf der Grafikkarte nicht unbedingt. Die Parallelität macht den unterschied. Grafikkarten haben haufenweise Recheneinheiten die gleichzeitig arbeiten. Wenn es z.B. um die Transformation eines Models geht das mehrere tausend Vertizes hat, dann kann jede Einheit ein Vertex übernehmen.


hab ich etwa etwas anderes behauptet?
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

8

02.04.2010, 11:07

mal ne frage: was soll ein Software Renderer sein? Ist es sowas wie DirectX oder einfach ne 3D Engine die mit DirectX oder opengl programmiert wurde? ( ersteres geht doch eigentlich gar net oder? )
Also man kann einen Software Renderer mit OpenGL oder DirectX vergleichen. Die beiden API's führen die Berechnungen auf der Grafikkarte aus. Ein Software Renderer soll allerdings ohne Grafikkarte auskommen und benutzt nur die CPU.
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

C--

Alter Hase

  • »C--« ist der Autor dieses Themas

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

9

02.04.2010, 11:08

Zitat

Interessant wird es dann bei Rasterizer.




Das denke ich auch!
Projektion usw. sind kein Problem!

Btw: falls noch jemand links hat, immer her damit ;)
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

10

02.04.2010, 11:11

Achja, was ich noch sagen wollte, wenn du mit dem ersten Link von mir arbeitest, dann code einfach alles komplett selber während du liest. So habe ich es auch gemacht und hab damit eigentlich was ganz gutes auf die Reihe gekriegt. Denn an sich ist das Tutorial nicht schlecht.
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

Werbeanzeige