Ist Vertexcolor (alpha) richtig?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

TheProgrammer

Betreff: Ist Vertexcolor (alpha) richtig?

BeitragMi, Jul 27, 2005 23:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

Also ich hab jetzt ma versucht, so'ne tileterrain-engine zu proggen...
Vom Prinzip her weiß ich jetzt, wie das funzen soll. Einige Tris werden
jedoch noch nicht richtig bemalt:

user posted image

Ich erkläre jetzt mal, wie ich das angeordnet hab:


Das Terrain wird aus einer heightmap ausgelesen (bsp. 64x64)
Dieses Terrain besteht aus 2 Mesh's. Der erste Mesh besitzt FX
32+2. Er ist in Surfaces unterteilt.
Ein Surface ist dann immer 4x4 groß. (darauf passt 1 Texture)

Dieses Surface besteht dann aus 25 Vertexpunkten:

user posted image

...wobei die Surfaces von Mesh1 nur die rechte und linke Seite einnehmen...
Genau so:

user posted image

Wenn das Surface rechts daneben eine andere Texture (Brush) hat, werden von Vertex
4, 9, 14 und 19 Alpha auf 0 gesetzt.

Sollte das Surface darunter ein anderes sein, werden von Vertex 20, 21, 22 und 23
Alpha auf 0 gesetzt.

Das Problem besteht in Vertex 24. Egal, ob der Alphawert auf 0 oder 1 ist, gibt es
immer Probleme.




Mesh 2 hat pro Feld 3 Surfaces und besitzt nicht fx 32+2.
Das erste Surface besteht aus Vertex 0,1,2,3,5,6,7,8,10,11,12,13,15,16,17 und 18.
Der Brush ist der Brush vom eigenen Feld.

user posted image

Der zweite Surface besteht aus Vertex 3,4,8,9,13,14,18,19 und 24.
Der Brush ist der Brush vom Feld rechts daneben.

user posted image

Der dritte Surface besteht aus Vertex 15,16,17,18,20,21,22,23 und 24.
Der Brush ist der Brush vom Feld darunter.

user posted image


Ich hoffe, ihr habt diese Erklärung jetzt verstanden und könnt mir helfen.



Mfg
TheProgrammer
aktuelles Projekt: The last day of human being

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Aug 10, 2005 22:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Also das mit den ganzen Vertex, Surface und so habe ich nicht verstanden. Aber wenn du den Rasen hochwachsend am Berg meinst, habe ich vielleicht eine Erklärung dazu. Die 'Highmap' und die 'Texturmap' sind logischer weise um einen halben Pixel verschoben, da die 'Highmap' die Positionen der Punkte angibt und die 'Texturmap' die Positionen der Flächen meben der Punkte.

Mit anderen Worten, die Highmap verändert die Eckpunkte der einzelnen Flächen des Terrains und die Textur die neben liegenden Flächen dazu. Man muß daher bei der Texturmap diese um einen '''halbe''' Pixel versetzen...

Hier mal ein Beispiel, angenommen die Highmap soll an der Stelle wo die Bergspitze ist (1) weiß sein (Farbe: 1) und für Tal (0) schwarz sein (Farbe: 0)

Highmap
0 0 0 0 0 0
0 0 0 1 0 0
0 0 0 0 0 0
0 0 0 0 0 0

Texturmap
0 0 0 0 0 0
0 0 1 1 0 0
0 0 1 1 0 0
0 0 0 0 0 0

Der Pixel vom Berg in der Highmap wurde in der Texturemap nach links, unten, und links unten kopiert.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group