Terrain\ Bäume per Alphamap plazieren?
Übersicht

![]() |
BananaSalatBetreff: Terrain\ Bäume per Alphamap plazieren? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Leute
da jetzt mein account wieder funz kann ich euch jetzt wieder mit Fragen löchern ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nur beim Programmstart, solange es vor der While Schleife steht ![]() |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ah supper werd ma schaun was ich damit erreichen kann
Denkt ihr ich sollte die Bäume mit Types machen ? oder per dim ? |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn die bäume alle gleich aussehen sollen dürfte copyentity schneller sein | ||
![]() |
BananaSalat |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() |
BananaSalat |
![]() Antworten mit Zitat ![]() |
---|---|---|
gut suppa danke ^^ hab mir die seite vorher scho 3 mal durchgelesen aber ich glaub ich bin jetzt nen schritt weiter ; ).
Thx |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group