Schatten - leicht gemacht mit VertexColor ?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

onkelz89

Betreff: Schatten - leicht gemacht mit VertexColor ?

BeitragDi, Jun 09, 2009 7:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

hatte folgende Idee:

Meine Bäume bekommen ein schwarzes Sprite welches mit Alpha .5 durchsichtig gemacht wird.
Das auf den Boden gelegt... sieht nicht all zu schlecht aus (angenommen die Sonne kommt von oben)

Jetzt habe ich Büsche... Immer so 20-30 in einem Surface...

Wenn ich die lade prüfe ich mit einer Distance Berechnung ob die Büsche in dem "Schattenradius" sind. Wenn Ja folgendes:

Vertexe einfärben... mit VertexColor - dachte ich mir...

Geht aber nicht. Habe eigentlich alle Daten die ich benötige, nur wird immer das gesammte Mesh mit allen Büschen eingefärbt und dann auch noch falsch.

Benutze EntityFX 2+16 (auf 16 könnte ich notfalls weg lassen)
damit geht gar nichts - ich sehe keine Änderung
Wenn ich FX 32 dazu nehme, sehe ich zwar das die Büsche dunkler werden, allerdings kann man ja dann auch "durchschauen", dass möchte ich nicht.

Codeauszug:
Code: [AUSKLAPPEN]
If CountSurfaces(vege\obj)>0 Then
   SaveZ2=GetSurface(vege\obj,1)
   SaveX2=CountVertices(SaveZ2)
   AddMesh OBJ_Vege1,vege\obj
   SaveY2=CountVertices(SaveZ2)
   For sh.shadow = Each shadow
      If Distance(SaveX,SaveY,SaveY,sh\x,sh\y,sh\z)<(sh\w/2) Then
         For i=SaveX2 To SaveY2
            VertexColor SaveZ2,i,.5,.5,.5
         Next
      EndIf
   Next
Else
   AddMesh OBJ_Vege1,vege\obj
EndIf


sh\w ist der Durchmesser
Bitte nicht die Variabeln beachten (SaveX2,Y2, etc.) werden auch für anderes verwendet...

Was mache ich flasch? Habe auch kein passendes Thema gefunden, wo VertexColor behandelt wird.


Danke im Voraus

Holzchopf

Meisterpacker

BeitragDi, Jun 09, 2009 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Bist du dir sicher, dass du bei Distance zwei mal SaveY einsetzen musst?
Ausserdem prüfst du ja gar nicht jede Vertex-Koordinate einzeln. Du prüfst zwar irgendeine Koordinate (ich seh aber nicht welche) und wenn die im Radius liegt, färbst du jeden Vertex der Surface ein.

mfG
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

onkelz89

BeitragDi, Jun 09, 2009 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
*Boden aufgeh und mich versinken lass*...

Embarassed Embarassed Embarassed

Ehm, das mit dem zwei mal Y wird wahrscheinlich der Fehler sein... Oh Man, alles getestet, hier und da... und dann wieder so ne total dumme Sache Sad

Vielen Dank im Voraus (kann es erst in ca. 2 Stunden testen)

Es werden je 8 Stück geprüft - die 8 letzten beim laden eines Busches
Code: [AUSKLAPPEN]
SaveX2=CountVertices(SaveZ2)
   AddMesh OBJ_Vege1,vege\obj
   SaveY2=CountVertices(SaveZ2)


Dort nehm ich ja die letzten raus... es sind nicht immer 8, sonst könnte ich mir das sparen....

Danke Smile

###
EDIT:

Habe es getestet - Grundproblem ist weg *Juhu* Very Happy

Danke nochmal !!!

Aber was anderes... (werd ich aber im neuen Thread machen hat hiermit rein gar nichts zu tun)

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group