Dynamische Beleuchtung

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

wunderkind

Betreff: Dynamische Beleuchtung

BeitragFr, Aug 20, 2004 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie löst ihr das Problem der dynamischen Beleuchtung? Die hardware-seitigen Lichtquellen sind wenig nützlich, da die Qualität von der Auflösung der Modelle abhängt. Unten sind zwei derartige Screenshots. Gerade bei dem niedrig aufgelösten Cube sieht man das Desaster. Ist das Stichwort Lightmaps?

Bin auf eure Ideen gespannt und sehe mich währenddessen auf bb.com um.

user posted image

user posted image
 

OJay

BeitragFr, Aug 20, 2004 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
mit den dx-lights wirst du nicht weit kommen, da da max 8 möglich sind, ja nach grafikkarte.

ausweg: über vertexcolor selbst errechnen. ist auch schneller als die dx lights...allerdings recht aufwändig.

wunderkind

BeitragFr, Aug 20, 2004 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
VertexColor() orientiert sich aber auch an der Auflösung der Modelle. Wenige Vertices = schlechtes Ergebnis. Nichts anderes als die Vertices nutzen macht DirectX mit den hardware-seitigen Lichtquellen übrigens.
 

OJay

BeitragFr, Aug 20, 2004 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, dann kommen nur dynamische lightmaps in frage...das ist definitiv zu langsam mit blitz, da du keinen zugriff auf den Z-Buffer hast (unter anderem)...

Sswift aus dem englischen board hat soweit ich weiß eine solche library geschrieben. allerdings taugt die auch nur was, bei wenigen kleinen objekten.
 

Dreamora

BeitragFr, Aug 20, 2004 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Sswifts lib is für schatten!

für licht kannste nur lightmaps nehmen nur die taugen nix für dynamisch ... einzige möglichkeit wären Lightdecals ... wird allerdings sehr umständlich zu proggen ( so dinger wie der lichtschein von raketen in Q3 oder UT )
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

INpac

BeitragSa, Aug 21, 2004 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Finde das hier ganz nett, allerdings auch nur begrenzt für Spiele einsetzbar Wink

http://www.blitzbasic.com/code...?code=1000
Damit kann man schöne Taschenlampen-Effekte wie in Splinter Cell 2 simulieren Smile

Ka, ob dir das speziell bei deinem Problem hilft - aber wenn du gezielt auf scharfe Beleuchtung setzt, hilft dir das sicherlich.

wunderkind

BeitragSa, Aug 21, 2004 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für den Link. Das sieht doch schon sehr gut aus. Aber gerade in den Ecken und an den Kanrten stimmt die Darstellung nicht.
 

Dreamora

BeitragSa, Aug 21, 2004 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn man diesen Code erweitert, müsste er klappen.
Aber man muss ihn erweitern, da er in einigen, leider häufigen Fällen, zu ziemlichen Problemen führen kann.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Triton

BeitragSa, Aug 21, 2004 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Man könnte hochstens zu den ganzen Models weitere Vertices hinzufügen und somit den (beleuchtungs)detailgrad erhöhen.

Erhöht natürlich auch den Polycount. Daher vermutlich weniger geeignet bei Highpoly Szenen.

Ansonsten könnte ich mir (als 3d laie Rolling Eyes) vorstellen noch spezielle beleuchtungsvertices zu setzen. Diese würden dann gleichmäßig über alle Models gelegt und müssten dann hochoptimiert sein (d.h nahe, sichtbare objekte). Vielleicht auch einfacher machbar mit unsichtbaren zweitmodels die die Form der normalen models haben, nur dichtere Vertices. Das wären dann pure Beleuchtungsmodels die nicht gerendert werden.

Graue Theorie..
 

INpac

BeitragSa, Aug 21, 2004 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Triton hat Folgendes geschrieben:

.... Das wären dann pure Beleuchtungsmodels die nicht gerendert werden.


Aber um sie einzusetzen um Licht darzustellen, MUSS man doch gerade rendern Smile

wunderkind: wo genau willste denn die Lichteffekte einsetzen?

wunderkind

BeitragSa, Aug 21, 2004 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wollte den Effekt nicht konkret einsetzen. Ich habe nur ein wenig Doom gezockt und wollte gern wissen, wie man die Taschenlampe mit B3D nachempfinden kann.
 

Dreamora

BeitragSa, Aug 21, 2004 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn nur du die taschenlampe siehst gibts übrigens noch ne ganz faule methode: einfach nen cone erzeugen, mit der taschenlampenfarbe /textur einfärben und ihn auf Entityblend 3 setzen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

INpac

BeitragSa, Aug 21, 2004 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
bei doom 3 wird auch "viel" mit dot3 gearbeitet - das verstärkt effekte, und smoothen nicht direkt vertices aber eben die schatten

Triton

BeitragSa, Aug 21, 2004 20:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Aber um sie einzusetzen um Licht darzustellen, MUSS man doch gerade rendern


Ja, natürlich, aber nicht so aufwändig wie normale Models bzw wie das normale Rendern. Texturen, Bumpmapping und son Zeug muss ja alles nicht berechnet werden. Benötigt werden nur die Vertices als solche.

Nun ja, ist meine theoretische Überlegung, müsste man erstmal in der Praxis einsetzen..
 

blitzblaster

BeitragMo, Aug 23, 2004 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Dreamora: Hast Du das mal ausprobiert ? Würde da gerne mal ein Screen von sehen. Ich bin jetzt zu faul, um das eben mal kurz zu proggen, aber wenn Du ein Screen davon hättest, wäre ich Dir dankbar. Könnte mir aber vorstellen, das das ein schlechter Fake ist. Aber wer weis...probieren geht über studieren Wink
 

INpac

BeitragMo, Aug 23, 2004 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
zu faul um diese paar Zeilen zu coden?

Diese Art und Weise würd ich nicht empfehlen, da es ganz und gar nicht physikalisch korrekt ist: denn eine Taschenlampe erhellt nur das Gebiet, wo die Lichtstrahlen auftreffen. So. Der Kegel allerdings erhellt alles, was hinter ihm gerendert wurde, also erhellen auch die Polygone, die bei einem Cone zum oberen Vertex führen, was hinten ihnen ist, obwohl sie gar nicht auf die Environment auftreffen, und somit gar nicht erhellen dürften!

Diesen Denkfehler gibt's sogar in HL2, da gabs ma en Video, wo man in einem Raum ist, in den Lichtstrahlen fallen: die lichtsrahlen-meshes erhellten ebenfalls alles hinter sich - total inkorrekt!


Ich würde es immer noch wie in SplinterCell2 machen, und ich sag euch, die haben's in Sachen Lich-Schatten echt drauf Wink : Die volumetrischen Lichtstrahlen, die von einer Taschenlampe abgehen, werden auf dem normalen BlendMode 1 gehalten und nur im Alpha-Wert verändert. Dazu gibt's dann die TextureProject-Methode von weiter oben, die den Lichteinfall simulieren und aufhellen.
 

Dreamora

BeitragMo, Aug 23, 2004 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Solange du nur First Person hast kannst du mit Cone ( vielleicht sogar mit ner Kreisscheibe? ) mit additive blend arbeiten. Sobald du die Szene von der Seite her siehst oder auch Multiplayer, klappt es natürlich nimmer Smile

Dann kommste um Shader oder eine speziell darauf optimierte Engine ( Splinter Cell 1 ) nimmer wirklich rum.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

blitzblaster

BeitragMo, Aug 23, 2004 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
@ INpac: Ja derzeit habe ich halt selbst dafür keine Zeit, jede freie Sekunde erstelle ich GFX für das J & R. Ja ja...so ist das. Aber ich habe mir schon gedacht, das das nur eine halbe Sache werden kann. Aber naja, besser als garnichts. Ich wäre auch sehr froh, wenn man Nebel animieren könnte, dass wäre doch auch was feines, so wie in Silent Hill 2. Man könnte das zwar mit der Partikel Engine von X-Pressive machen, aber dann möchte ich nicht die FPS messen.

Gruß Blitzblaster

imagodespira

BeitragMi, Aug 25, 2004 8:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich habe gestern mal versucht "Specular"-Light zu erzeugen.... Ich muss noch ein wenig herumprobieren aber es funktioniert soweit ganz gut:

1. Lichtquelle setzen, zu beleuchtendes Objekt setzen

2. an der Stelle des Objektes eine CubeMap erzeugen, aber nur die Lichtquelle rendern. alles andere deaktivieren.

3. Cubemap auf as Objekt legen, als multiply oder besser Modulate2x wenn es mehr leuchten soll...

TextureLayer:

1. normalmap (falls man die braucht)
2. Originaltextur (Material) (Multiply)
3. CubeMap (Specular) -> Multiply oder Modulate 2X
4. Drecklayer, hier muss ich noch probieren...

Bei dem Drecklayer ist es so, dass an verschiedenen stellen das Licht nicht zu sehen sein soll und auch ist... also keine Reflektionen.

An die Stelle der Lichtquelle hab ich ein Objekt (Würfel, Kugel) gesetzt damit in der Cubemap auch was drin ist. Der Hintergrund sollte schwarz sein, das Lichtobjekt weiss (schwarz wird unsichtbar, weiss hellt die unteren texturen auf). Ich habe dann die Cubemap weichgezeichnet, damit die Spiegelung besser aussieht.

Im englischen Forum unter "Specular" habe ich eine kurze Beschreibung gefunden, nach der ich das Versucht habe...

Was ich nun noch brauche ist die möglichkeit das auch für Schüsse zu nutzen... Kann man eine Cubemap in Abhängigkeit eines lichtes verschieben? (Ich will keinen 2. Renderpass mit einer 2. Kamera machen....)


Wo finde ich mehr über Lightdecals ... Was ist das genau Wink... Habe mal eine BlitzDemo mit einer Engine gesehen wo das funktionierte.. war auch mit Quellcode.. weiss nur nicht mehr wie die heisst....
 

INpac

BeitragMi, Aug 25, 2004 10:47
Antworten mit Zitat
Benutzer-Profile anzeigen
imagodespira hat Folgendes geschrieben:
Ich habe dann die Cubemap weichgezeichnet, damit die Spiegelung besser aussieht.


Das interssiert mich sehr, wie du die Texture weichgezeichnet hast... gespeichert und nachbearbeitet, und anschließend als Cubemap geladen oder hast du einen Filter für die 6 Faces eines Cubemap?

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group