Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:17

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: gluSphere - Sonne- Atmosphäre
BeitragVerfasst: Sa Okt 17, 2009 13:03 
Offline
DGL Member

Registriert: Di Mai 12, 2009 14:32
Beiträge: 24
Hallo an alle,

ich arbeite seit kurzem wieder an einem eingefrorenen Projekt.

Jedenfalls zeigt das Programm ein Planetensystem. In der Mitte ist ein Stern, der mit gluSphere mit einer Textur gezeichnet wird:

Bild

Der Rand des Sterns sieht allersings aber nicht sehr schön aus. Wie kann man es am besten realisieren einen Atmosphären-Effekt um die Sonne zu kreieren?

Meine Idee war, 2 bis 3 weitere gluSpheres mit jeweils größerem Radius um den Stern zu zeichnen und sie jeweils mit einer Transparenz von 30% o. Ä. zu zeichnen.

Code:
  1.  
  2. glColor4f(1,1,1,0.3);
  3. gluSphere(quadric,radius+150,detailgrad,detailgrad);      //Atmosphäre zeichnen
  4.  


Aber die Kugel wird nicht durchsichtig gezeichnet, außerdem gefällt mir dieses Verfahren sowieso nicht so wirklich. Hat jemand eine gute Idee :?:

_________________
--
Christian


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 17, 2009 13:06 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Am einfachsten rendernt man um die Kugel herum einen 2D-Ring der am Schirm ausgerichtet ist, also nicht mit der Kugel mitrotiert. Der innere Ring beginnt dann knapp unter dem Rand der Kugel (Radius*0.9 o.ä.) und geht dann über die Kugel hinaus. Innen fängt man dann mit vollem Alpha und bei der Sonne z.B. Rot an, geht dann nach Aussen hin auf Alpha 0 und evtl. gelb. Dann natürlich Blending an, und man hat eine schöne Atmosphäre rund um die Sonne. So hab ich das bereits in mehreren Projekten gemacht, u.a. auch in meinem aktuellen. Denn Ring kann man dann noch evtl. animieren, um bei einem Objekt wie der Sonne Hitzeflimmern zu simulieren.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 17, 2009 14:32 
Offline
DGL Member

Registriert: Di Mai 12, 2009 14:32
Beiträge: 24
Mit dem Gedanken hab ich auch schon gespielt, ich werd das auch so umsetzen.

Danke für deine Antwort, ich

_________________
--
Christian


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 17, 2009 19:05 
Offline
DGL Member

Registriert: Di Mai 12, 2009 14:32
Beiträge: 24
Hier das Ergebnis:

Bild

sieht schon mal nicht schlecht aus! wenn jemand ideen hat wie man das noch verschönern kann, dann nur her damit

_________________
--
Christian


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 17, 2009 19:37 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Guck mal bei der Nasa nach Bildern von der Sonne.

Wenn du die nimmst wird das schonmal nicht schlecht.

Wenn du etwas grafische Spielerrei willst, kannst du den Verlauf mit sogenannten "Bloom" erreichen:
Du renderst deine Szene erstmal ganz normal.
Dann renderst du all die Objekte, die Strahlen sollen ohne die Nicht-Strahlenden in eine Textur und zwar 3 oder 4mal (zusammenaddieren). Jedesmal um ein paar pixel um die normale Possition versetzt. D.h. das Bild verschwimmt.
Wichtig dabei: Der Tiefenpuffer darf vorher nicht gelöscht werden, muss aber schreibgeschützt werden.

Das Ergebnis blendest du dann zum Schluss über deine Szene.

Als Ergebnis würde dann ein Planet der vor deiner Sonne vorbeizieht an den Rändern von der Sonne überstrahlt.

Ein anderes Bloom-Verfahren (was man benutzt um nicht strahlende Objekte vom (statischen) Hintergrund überstrahlen zu lassen) haben wir im Wiki beschrieben. Da findest du auch Bilder.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Okt 18, 2009 01:44 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Guck mal bei der Nasa nach Bildern von der Sonne.

oder hier: http://planetpixelemporium.com/sun.html

Statt Bloom könnte man auch einen Glow-Effekt nehmen. Mir ist allerdings gerade nicht klar ist was der Unterschied zwischen Bloom und Glow ist. :roll:
Bei Glow rendert man glaube ich die ganze FBO-Textur versetzt und nicht nur die einzelnen Objekte? Der Unterschied würde sich dann bei entfernten Objekten bemerkbar machen.

Lens Flare Effekt könnte man auch noch einbauen.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Okt 18, 2009 11:32 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Die Diskussion um Lansflares hab ich hierhin ausgelagert: viewtopic.php?t=8748

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 15 Queries | GZIP : On ]