SingleSurface-PaintSurface Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Typpi

Betreff: SingleSurface-PaintSurface Problem

BeitragMi, Jun 04, 2008 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich versuche gerade mein Grass für mein Spiel zum Laufen zu bringen. Damit dass auch schnell läuft benutze ich SingleSurface. Die Grasshälme sollen aber auch eine Textur verpasst bekommen. Doch wenn ich die Textur lade, und dann das/den/die Surface mit dem Brush "bemale" kommt anstatt einer Textur nur eine dunkle grüne Farbe heraus. Die Textur ist aber nicht nur grün. Ich habe dem Brush auch keine Farbe zugewiesen. Ich habe ihn lediglich mit CreateBrush erstellt und mit BrushTexture die Textur gegeben.
Meine Frage: Muss man ausser den Befehlen LoadTexture, CreateBrush, BrushTexture und PaintSurface noch andere Befehle benutzen, oder muss man für diese Methode der Textur einen bestimmten Modus zuweisen, oder kann es sein, dass es auf diese Art garnicht funktionieren kann?

MFG
Typpi
c2d 6600 Asus Striker Extreme GeForce 8800GTX 2GB ram

ZaP

BeitragMi, Jun 04, 2008 16:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst Texturkoordinaten setzen. VertexTexCoords
Starfare: Worklog, Website (download)
 

Typpi

BeitragMi, Jun 04, 2008 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für den Hinweis. Ich habe damit mal ein bisschen rumgespielt, aber ich verstehe diesen Befehl nicht wirklich. Ein Grasshalm besteht zurzeit noch aus 14 Vertices. Die Position der Textur muss doch aber bei allen 14 Vertices dieselbe sein, oder nicht?
Wenn ja, wie kann man die U und V Koordinate aller Vertices auf die selbe Position bringen?

MFG
Typpi
c2d 6600 Asus Striker Extreme GeForce 8800GTX 2GB ram

The_Nici

BeitragMi, Jun 04, 2008 17:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit VertexU bzw. VertexV beim alten mesh die U bzw. V Koordinate auslesen und dann übernehmen.

Noobody

BeitragMi, Jun 04, 2008 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
@Nici: Hier geht es nicht um das hinzufügen eines bestehenden Meshes zu einer Surface, was du wohl gemeint hast.

Zu Topic: Das mit Singlesurface für Gras ist ja schon mal keine schlechte Idee, aber 14 Vertices für einen Grashalm ist ein ziemlicher Overkill Wink
Meist wird es so gemacht, dass man Rechtecke mit jeweils 4 Vertices am Boden platziert und ihnen eine Textur mit mehreren Grashalmen drauf verpasst.

Wenn ich auf Tehadon verweisen dürfte:
user posted image

Wenn man genauer hinschaut, erkennt man, dass das Gras aus einzelnen Rechtecken besteht.
Die UV - Koordinaten sind dann relativ einfach zu verteilen - ich zitiere aus der OH:
Onlinehilfe hat Folgendes geschrieben:
Die optionalen Koordinaten u# und v# sind für die Verschiebung der Textur gedacht. Dies funktioniert so: Die untere|linke Texturecke hat die Koordinate 0|0. Die obere|rechte Texturecke hat die Koordinate 1|1. Die Koordinate 0.5|0.5 ist dabei folgerichtig mittig auf der Textur.

Die UV - Koordinaten sind dann entweder 1 oder 0, da du mit den Ecken immer am Rand der Textur bist.

Mit deiner Methode, 14 Vertices pro Grashalm zu verteilen, hättest du ziemliche Probleme mit UV, da du dann die UV - Koordinaten selber ausrechnen müsstest, was sich bei komplexeren Gebilden zu einer Qual entwickelt.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun
 

Typpi

BeitragMi, Jun 04, 2008 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

Danke für die Antworten.
14 Vertices sind wohl echt zu viel. Ich kenne das Bild schon, habe damals aber nicht so genau hingeschaut^^ Ich denke die Methode mit 4 Vertices wird auf jeden Fall für mein Spiel reichen.
Meine Fragen sind dann alle geklärt. Danke nochmals für die Hilfe.

MFG
Typpi
c2d 6600 Asus Striker Extreme GeForce 8800GTX 2GB ram

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group