TextureBuffer + DrawMovie
Übersicht

![]() |
ToeBBetreff: TextureBuffer + DrawMovie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weiß einer warum ich kein Movie in einen TextureBuffer zeichnen kann ??
mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
renders auf dem Bildschirm und CopyRect![]() |
||
![]() |
SYSThern |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi
vll solltest du die texture dauernd update? new zeichnen ich denke das es deswegen nciht geht oder kommt ein fehler er zeichnet wahrscheinlich nur das erste bild un sonst nix mehr mfg SYSthern |
||
Tools and Programms
-------------------- www.systhern.de |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich wollte es ja ohne CopyRect machen weil das in 3D so lahm ist (copyrect von einem 320*240 Bild dauert ~60ms). Und es wird ja gar nix gemalt (noch nichtmal das erste bild). Hier mal der gesammte code :
Code: [AUSKLAPPEN] Graphics3D 800,600,16,2
SetBuffer BackBuffer() Global BGBuffer = BackBuffer() Global Camera = CreateCamera() CameraClsColor Camera,64,64,64 Global Movie = Load3DMovie("Vid2.avi") ;If Movie = 0RuntimeError("Konnte kein Movie laden !") Global Cube = CreateCube() PositionEntity Cube,0,0,3 EntityTexture Cube,GetMovie3DTexture(Movie) Global mss,times Repeat TurnEntity Cube,2,2,2 ms = MilliSecs() Update3DMovie() time = MilliSecs() - ms ;If Movie3DPlaying(Movie) = 0 ;Replay3DMovie(Movie) ;EndIf RenderWorld() Text 0,0,time Text 0,13,times Flip 0 Cls Until KeyHit(1) End Type movie3D Field movie Field texture,TexBuffer Field sizex,sizey,sizet Field handlex,handley Field Pfad$ End Type Function Load3DMovie(Pfad$,texsize=256) tmp.movie3D = New movie3D tmp\movie = OpenMovie(Pfad$) If tmp\movie = 0 Delete tmp : Return 0 sizex# = MovieWidth(tmp\movie) sizey# = MovieHeight(tmp\movie) tmp\sizex = sizex tmp\sizey = sizey tmp\sizet = texsize tmp\texture = CreateTexture(tmp\sizet,tmp\sizet) If tmp\texture = 0 CloseMovie(tmp\movie) : Delete tmp : Return 0 tmp\texbuffer = TextureBuffer(tmp\texture) tmp\handlex = tmp\sizet / 2.0 tmp\handley = tmp\sizet / 2.0 tmp\Pfad$ = Pfad$ Return Handle(tmp) End Function Function Update3DMovie() ;GRBuffer = GraphicsBuffer() For tmp.movie3D = Each movie3D SetBuffer tmp\texbuffer DrawMovie(tmp\movie,0,0) ;mss = MilliSecs() ;CopyRect(0,0,tmp\sizex,tmp\sizey,tmp\handlex-tmp\sizex/2,tmp\handley-tmp\sizey/2,BGBuffer,tmp\texbuffer) ;times = MilliSecs() - mss Next SetBuffer BGBuffer End Function Function GetMovie3DTexture(Han) tmp.movie3D = Object.movie3D(Han) If tmp <> Null Return tmp\texture EndIf End Function Function Movie3DPlaying(han) tmp.movie3D = Object.movie3D(Han) If tmp <> Null Return MoviePlaying(tmp\movie) EndIf End Function Function Replay3DMovie(han) tmp.movie3D = Object.movie3D(Han) If tmp <> Null CloseMovie(tmp\movie) tmp\movie = OpenMovie(tmp\Pfad$) EndIf End Function Function GetPot(zahl) start = 1 ende = 1024 zahl2 = start count = 1 While zahl2 < zahl zahl2 = 2^count count = count + 1 Wend Return Zahl2 End Function mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
SYSThern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics3D 1024,768,32,2
SetBuffer BackBuffer() Global videotexture=CreateTexture(720,536) movie = OpenMovie("deinmovie.avi") cube = CreateCube() camera=CreateCamera() CameraClsColor camera,255,255,255 light1=CreateLight() PositionEntity camera,0,0,-5 While Not KeyHit(1) If MoviePlaying(movie) = 0 Then CloseMovie movie movie = OpenMovie("movie.avi") End If SetBuffer TextureBuffer(videotexture) DrawMovie movie,0,0 SetBuffer BackBuffer() PointEntity camera,cube EntityTexture cube,videotexture TurnEntity cube,0,1,0 RenderWorld Text 0, 0, "Breite: " + MovieWidth(movie) Text 0, 20, "Höhe: " + MovieHeight(movie) Flip 0 Wend CloseMovie movie End das funzt bei mir scnell hingeschrieben ersetz einfach deinmovie mit dem namen deines videos mfg SYSThern |
||
Tools and Programms
-------------------- www.systhern.de |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hatte mal ein Speed-Problem bei einer auf 3D basierenden Blur-Funktion.
Du solltest beim "CreateTexture" den Modus "256" nutzen. Dann sind die Texturen nur im Grafikkartenspeicher. Das bringt mehr Geschwindigkeit, als man denkt! mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aso dann liegts daran dasss die Texture GRÖßER seinen muss als das Video !!
Danke ![]() mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
SYSThern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier hab ich noch eine Function zum zeichnen eines videos auf eine texture gemacht
Code: [AUSKLAPPEN] Function MovieToTexture(movie,x#=0,y#=0,entity,videotexture)
SetBuffer TextureBuffer(videotexture) DrawMovie movie,x#,y# SetBuffer BackBuffer() EntityTexture entity,videotexture End Function Code: [AUSKLAPPEN] parameter:
am besten mit flag 256
movie=das video das angezeigt werden soll mit OpenMovie x#=die x-position des movies y#=die y-position des movies entity=das entity auf das die texture gezeichnet werden soll videotexture= eine texture mit CreateTexture(x,y,[flag],[frame]) das ganze muss in die hauptschleife vor Renderworld mfg SYSthern mfg SYSThern |
||
Tools and Programms
-------------------- www.systhern.de |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube, dass das fast jeder hinbekommen hätte ![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
SYSThern |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() hatte halt lust dazu und sp hat sich meine SYSTech gleich um etwas erweitert ![]() |
||
Tools and Programms
-------------------- www.systhern.de |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group