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

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

1

31.08.2012, 11:16

Die Sonne

Ich mache mir gerade ernsthafte Gedanken darum, wie man eine gut aussehende Sonne realisieren kann. Am einfachsten eigentlich ein Billboard, welches auf festem Abstand zum Beobachter gerendert wird. Dann kann man auch eine "Flugbahn" der Sonne realisieren. Ich habe das einfach mal ganz spontan getestet und es sieht schrecklich aus! Wenn die Welt größer ist als der Abstand zur Sonne verschwindet die Sonne im Boden. Das geht gar nicht. Wie könnte man:
-1. eine gute Sonne darstellen
-und 2. die Sonne unendlich weit weg rendern(like SkyBox).
Ich habe bei dem Rendern des Billboards den Z-Buffer aus gehabt. Hat auch nichts genutzt. Im Anhang ist ein Bild. Die Sonne sieht einfach nicht "Weit weg" aus.
Danke im Voraus.
»FSA« hat folgendes Bild angehängt:
  • Unbenannt.jpg

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

31.08.2012, 11:33

Warum renderst du deine Sonne nicht auf die Skybox selbst? (z.B. per Multitextureing) Wobei da wohl ein Skydome eher zu empfehlen ist um Artefakte an den Würfelkanten zu vermeiden
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

3

31.08.2012, 11:50

Gute Idee! Bin ich noch nicht drauf gekommen. Nur wie bewege ich sie dann? Ich müsste dann mit Texturkoordinaten rechnen :thumbdown:

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

4

31.08.2012, 11:52

Du musst das ganze einfach in der richtigen Reihenfolge rendern. Und du darfst weder den Zbuffer zum Testen benutzen, noch darein schreiben. Also erst die SkyBox rendern, dann die Sonne (mit deaktivierten Z-Test und deaktiviertem Z-Write), dann den ZBuffer aktivieren (Test und Write) und die restliche Szene rendern. So ist die Sonne immer vor dem Himmel, aber immer hinter allem anderen.

Ansonsten: Man kann natürlich die Sonne irgendwie zu animieren versuchen. Cooler ist es aber denke ich, wenn man irgendwelche Blendeffekte einbaut, sobald man direkt in die Sonne schaut. Denn mal ehrlich, zumindest tagsüber sieht man eigentlich nie die Sonne an, weil sie eben viel zu hell ist. Mit entsprechenden Blendeffekten wird es dann nicht nur realistischer, sondern du brauchst auch kein tolles Sprite mehr.
Lieber dumm fragen, als dumm bleiben!

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

5

31.08.2012, 12:11

Du musst das ganze einfach in der richtigen Reihenfolge rendern. Und du darfst weder den Zbuffer zum Testen benutzen, noch darein schreiben. Also erst die SkyBox rendern, dann die Sonne (mit deaktivierten Z-Test und deaktiviertem Z-Write), dann den ZBuffer aktivieren (Test und Write) und die restliche Szene rendern. So ist die Sonne immer vor dem Himmel, aber immer hinter allem anderen.


Wieso rendern eigentlich alle die Skybox vor allem anderen? Wenn die Skybox groß genug ist (oder einfach auf die Farplane projiziert wird), kann diese auf jeden Fall nach dem opaken Pass gerendert werden.
@D13_Dreinig

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

31.08.2012, 12:28

Insbesondere braucht man die Skybox nicht in den DepthBuffer zu schreiben... ;)

7

31.08.2012, 12:39

Du musst das ganze einfach in der richtigen Reihenfolge rendern. Und du darfst weder den Zbuffer zum Testen benutzen, noch darein schreiben. Also erst die SkyBox rendern, dann die Sonne (mit deaktivierten Z-Test und deaktiviertem Z-Write), dann den ZBuffer aktivieren (Test und Write) und die restliche Szene rendern. So ist die Sonne immer vor dem Himmel, aber immer hinter allem anderen.


Wieso rendern eigentlich alle die Skybox vor allem anderen? Wenn die Skybox groß genug ist (oder einfach auf die Farplane projiziert wird), kann diese auf jeden Fall nach dem opaken Pass gerendert werden.

Ja, stimmt natürlich. Man muss sich dann zwar evtl. minimal mehr Gedanken über deren Größe machen, spart aber Füllrate.
Bei Trackmania habe ich auch eine schöne Lösung gesehen: Man rendert einen Skydome, allerdings nicht um die Kamera zentriert sondern einfach sehr sehr groß über der gesamten Szene. Wenn man dann mit seinem Auto fährt, bewegen sich die Wolken ein wenig mit, und der Himmel wirkt etwas plastischer.
Lieber dumm fragen, als dumm bleiben!

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

31.08.2012, 12:49

Über eine Infinite Projection Matrix, kann man sogar einen tatsächlich unendlich weit entfernten Himmel realisieren... ;)

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

9

31.08.2012, 15:55

im Zusammenhang Sonne und einem hübschen Blendeffekt möchte ich einfach mal HDR in den Raum schmeißen (hinter dem Link verbirgt sich die Definition bezüglich der Source Engine)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Werbeanzeige

Ähnliche Themen