Iso Rendering

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Glocke
Beiträge: 332
Registriert: Fr Okt 26, 2012 8:39 am

Re: Iso Rendering

Beitrag von Glocke » Mi Apr 03, 2013 2:54 pm

cloidnerux hat geschrieben:Sowas wollte ich ja mit dem Z-Index realisieren. Man muss sich nicht auf die Z-Achse fixieren, Namen kann man ändern^^
Ich werde es demnächst mal implementieren und gucken, wie es läuft
cloidnerux hat geschrieben:Gibt es den Fall, auf der Treppe zu stehen?
Ja :P

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Iso Rendering

Beitrag von Xin » Mi Apr 03, 2013 3:02 pm

Glocke hat geschrieben:
Xin hat geschrieben:Ich habe einen Kurs für 3D-Grafik gemacht (OpenGL). Wichtigste Aussage: Wir simulieren eine 3D-Welt. Das bedeutet nicht, dass es eine 3D Welt ist - es muss nur so aussehen.
Schon richtig. Allerdings bedeutet das im Umkehrschluss, dass meine Figuren auch nicht breiter als MAX_TILE_WIDTH sein dürfen :?
Nein. Wenn eine Treppe aus vier Vierteltreppen bestehen kann, dann kann ein Held auch aus vier Viertelhelden bestehen...
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Glocke
Beiträge: 332
Registriert: Fr Okt 26, 2012 8:39 am

Re: Iso Rendering

Beitrag von Glocke » Mi Apr 03, 2013 3:06 pm

Xin hat geschrieben:Nein. Wenn eine Treppe aus vier Vierteltreppen bestehen kann, dann kann ein Held auch aus vier Viertelhelden bestehen...
Ich glaub da mach ich mich eher mit dem Organisieren der Hälften kaputt. Und wenn ein Held dann nicht mittig auf einer Kachel steht sondern an der linke Kante, dann wird's lustig :shock:

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Iso Rendering

Beitrag von Xin » Mi Apr 03, 2013 3:22 pm

Glocke hat geschrieben:
Xin hat geschrieben:Nein. Wenn eine Treppe aus vier Vierteltreppen bestehen kann, dann kann ein Held auch aus vier Viertelhelden bestehen...
Ich glaub da mach ich mich eher mit dem Organisieren der Hälften kaputt. Und wenn ein Held dann nicht mittig auf einer Kachel steht sondern an der linke Kante, dann wird's lustig :shock:
Du kannst den Helden ja beliebig auf Deine Heldenviertel verteilen. Aber Du weißt genau, auf welchen Kacheln Dein Held sich befindet, Du kannst also klare Abfragen machen.
Ansonsten hast Du das selbe Spiel wie mit der Treppe bei den Figuren. Eine Figur, die 4 Kacheln belegt, schneidet sich mit einem Baum - oder idealerweise mit einer Treppe, wobei die Kacheln, die zum Vergleich herangezogen werden, sich nichtmals berühren. Das könnte lustig werden. ^^

Wie sieht's aus mit Pferden? Die sind länger als breit. Welche Kachel ist maßgeblich?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Glocke
Beiträge: 332
Registriert: Fr Okt 26, 2012 8:39 am

Re: Iso Rendering

Beitrag von Glocke » Mi Apr 03, 2013 7:02 pm

Das zeilenweise Sortieren fällt schonmal als Lösung weg :? Das hilft nur, wenn die Spielfigur auf der gleichen Horizontalen steht wie die "Standposition" der Treppe. Steht die Figur eine Zeile drüber, wird sie von der Treppe verdeckt, obwohl sie es nicht sein dürfte.

Die Methode über Zerlegung (erinnert irgendwie an Riemann ^^) muss ich nochmal durchdenken. Also ihr wollt, dass ich die Treppe mt Breite W beim Rendern in N Teile zerlege, die alle nicht breiter als TILE_WIDTH sind.

Derzeit habe ich jener Kachel, auf der das Objekt steht, einen Zeiger auf das Objekt gegeben. Eben diese Liste von Zeigern verwende ich zum Zeichnen. Nach der Streifen-/Zerlegungs-Methode müsste ich jeder Kachel den entsprechenden Streifen zuordnen, oder? D.h. ich Zerlege das Objekt - sobald es auf die Karte kommt und einer Kachel zugeordnet werden würde - entsprechend TILE_WIDTH in N Streifen und ordne den entsprechenden Kacheln die Streifen zu.

Wenn meine Treppe bislang auf der Kachel <10,10> stand und jeweils nach links und rechts zwei Kacheln überlappt, bekommen die Kacheln <10,9>, <10,8>, <9,10> und <8,10> einen Streifen zugeordnet.

Entspricht das erstmal dem was ihr meint?

Glocke
Beiträge: 332
Registriert: Fr Okt 26, 2012 8:39 am

Re: Iso Rendering

Beitrag von Glocke » Do Apr 04, 2013 9:00 am

Problem gelöst / abgeschwächt:

Als Bezugskachel hatte ich bisher die unterste Verwendet. Nun habe ich für alle Objekte (ich beschreibe sie in INI-Dateien) einen y-Offset hinzugefügt. Um diesen verschiebt sich die Bezugskachel in y-Richtung. D.h. meine Bezugskachel kann ich auf die "Mitte" der Objekt-Grundfläche verschieben. Setze ich das Offset so, dass die Bezugskachel an der Stelle ist, wo die Unterscheidung "vor oder hinter dem Objekt" optisch stattfindet, verschwindet das Problem erstmal.

Das fiel mir irgendwie beim Aufwachen ein :D Hier eine kleine Skizze dazu:
solution.jpg
Implementiert habe ich es - und es scheint zu funktionieren :mrgreen:
Das funktioniert prinzipiell aber erstmal nur für Objekte mit quadratischer Grundfläche. Für Pferde oder so gibt's nen Problem :D

LG Glocke
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Iso Rendering

Beitrag von Xin » Do Apr 04, 2013 9:15 am

Glocke hat geschrieben:Problem gelöst / abgeschwächt:

Das funktioniert prinzipiell aber erstmal nur für Objekte mit quadratischer Grundfläche. Für Pferde oder so gibt's nen Problem :D
Das ist vollkommen okay, wenn's funktioniert. Wie ich schon schrieb: Die Aufbereitung der Grafik muss nicht richtig sein, sondern sie muss nur richtig aussehen. Ansonsten sind alle Tricks erlaubt.

Aber es ist in dem Fall eben Symptombekämpfung: Im weiteren Verlauf der Entwicklung kann die derzeitige Lösung wieder hinfällig werden. Was als Übergang aber auch nicht ungewöhnlich ist. Schauen wir mal, ob der Thread in einem halben Jahr wiederbelebt wird. :-D
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Glocke
Beiträge: 332
Registriert: Fr Okt 26, 2012 8:39 am

Re: Iso Rendering

Beitrag von Glocke » Do Apr 04, 2013 9:20 am

Ich denke ich werde mit der Lösung für "quadratische Objekte" eine Weile auskommen - zumindest hoffe ich das :D
Xin hat geschrieben:Schauen wir mal, ob der Thread in einem halben Jahr wiederbelebt wird. :-D
*Brotkrumen verteil damit ich den Thread wiederfinde* :lol:

Antworten