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

11

17.02.2013, 16:37

Und die Planeten sind in der Sonne? Ich glaube da läuft was falsch. Wenn das doch richtig ist, dann, wie David schon gesagt hat, einfach Z-Buffer aus, Kugel rendern, Z-Buffer wieder an und den Würfel rendern.
Mit dem derzeitigen System ist das schon richtig so, das ist mir bewusst.
Z-Buffer in Unity raus nehmen liegt wohl nicht im Bereich des möglichen.

Aber ich habe gelesen mit Shadern komme ich zum gleichen Ergebnis.
Hat das schonmal jemand von euch gemacht?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

12

17.02.2013, 17:45

Z-Buffer in Unity raus nehmen liegt wohl nicht im Bereich des möglichen.

Na klar doch, das geht ganz einfach.
Siehe: http://docs.unity3d.com/Documentation/Co…llAndDepth.html
Da gibt's ZWrite und ZTest.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

13

17.02.2013, 18:29

Ändert aber nichts an dem Problem, dass auch die Polygone sortiert werden müssten, wenn man den Z-Buffer abschaltet.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

14

17.02.2013, 19:09

Also auf die Gefahr hin das jetzt falsch verstanden zu haben. Aber möchtest du die Größenverhältnisse beibehalten, und deswegen ist das Objekt in der Kugel? Eventuell suchst du ja nach einer anderen Projektionsart (In dem Fall evtl. Orthogonal).

Orthogonalprojektion
:love: := Go;

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

15

17.02.2013, 19:44

Ändert aber nichts an dem Problem, dass auch die Polygone sortiert werden müssten, wenn man den Z-Buffer abschaltet.

Für konvexe Objekte reicht Backface Culling. Und die Objekte, die er hier gezeigt hat, waren konvex.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

16

17.02.2013, 20:20

Hmm, auch wieder wahr.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

17

18.02.2013, 00:38

Das Problem ist, dass du irgendetwas erreichen willst und dir überlegt hast, wie das gehen könnte, das jetzt aber nicht umsetzen kannst. Aber das Problem ist nicht die Umsetzung, sondern der Ansatz, mit einem anderen kämst du viel leichter und logischer zum selben Ergebnis.
Lieber dumm fragen, als dumm bleiben!

18

18.02.2013, 09:01

Das Problem ist, dass du irgendetwas erreichen willst und dir überlegt hast, wie das gehen könnte, das jetzt aber nicht umsetzen kannst. Aber das Problem ist nicht die Umsetzung, sondern der Ansatz, mit einem anderen kämst du viel leichter und logischer zum selben Ergebnis.
Ich lausche ^^

19

18.02.2013, 13:55

Haha, erwischt. Also mal kurz überlegen.


Also dein Problem ist, dass du diese riesigen Dimensionen hast und deshalb in verschiedenen Koordinatensystemen arbeitest, damit die Genauigkeit nicht vollends flöten geht. Da muss ich sagen, dass dein Ansatz dann doch eigentlich total sinnvoll ist, es hörte sich halt nur extrem komisch an.
Statt also die Sonne extrem groß und extrem weit weg zu zeichnen, kann sie auch einfach kleiner und näher dran sein, dann hat man nicht so große Zahlen, bekommt aber (wenn mans richtig macht) genau das selbe Bild. Das Problem sind ja jetzt nur noch die Z-Werte. Dafür gibt es aber Techniken, die ich gerade unter keinen Stichwort finde, aber im Grunde genommen funktioniert es so:
Du weißt, dass z.B. die Sonne und alles was in ihrer Nähe ist (Sonnenstürme oder so) viel weiter hinten liegen, als sämtliche Planeten, also kann sich da untereinander nichts mehr überschneiden. Das sind die Ebenen, von denen du vermutlich im ersten Post gesprochen hast. Nun würdest du einfach die Sonnen Zeichnen und den Z-Buffer leeren, alles was du danach zeichnest wird die Sonne garantiert überdecken. Du hast also mehrere Ebenen in deiner Szene und zeichnest die von hinten nach vorne und nach jeder Ebene leerst du den Z-Buffer. Die Ebenen dürfen sich jetzt halt nie irgendwie überschneiden, aber ich denke, davon wirst du ausgehen können.
Lieber dumm fragen, als dumm bleiben!

20

11.03.2013, 17:57

Ich habe mich letzte Woche nochmal damit beschäftigt, und bin durch euch zu einem zufriedenstellenden Ergebnis gekommen. ;)

Lösung mit Unity:
Im Shader jener Objekte die an der Grenze liegen den ZBuffer mittels „ZWrite Off“ ausschalten.
Nun muss im Code definiert werden in welcher Reihenfolge die Objekte gezeichnet werden, das kann dadurch erreicht werden, dass folgende Codezeile gesetzt wird:

C#-Quelltext

1
gameObject.renderer.material.renderQueue =


Vielen Dank für eure Hilfe!

Jetzt wird weiter gewerkelt. ^^

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Dragonfly« (11.03.2013, 18:04)


Werbeanzeige