Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Vane Junior JLI'ler
Anmeldedatum: 03.11.2005 Beiträge: 70
Medaillen: Keine
|
Verfasst am: 22.11.2005, 18:39 Titel: Rendern?? |
|
|
Hallo leute, ich habe mir so einige beiträge durchgelesen und finde immer dieses wort rendern, ich habe dazu schon was gelesen, ich habe das nun so verstanden das rendern bedeutet eine durch quellcode erstelte Szene als zwei dimensionales Bild darzustellen?
z.B.: wenn ich eine tile map erstellen will mit den vertex buffern und so, was spielt das rendern dort für eine rolle??? |
|
Nach oben |
|
|
Dr. Best Senior JLI'ler
Alter: 34 Anmeldedatum: 17.06.2004 Beiträge: 269 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 22.11.2005, 18:49 Titel: |
|
|
Rendern bedeutet einfach alles was mit der Ausgabe der Bilddaten zu tuen hat durchzuführen.
Deine Erklärung war also schon nicht falsch bloß ein bisschen zu speziell forumuliert. Rendern kann man auch im Zusammenhang mit 3D-Spielen oder Animationsfilmen sagen.
Bei Spielen geht das für gewöhnlich vom leeren des Backgroundbuffers über die ganzen Draw und Blt aufrufe bis zum flippen.
Man kann natürlich auch mehrmals rendern z.B. kann man bei 3D-Anwendungen in Texturen rendern oder in mehrere viewports (bildschrimabschnitte) rendern um split screen Spiele zu machen.
Diese Definition ist zwar nich grade Lexikonreif aber ich glaub sie bringt's so halbwegs auf den Punkt. _________________
Ich bin da, wer noch? |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 22.11.2005, 18:53 Titel: |
|
|
Hi,
Rendern ist ein sehr verwässterter Begriff in der GFX-Dev-Scene.
Es gibt 2 Unterscheidungen vom Rendern: Das 1. ist das sogenannte Blitten.
Blitten sagt aus, das man ein Datenarray (Linear oder Dimensional) direkt auf den Grafikpuffer ausgibt, welches ebenfalls ein Datenarray repräsentiert. Also die Pixel direkt "per Hand" malen und darstellen. So wird das bei der GDI, DirectDraw, Direct3D (Surfaces!) gehandhabt. Diese Oberflächen nennen sich dort: Surfaces. Mit Blitten kann man "nur" 2D Darstellen.
Das 2. ist das sogenannte Rendern. Heute benutzen viele das Wort "Rendern" nur noch mit dem Gedanken "Anzeigen". Doch das ist falsch. Rendern bedeutet der Prozess der sich auf der Grafikkarte abspielt.
Dort werden die einzellen Eckpunkte eines im 3D Raum existierenden Objekts (Alles Dreiecke) genommen, transformiert und über ein "kompliziertes" Verfahren durch den Rasterlizer gejagt, der daraus die Positionsdaten der Pixel auf dem Bildschirmpuffer erstellt, welche dann noch nachträglich mit Texurdaten (Keine Pixeldaten sondern Texeldaten) versehen werden sowie beleuchtung und andere Effekte, wie z.B. Alphablending.
Kurz kann man sagen: Wenn man eine 2D API benutzt in der Surfaces benutzt werden, redet man vom Blitten, da hier der Rasterlizerprozess entfällt. Wenn man jedoch 3D APIs benutzt wie OpenGL, Direct3D oder andere Softwarerenderer redet man von Rendern. Da hier keine Pixeldaten benutzt werden sondern 3D Vektoren mit Texturen welche für die 3D Vektorengrafik benutzt werden.
Zu deiner 2. Frage: Du hast einen Vertexbuffer welcher NUR die Positionen der Eckpunkte deines Objekts beschreiben. Also sogesehen eine "3D Surface" (Bitte umbedingt platonisch ansehen!!!) aber keine Farbdaten enthalten wie sie z.B. in der Bitmapgrafik enthalten sind. Um beim Renderprozess auch noch Farbe zu bekommen benötigst Du eine Textur welcher deiner Bitmap entspricht, welche dann wie eine Art "Tischdecke" auf deine Oberfläche gelegt wird. Der ganze Kram geht dann an deinen Bildschirm damit du ihn sehen kannst.
Da Du jedoch noch Anfänger bist, würde ich Dir empfehlen erstmal den Weg des Blittens zu gehen (Reine 2D API) um ein tiefgründigeres Verständis für Oberflächen und Darstellung zu bekommen. Erst später mit sowas wie Vektorengrafik beschäftigen
Falls Du ein gutes Tutorial (2D) zum Thema "Wie bastle ich mir mein Game?" suchst: www.germangamedev.de << Tutorials << Funny Break.
Ich empfehle jedoch Stück für Stück die Teile durchzuarbeiten. Denn die bauen alle aufeinander auf.
- Patrick
edit:
Dr. Best
Also extrem Allgemein ausgedrückt Muss ich schon sagen _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
Vane Junior JLI'ler
Anmeldedatum: 03.11.2005 Beiträge: 70
Medaillen: Keine
|
Verfasst am: 24.11.2005, 10:11 Titel: |
|
|
Also meine frage benutzt dan das zweite verfahren??
Nebnbei in meinem Programm verwende ich eine Funktion die blt heißt also blitten? Aber denoch arbeite ich mit den Vertexen, also ein teil von deiner definition aus 1 und aus 2???
Ich habe dieses Tutorial benutzt: http://www.gamedev.net/reference/articles/article1972.asp |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 24.11.2005, 10:57 Titel: |
|
|
vane
Der Typ der das Tutorial geschrieben hat, hat Rendern und Blitten über den Haufen geworfen.
CPP: | void CTexture::Blit (int X, int Y, D3DCOLOR vertexColour, float rotate) | Texturen kann man nicht blitten sondern nur auf Vertices zuweisen, die dann gerendert werden. Surfaces kann man blitten, texturen aber keines wegs.
Bei Dir ist das Rendern und nicht Blitten. _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
Vane Junior JLI'ler
Anmeldedatum: 03.11.2005 Beiträge: 70
Medaillen: Keine
|
Verfasst am: 24.11.2005, 10:59 Titel: |
|
|
Achso also müßte sie nicht Blt() heißen sondern eigentliche Render(), stimmts? |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
Vane Junior JLI'ler
Anmeldedatum: 03.11.2005 Beiträge: 70
Medaillen: Keine
|
Verfasst am: 25.02.2006, 13:59 Titel: |
|
|
Hallo, da bin ich mal wieder, hatte in letzter zeit viel zu tun, wegen der schule, da habe ich mein projekt etwas vernachlässigt....
Also habe ich mir vorgenommen das Projekt heute weiter zu machen, da habe ich mir meine biherigen Leistungen angeschauht...
Zufrieden bin ich ja schon aber ich dachte mir machste mal eine isometrische grafik bloß darin kenne ich mich nicht so gut aus und bisher habe ich auch keine guten hilfen dazu gefunden, da wollte ich hier mal nach fragen ob jemand ein gutes tutorial für ios grafiken kennt....
danke |
|
Nach oben |
|
|
sp3cK-r0LL3 Senior JLI'ler
Alter: 34 Anmeldedatum: 18.06.2004 Beiträge: 275
Medaillen: Keine
|
Verfasst am: 25.02.2006, 22:47 Titel: |
|
|
ist iso ne art 2 dimensionale darstellung von was dreidimensionalem? im buch "rts strategy" war das glaub ich neben den anderen techniken sehr genau beschrieben inkl. code _________________ sex is updatedb; locate; talk; date; cd; strip; look; touch; finger; unzip; uptime; gawk; head; apt-get install condom; mount; fsck; gasp; more; yes; more; umount; apt-get remove --purge condom; make clean; sleep |
|
Nach oben |
|
|
Dr. Best Senior JLI'ler
Alter: 34 Anmeldedatum: 17.06.2004 Beiträge: 269 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 25.02.2006, 23:05 Titel: |
|
|
Kannst dir den Link hier mal anschauen:
http://www.gamemaker.nl/tutorials/threed.zip
Hat zwar nix mit C++ oder DDraw zu tuen aber das Grundprinzip der Isometrik wird da in der *.pdf glaub ich ganz gut beschrieben.
Ist aber auf Englisch. _________________
Ich bin da, wer noch? |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 26.02.2006, 00:19 Titel: |
|
|
also, im prinzip ist das ganz einfach, und man kann sich auch alles selber überlegen^^
Du wirst wahrscheinlich einiges umrechnen müssen, Bildshcirmkoordinaten in Iso koordinaten oder so. Mal dir einfach n Bild auf, und vergleich die Positionen, dann komsmte shcon auf ne Formel. Dann ist es nur noch wichtig die objekte hintereinadner zu rendern, damit net welche von weiter hinten, welche die weiter vorne sind überdecken. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Vane Junior JLI'ler
Anmeldedatum: 03.11.2005 Beiträge: 70
Medaillen: Keine
|
Verfasst am: 26.02.2006, 12:08 Titel: |
|
|
Hallo,
wie meinst du das einzeln rendern und mit dem überdecken?
wenn ich doch ein objekt auf meine iso map rendern möchte dann render ich doch immer ein objekt nach dem anderen...
also erst die hinteren rendern und weiter nach vorne gehen...
oder wie meintest du das?? |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 26.02.2006, 12:22 Titel: |
|
|
Entweder so wie du sagtest oder du benutzt den zBuffer, wobei eine Kombination aus beidem es dir ermöglicht auch komplexere Szenen Fehlerfrei zu rendern. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Vane Junior JLI'ler
Anmeldedatum: 03.11.2005 Beiträge: 70
Medaillen: Keine
|
Verfasst am: 26.02.2006, 15:31 Titel: |
|
|
Was ist ein zBuffer? |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
|