in einer Textur herum malen etc (buffer ?, texture ?)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

AnniXa

Betreff: in einer Textur herum malen etc (buffer ?, texture ?)

BeitragSa, Jan 31, 2009 0:58
Antworten mit Zitat
Benutzer-Profile anzeigen
hi, ich bin neu hier zu b3d seit einigen tagen, und bin doch sehr begeistert.
doch einiges verstehe ich einfach nicht, egal wie oft ich die hilfe lese das forum durchwälze oder mir beispiele ansehe Sad

wie zum beispiel dieses thema:
Manipulieren von texturen nachdem sie geladen wurden.

soweit ich das verstanden habe, kann man den buffer wechseln auf den der textur,
dann grafische befehle ausführen, und dann aber bevor die welt gerendert wird natürlich wieder umschalten auf den backbuffer.
stimmt das so ungefähr?
ich habe es oft versucht aber, irgendwie funktioniert es nicht.
wie sieht so etwas praktisch aus? die befehle die alle mit buffer zu tun haben verstehe ich irgendwie nicht so ganz, bzw habe ich vieleicht das prinzip dieser buffer nicht verstanden?


und noch eine OT frage, bzw nur bedingt hierzu passend, wenn ein terrain von einer grafik (heighmap) erstelle, ist es dann noch möglich diese heighmap im nachhinein irgendwie zu verändern und somit das terrain zu ändern?
ModifyTerrain gibt es zwar, aber über die heighmap das zu machen wäre das angenehmer, vorallem wenn das mit dem texturen verändern ginge.

p.s. vielen dank an die leute aus dem chat =)
  • Zuletzt bearbeitet von AnniXa am Sa, Jan 31, 2009 1:43, insgesamt einmal bearbeitet

darth

BeitragSa, Jan 31, 2009 1:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics3D 800,600,0,2

entity=loadmesh("meep.b3d")
texture=loadtexture("meep.jpg")

setbuffer texturebuffer(texture)
 ;hier kannst du nach herzenslust zeichnen

entitytexture entity,texture

setbuffer backbuffer()
timer=createtimer(60)
while not keyhit(1)
updateworld : renderworld

flip 0
waittimer timer
wend
end


so in etwa?
in der schleife drin ist es dasselbe...
hf
Diese Signatur ist leer.

FireballFlame

BeitragSa, Jan 31, 2009 1:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, das mit der Textur stimmt so. Der Buffer ist immer das, wo du mit deinen Zeichenbefehlen draufmalst. Es gibt FrontBuffer (direkt auf den Bildschirm), BackBuffer (im Hintergrund, wird erst mit Flip nach vorne geholt), sowie Texture- und ImageBuffer.

Ein Beispiel für das Malen auf eine Textur sähe so aus:
Code: [AUSKLAPPEN]
Graphics3D 800,600,0,2
SetBuffer BackBuffer()

PositionEntity CreateCamera(),0,0,-5
RotateEntity CreateLight(),50,50,0

Local w=CreateCube()

Local t=Textur_erstellen()      ; kann genausogut eine geladene Textur sein


EntityTexture w,t

Color 230,230,230
While Not KeyHit(1)
   TurnEntity w,.5,1,0
   If KeyHit(57) Then Textur_bemalen t
   RenderWorld
   Text 20,20,"Leertaste drücken..."
   Flip
Wend






Function Textur_erstellen()
   Local t=CreateTexture(64,64)
   SetBuffer TextureBuffer(t)
   :   Color 100,100,100
   :   Rect 0,0,64,64,1
   SetBuffer BackBuffer()
   Return t
End Function


Function Textur_bemalen(textur)
   SetBuffer TextureBuffer(textur) ; ab jetzt wird auf die Textur gemalt
   :   Color 255,0,0
   :   Line 0,0,63,63
   :   Line 0,63,63,0
   SetBuffer BackBuffer() ; jetzt nicht mehr, es soll ja wieder normal gerendert werden
   Color 0,0,0
End Function





Das mit der Heightmap geht, soweit ich weiß, nicht. Du könntest höchstens die Heightmap als Bild laden, verändern, abspeichern und neu als Terrain laden, aber sowas geht natürlich nicht in mitten im Spiel.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

AnniXa

BeitragSo, Feb 01, 2009 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
danke =)
ich denke nun habe ich es verstanden :O
für die heighmap habe ich mir inzwischen eine schleife geschrieben die mir aus einem bild die höhen einstellt.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group