Das Licht - und Schattenspiel [Frage zu Shadowmaps]

Übersicht BlitzBasic Blitz3D

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

eizdealer

BeitragMo, Dez 22, 2003 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
@Arcanes: Und wenn jetzt ein Berg den Vertex verdeckt? OK - dann wird es nicht beleuchtet. Aber es prallen ja auch Protonen vom Terrain auf andere Teile des Terrains ab. Außerdem sieht das ganze wahrscheinlich ziemlich abgehackt aus - entweder ganz hell oder ganz dunkel.
Ich hab mehr an so etwas wie ein "Sonnenlicht" gedacht.

@DS: Ich brauch ne Selbstillumination (stimmt das Wort in dem Zusammenhang?). Also der Schatten, den es gibt wird nur von dem Terrain auf das Terrain geworfen.

Ich weiß, das ist ein schwieriges Thema. Und ich bin nörgelig Smile

Vielleicht hilft euch das: Ich meine das so, wie TerrainShading beim Blitzterrain. Da gibt es schließlich auch kein Licht in dem Sinne, sondern es sieht einfach nur geil aus Very Happy
Und dann eben zusätzlich die Schatten von den Bergen und so.

Arcanes

BeitragMo, Dez 22, 2003 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Da die Helligkeitsstufen zwischen den einzelnen Vertikeln beim Rendern automatisch interpoliert werden, hast Du also schon sehr fliessende Übergänge! ja okay, ab und zu entstehen unschöne Kanten (aber diese sind eben abhängig von der Vertexanzahl und Meshgrösse).
Eine andere Möglichkeit wäre vielleicht, auch diese Helligkeitsstufe selbstständig zu bestimmen und auch direkt auf die Textur einzuzeichnen. Dauert sicher ewig lange und bestimmt auch nicht ganz einfach umzusetzen, aber zum Vorberechnen vielleicht eine geeigneter Denkansatz?

Aber wahrscheinlich haste schon ne ganze Menge mehr Ahnung von Lightmappen als ich, und warst auf diese Idee auch schon selbst gekommen? Naja, ich beschäftige mich ja erst seit vorgestern damit Wink
tHey pUt mE iN a rOuNd rOom tO diE
User posted image
http://www.myownmalice.de.vu

Arcanes

BeitragMo, Dez 22, 2003 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm... wie das Terrainshading... dann weis ich, was Du meinst.. ja das sieht genial aus, aber - hm - wie coden? *grübel*


[EDIT]
Vielleicht hilft Dir das weiter: http://civilwar.gatech.edu/papers/acsp99/
(bin leider selbst noch nicht zum lesen gekommen, nur überflogen)
tHey pUt mE iN a rOuNd rOom tO diE
User posted image
http://www.myownmalice.de.vu
 

IonPainter

BeitragMo, Dez 22, 2003 23:53
Antworten mit Zitat
Benutzer-Profile anzeigen
hilft das vielleicht

http://www.blitzbasic.com/code...p?code=325

habs grad beim browsen durchs codearchiv entdeckt...

eizdealer

BeitragDi, Dez 23, 2003 1:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich hab jetzt zumindest schonmal rausgefunden, wie das mit dem BlitzTerrain Shading funktioniert: Das ist normales Blitz Lighting, das bei Meshes zwar genauso funktioniert (UpdateNormals wird benötigt), aber dadurch, dass das MeshTerrain sehr viel weniger Polies hat (kein LOD) sieht das ganze relativ hässlich aus.

@IonPainter: Sowas in der Art wäre nützlich, nur dass es nur für BlitzTerrain geht (soweit ich das auf den ersten Blick gesehen habe). Ich schau's mir trotzdem morgen nochmal an.

@Arcanes: Das ist ein harter Brocken! Werd ich mir auch morgen reinziehen.

Danke schonmal soweit.
 

IonPainter

BeitragDi, Dez 23, 2003 13:13
Antworten mit Zitat
Benutzer-Profile anzeigen
also im blitzbasic.com codearchiv gibts nen haufen zeug zu meshterrains... einfach mal under 3d graphics gucken...

eizdealer

BeitragMo, Dez 29, 2003 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Nachdem ich jetzt vom Urlaub zurück bin hab ich mich mal an das Problem gesetzt und folgenden Code geschrieben:

Wie das Ganze vom Prinzip funktioniert: Die Tiles werden in einem Loop abgelaufen, in diesen Loops werden einzelne Punkte abgelaufen. Mit Hilfe einer Sphere ("LightRCV"), die auf das Terrain gesetzt wird per Linepick überprüft, ob die Sonne den Punkt sieht. Wenn ja, dann wird auf der Shadowmap ein weißer Punkt gezeichnet.
Ich weiß, das ganze kann optimiert werden. Aber vorerst würde ich nur gern wissen, ob ihr den Fehler findet. Im Moment wird die komplette Shadowmap weiß gezeichnet.
Und bitte nicht hauen wegen dem Plot Wink

Code: [AUSKLAPPEN]
For XTile = 0 To LevelSize-1
   For ZTile = 0 To LevelSize-1
      For DotX = 0 To 7
         For DotZ = 0 To 7
         
         LightRCV = CreateSphere(8)
         EntityPickMode LightRCV,2
         ScaleEntity LightRCV,.01,.01,.01
         
         XTMP# = XTile - (LevelSize/2) + Float(DotX/8)
         ZTMP# = ZTile - (LevelSize/2) + Float(DotZ/8)
;Berechnet die X und Z Position der Kugel
         
         LinePick(XTMP,20,ZTMP,0,-40,0)
;Per Linepick wird die Höhe der Kugel berechnet

         YTMP# = PickedY()
         
         
         PositionEntity LightRCV,XTMP,YTMP,ZTMP
         
         
         SunX = EntityX(LightRCV)+20
         SunY = EntityY(LightRCV)+11
         SunZ = EntityZ(LightRCV)+20
;Hier wird die Sonne gesetzt (jeweils im gleichen Abstand zur Kugel)
         
         LinePick(SunX,SunY,SunZ,-20,-11,20)
         
         
         If PickedEntity() = LigthRCV Then
            
            SetBuffer TextureBuffer(LightMap)
            
            Color 255,255,255
            Plot XTile*8+DotX,ZTile*8+DotZ
            
            
            
            SetBuffer BackBuffer()
         EndIf
;Wenn die Kugel von der Sonne gepickt wird, wird ein weißer Punkt gezeichnet
         
         FreeEntity LightRCV
         
         Next
      Next
   Next
Next

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group