Terrain\ Bäume per Alphamap plazieren?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

BananaSalat

Betreff: Terrain\ Bäume per Alphamap plazieren?

BeitragSo, Apr 29, 2007 19:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey Leute

da jetzt mein account wieder funz kann ich euch jetzt wieder mit Fragen löchern Razz

Ich bin grad dabei ein Terrian zu erstellen mit lightmap colormap 2 verschiedenen texen .... funzt alles prima.

Jetzt is bloß das Problem, wie soll ich die Bäume plazieren.

Ich fände es sehr praktisch wenn man eine Alpha map auf das Terrian plazieren könnte wo dann nur dort wo ich sie weiß gemalt habe Bäume wachsen.

Ist das möglich ?

Silver_Knee

BeitragSo, Apr 29, 2007 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Grundgerüst bei einem lod-terrain

erstmal die 2D koordinaten von weißen punkten herausfinden:
texturebuffer
for x=..
for y=..
Wert=readpixel[fast](x,y)
If Wert And $FFFFFF
koordinaten wie folgt verwenden:
Dreisatzt
x3d=x*terrainsize(...)/texturewidth(...)
z3d=y*terrainsize(...)/textureheight(...)
y3d=terrainy(...,x3d,entityy(terrain),z3d)
Mach_Baum_Dahin(x3d,y3d,z3d)
endif
next
next

basiert auf 3-Satz Ich hab nicht die skalierung,position und drehung berücksichtigt
evtl musst du x3d und z3d vertauschen

BananaSalat

BeitragSo, Apr 29, 2007 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
wow nicht schlecht ^^ funzt das gut ? ... naja damit werd ich mich noch stark auseinandersetzen müssen ..

readpixelfast ist mir kein wirklicher begriff...
naja

zieht das sehr an pervormance ?

NightPhoenix

BeitragSo, Apr 29, 2007 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur beim Programmstart, solange es vor der While Schleife steht Wink

Silver_Knee

BeitragSo, Apr 29, 2007 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
muss aber auch nur einmal ausgeführt werden....

bei blitzbase solltest du dir die befehle
LockBuffer
ReadPixel
ReadPixelFast
UnlockBuffer
WritePixel
WritePixelFast
anschauen (http://www.blitzbase.de/menu/2n.htm)

BananaSalat

BeitragSo, Apr 29, 2007 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah supper werd ma schaun was ich damit erreichen kann

Denkt ihr ich sollte die Bäume mit Types machen ? oder per dim ?

NightPhoenix

BeitragSo, Apr 29, 2007 22:05
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du die bäume nie wieder bewegen willst benutze eine for-next schleife (siehe befehl For, bzw. Abschlussbefehl Next)

Blödes Beispiel, hab aber grad nicht mehr Zeit, muss gleich los:

Code: [AUSKLAPPEN]
CopyCube=CreateCube()
tree=Loadmesh("baum.3ds")

dim baum(500)
for i=1 to 500
baum(i)=copymesh tree,copycube
positionentity baum(i),rnd(-100,100),0,rnd(-100,100)

usw.

next

freeentity tree


hab ich jetzt nicht getestet, müste aber funktionieren... dürfte durch copymesh sogar singlesurface sein, ansonsten benutze für SingeSurface noch "AddMesh"

MfG.

Silver_Knee

BeitragMo, Apr 30, 2007 16:55
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn die bäume alle gleich aussehen sollen dürfte copyentity schneller sein

BananaSalat

BeitragMi, Mai 02, 2007 22:35
Antworten mit Zitat
Benutzer-Profile anzeigen
hm scheine noch zu wenig ahnung in diesem gebiet zu haben.

ich vesrtehe z.B. nicht wie ich aus einer bestimmten Textur die Farbe auslesen kann. Also wie ich Readpixelfast auf eine textur anwende.

liest der dann die x und y koordinaten jedes weißen pixels raus oda wie funktioniert das ...

muss die textur die gleiche größe haben wie das terrian .. ich denke shcon oder ?

skey-z

BeitragMi, Mai 02, 2007 23:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir mal folgende seite genauer an:

http://www.blitzbase.de/befehl...elfast.htm

anstatt des Frontbuffers setzt du den TextureBuffer(tex) und wie der Alpha-Wert berechnet wird siehst du auch auf der Seite.

Die Tex für das Terrain sollte natürlich genau so groß sein wie die für die Bäume, ansonsten musst du sie halt skalieren, dass sie aufeinander passen.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

BananaSalat

BeitragMi, Mai 02, 2007 23:38
Antworten mit Zitat
Benutzer-Profile anzeigen
gut suppa danke ^^ hab mir die seite vorher scho 3 mal durchgelesen aber ich glaub ich bin jetzt nen schritt weiter ; ).

Thx

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group