Dreiecksfläsche mit Textur füllen.

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Matthias

Betreff: Dreiecksfläsche mit Textur füllen.

BeitragSa, März 17, 2007 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hay.
Also wie der Titel schon sagt möchte ich ein Dreieck füllen lassen. Allerdings mit einer (Textur). Ich habe schon im Forum gesucht. Habe zwar Themen gefunden in dem es im Algemeinen um Dreiecke füllen geht, aber nur mit einer Farbe.
Ich würde mich sehr freuen wenn mir jemand bei diesem schwierigen Problem helfen könnte. Ich verzweifle bald.

Code: [AUSKLAPPEN]

Graphics 800,600,32,2
;"------------Erstelle Copier-Bereich
Image=CreateImage(100,100):SetBuffer ImageBuffer(Image)
Color 150,0,0:Rect 0,0,100,100
Color 255,255,0:Rect 0,0,100,100,0

SetBuffer BackBuffer()
PunktAX=100:PunktAY=100
PunktBX=200:PunktBY=50
PunktCX=100:PunktCY=150
;Punkt Erstellen



StX=100:StY=100;"Anzeige Position
Repeat
Cls
DrawBlock Image,300,100








Wi=ATan2(PunktAX-PunktBX,PunktAY-PunktBY)
Sn#=Sin(Wi)
Co#=Cos(Wi)


LockBuffer
For IY=0 To 100
For IX=0 To 100
GetColor 300+IX,100+IY

X=StX+Co*IX-Sn*IY
Y=StY+Sn*IY+Co*IX
CopyPixelFast 300+IX,100+IY,BackBuffer(),X,Y

Next:Next
UnlockBuffer

FPSZa=FPSZa+1:Select MilliSecs()>FPSTimer+999:Case 1:FPSTimer=MilliSecs()
FPS=FPSZa:FPSZa=0:End Select





Color 255,255,255
;Soll-Bereich--------
Line PunktAX,PunktAY,PunktBX,PunktBY
Line PunktBX,PunktBY,PunktCX,PunktCY
Line PunktCX,PunktCY,PunktAX,PunktAY
Text 10,10,FPS

Flip 0

Until KeyDown(1)=1
End

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, März 17, 2007 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Falls du Blitz3D hast - und das nehme ich stark an, wegen oilwar - würde ich das ganze mit Vertices und AddTriangles machen. Die würden nicht nur leichte Übergänge von Pixel zu Pixel aus der Quelltextur machen, sondern auch um einiges schneller sein. Mit VRAM (Mode 256) kann man die 'Schärfe' der Ausgabedarstelung noch erhöhen.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

Matthias

BeitragSa, März 17, 2007 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe Blitz3D. Und ich weiß auch wie mann mit Trinagles, usw umgeht. Aber in diesem Fall geht es mir um das Prinzip im algemeinen.

Wenn die Texturen auf den Mesh, schon fertig ist und nur noch angezeigt werden muß dann, ist Blitz3D schon echt schnell.

Aber wenn ich was mit WritePixelFast in eine Texture screibe dann ist es obwohl mit Modus 256 immer noch langsammer als würde ich das in ein Images schreiben.

Code: [AUSKLAPPEN]

Img=CreateImage(1024,1024):Buff=ImageBuffer(Img)
Print "Start":Zeit=MilliSecs()
LockBuffer Buff:For ZX=0 To 1023:For ZY=0 To 1023
WritePixelFast ZX,ZY,-1,Buff:Next:Next:UnlockBuffer Buff
Print MilliSecs()-Zeit;"----72ms---


Tex=CreateTexture(1024,1024,256):Buff=TextureBuffer(Tex)
Print "Start":Zeit=MilliSecs()
LockBuffer Buff:For ZX=0 To 1023:For ZY=0 To 1023
WritePixelFast ZX,ZY,-1,Buff:Next:Next:UnlockBuffer Buff
Print MilliSecs()-Zeit;"----206ms

Repeat:Until KeyDown(1)=1:End
End


Das problem ist also dardurch immer noch nicht gelöst.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, März 17, 2007 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmmm, ok. Vielleicht hilft dir das Blitz3D-Template 'texpaint' weiter. Da kann man mit der Maus auf die Textur eines Meshes rumzeichnen. Das geschieht direkt auf deren Triangles, auch kann man links/oben am Bildschirm die Form des aktuellen Triangles sehen und deren Mausposition.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

Matthias

BeitragSa, März 17, 2007 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau! Danke! Daran habe ich garnicht gedacht.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group