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

Aktuelle Zeit: Fr Jul 18, 2025 08:47

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



Ein neues Thema erstellen Auf das Thema antworten  [ 34 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 25, 2005 13:55 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
@Flash: Vorberechnen? Meinst du Lightmaps??

@red: Das mit dem Blending klingt gut, aber ich bezweifel, dass das funktionieren wird. Nur so ein Gefühl. Kann aber auch gut sein, dass es funktioniert. Ich hab's nicht so mit Blending ;)

@Grizzly: Um das Beispiel mit Splinter Cell nochmal aufzugreifen: Es gibt dort Städt, in denen man an geschlossenen Geschäften vorbeikommt. Dort sind dann die Rollläden vor dem Schaufenster herabgelassen. Manchmal brennt in diesen Geschäften aber noch Licht. Wenn man da dran vorbei läuft, sieht man die ganzen Lichtpunkte, die durch den Rollladen dringen. Und da die sich dynamisch um den Spieler legen, nehme ich an, dass es projezierte Texturen sind.
Auch wenn das jetzt eher Licht ist, so sollte das für Schatten doch durchaus auch anwendbar sein.

Ich denke mal, dass Stencilschatten vielleicht ein bisschen so wären wie wenn man mit Kanonen auf Spatzen schießt.
Erwägenswert wäre höchstens noch Shadowmapping. Aber bei der Menge an Gras...

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 26, 2005 15:51 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du kannst die Schatten bei so Projektiven Sachen (z.B. Tiefentextur bei ShadowMapping) ja einmal am Anfang berechnen und dann immer wieder nehmen. Gesetzt dem Fall deine Welt ist statisch.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 26, 2005 17:07 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Ich wusste zwar, dass das mit Lightmaps geht, aber dass man OpenGL auch anweisen kann, projezierte Texturen nicht jedesmal neu zu berechnen, ist mir neu. Man lernt auch nie aus ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 26, 2005 20:40 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Öhm....ich wei0 jetzt gerade nicht ob wir vom selben reden.

Bei den ShadowMaps wird doch ein Auszug aus dem Tiefenpuffer verwendet, um damit Schatten zu berechnen. Das erstellen dieses Auszugs kann man natürlich bei festen Szenen nur einmal machen.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 26, 2005 21:51 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Die Lightmaps die ich meine: http://wiki.delphigl.com/index.php/Lightmaps
Das Shadow-Maping, von dem ich rede: http://wiki.delphigl.com/index.php/Projezierte_Shadowmaps
Projezierte Texturen allgemein: Siehe http://www.delphigl.de/opengl.html:
Zitat:
Texturenprojektion
Bei der Texturenprojektion werden OpenGLs Fähigkeiten zur automatischen Generierung von Texturkoordinaten dazu genutzt, eine Textur auf eine Szene zu projezieren.Diese legt sich dann wie man es bei einem Projektor beobachten kann auf die im Lichtkegel des Projektors befindlichen Objekte.Somit lassen sich leicht und mit wenigen Zeilen Quellcode Effekte wie z.B. Suchscheinwerfer oder Taschenlampen sehr realistisch darstellen.

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 26, 2005 23:42 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Gut dann reden wir vom selben. Denn der Schritt "1. Tiefenpuffer-Inhalt der Szene vom Blickpunkt der Lichtquelle aus in eine Textur rendern" muss ja nur einmal gemacht werden. Die erstellte Textur kannst du dann speichern. Das spart Zeit.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 27, 2005 14:38 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Zitat:
Bei den ShadowMaps wird doch ein Auszug aus dem Tiefenpuffer verwendet, um damit Schatten zu berechnen.
Das erstellen dieses Auszugs kann man natürlich bei festen Szenen nur einmal machen.

Dieses "kann man nur einmal machen" hat mich etwas verwirrt. Sollte doch eher heißen: "muss man nur einmal machen" ;)
Dumm ist nur, dass diese Shadow-Maps entweder Schwarz oder Weiß sind. Auf den Screenshots hier ist der Schatten der Bäume jedoch nicht nur zweifarbig. Und ich denke mal, dass sich Graustufen-Schatten da besser machen würden. ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 27, 2005 15:35 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nein Nein...die Funktionsweise ist anders. Die Shadowmaps werden nicht benutzt um Sie irgendwo drauf zu blenden. Sie dienen nur einem Vergleich um rauszufinden, ob ein Punkt beleuchtet wird oder nicht.

Das ganze verfahren läuft wie im Wiki beschrieben in 3 Stufen ab. Beim ersten rendern erzeugst du die Tiefentextur. Die is wie du sagtest nur SchwarzWeiß.
Beim nächsten durchgang renderst du die komplette Szene nur mit ambienten Licht. Also entweder Diffus und Specular auf 0 setzen, oder besser noch Licht aus und mittels glColor die ambiente Farbe mit den Farben in der Szene multipliziert nehmen. (geht schneller).

Wenn du dir jetzt die Szene ausgeben lassen würdest, liegt alles gleichmäßig im Schatten. Is natürlich net so schick, aber die Schatten sind Farbig, nicht einfarbig. Denn die eigentliche Farbe wird berücksichtigt.

Jetzt machst du das Licht wieder an, und zeichnest über einen Tiefenvergleich nur die Elemente nochmal, welche auch in der Tiefentextur stehen. Denn alles was in der Tiefentextur steht, wird auch vom Licht angestrahlt.

Das Endprodukt gibst du dann aus.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 11, 2005 20:28 
Offline
DGL Member
Benutzeravatar

Registriert: So Apr 10, 2005 14:08
Beiträge: 15
red hat geschrieben:
ich denke die idee mit dem blending eignet sich recht gut für diese art von rendering. Du müsstest lediglich die Objekte nach Höhe sortieren (Boden, Gras, Pilze, Bäume), und dann von jedem Objekt zuerst einmal den Schatten zeichnen, danach das Objekt an sich. Je nachdem solltest du warhscheinlich GL_DEPTH_TEST beim schatten-zeichnen ausmachen, damit sich dieser auch über die davor gezeichneten objekte legt. ich glaube so könnte es klappen ;)


Also, vielen Dank, es hat tatsächlich so geklappt!!
Sieht fantastisch aus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 11, 2005 21:27 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Elladan hat geschrieben:
red hat geschrieben:
ich denke die idee mit dem blending eignet sich recht gut für diese art von rendering. Du müsstest lediglich die Objekte nach Höhe sortieren (Boden, Gras, Pilze, Bäume), und dann von jedem Objekt zuerst einmal den Schatten zeichnen, danach das Objekt an sich. Je nachdem solltest du warhscheinlich GL_DEPTH_TEST beim schatten-zeichnen ausmachen, damit sich dieser auch über die davor gezeichneten objekte legt. ich glaube so könnte es klappen ;)


Also, vielen Dank, es hat tatsächlich so geklappt!!
Sieht fantastisch aus!


Dann zeig doch mal ein Bild!

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 11, 2005 23:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Feb 24, 2003 18:19
Beiträge: 165
Wohnort: Cologne
cool :D ein screenshot wär natürlich was feines ;)


.. nur so interessehalber, ist der schatten mit oder ohne GL_Depth_Test? :roll:

_________________
www.omfg.biz - aktuelles projekt


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 12, 2005 16:56 
Offline
DGL Member
Benutzeravatar

Registriert: So Apr 10, 2005 14:08
Beiträge: 15
red hat geschrieben:
cool :D ein screenshot wär natürlich was feines ;)


.. nur so interessehalber, ist der schatten mit oder ohne GL_Depth_Test? :roll:


Ups, ja, sorry, ein Screenshot kommt sofort!
Ist ohne GL_Depth_Test, dachte das wäre klar, sorry.
Ich habe im moment noch das Problem, dass meine Karte gekachelt ist.
Sie ist somit komplett frei durchgehend, hat aber den Nachteil, dass für die Schatten ohne gl_depth_test Grafikfehler auftreten.

Bild
Bild
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 12, 2005 19:00 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Naja, so gut sehen die Schatten jetzt nicht aus, mein geübtes Auge sieht dort eindeutig das die Schatten drübergelegt sind.

Falls du viel Zeit hast, kannst du ja versuchen >>dieses<< Tutorial für OpenGL anzuwenden!

Deine Grafikfehler sind keine Grafikfehler denke ich sondern sind nur ein Ergebniss dessen, das der Schatten einfach drübergelegt wurde!

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 13, 2005 02:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Feb 24, 2003 18:19
Beiträge: 165
Wohnort: Cologne
Speedmaster, diese Schatten-Techniken auf eine Sprite-Engine zu übertragen ist, jedenfalls behaupte ich das jetzt einfach mal ;) , so gut wie unmöglich. wie schon angedeutet, wird hier mit sprites gearbeitet und nicht mit 3d-Models - und das macht es momentan so gut wie unmöglich, in Echtzeit eine adequate Schattenprojektion durchzuführen. Bei sowas muss man eben tricksen ;)

Elladan, kann es sein dass der Schatten von dem Baum (siehe Screenshot 91.jpg) einfach nur ein bisschen weiter runter "auf den Boden" muss? sieht irgendwie danach aus, ka ich hab sowas noch nie gemacht... ich glaub ja nicht dass du das ziel anstrebst möglichst realistisch zu sein ;) deswegen würde ich dir empfehlen einfach ein bisschen zu experimentieren. z.b. könntest du noch eine seperate Textur für den Schatten machen, da deine Sprite-Bäume EIGENTLICH einen anderen Schatten werfen sollten :twisted: ... du kannst dann den schatten noch weichzeichnen und/oder gegen ende hin verblassen lassen, gibt da wirklich viele möglichkeiten...

_________________
www.omfg.biz - aktuelles projekt


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 13, 2005 09:37 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Diese Schattentechnik von GameDev hierher zu portieren, ist wohl der berühmt Schuss mit einer Kanone auf einen Spatzen ;)
Zumal für so ein kleines Projekt ein D3D-Port nach OpenGL doch ein klein wenige irrsinnig erscheint. Trotzdem ein netter Link ;).

@red: Ich hab sowas zwar auch noch nie gemacht, aber ich glaube, die Schatten stimmen schon so. Sie fangen beim Baum an und das Schweben über dem Boden ist nunmal ein Nebeneffekt mit eurer Technik. Das kommt durch den deaktivierten Depth-Buffer ;).

Was mich mal interessiert ist: Wie schaut das aus, wenn man die Szene jetzt aus einem ähnlichen Blickwinkel betrtachtet, wie bei den ersten Screenshots? Du hast uns ja in den letzten Shots Nahaufnahmen präsentiert. Aber wie schaut das als Ganzes aus?

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 34 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 15 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.009s | 16 Queries | GZIP : On ]