Bild verschwimmen lassen
Übersicht

![]() |
RatchetBetreff: Bild verschwimmen lassen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich möchte ein Bild verschwommen darstellen, möglichst in Echtzeit. In vielen 3D Spielen hat man diesen Effekt wo dann z.B. der Hintergrund verschwommen ist, so wie eine Kameraunschärfe. In einem Spiel wird sogar richtig die Kameraschärfe verändert, also vom Hintergrund zum Vordergrund fokusiert. Und das ist 100% Echtzeit. Gibt es da eventuell sogar spezielle OpenGL/DirectX-Befehle für oder wie könnte man das am Besten realisieren?
Habe schon rumprobiert indem ich das Bild einfach mehrmals aufeinander ausgebe, mit etwas trasparenz und immer ein wenig verschoben. Richtig verschwommen/unscharf sieht es aber nicht aus. Außerdem sind meine Bilder sehr groß (min. 1024x768), da kann es bei einigen Rechners schon mal ruckeln wenn ich das Bild fünf oder mehr mal zeichne. |
||
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro] |
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eine Möglichkeit:Code: [AUSKLAPPEN] Strict
Graphics 800,600,0 Global img:TImage=LoadImage("test.jpg") While Not KeyDown(KEY_ESCAPE) If KeyDown(KEY_SPACE) drawblurimage img,0,0,15 Else SetAlpha 1 DrawImage img,0,0 EndIf Flip;Cls Wend End Function drawblurimage(image:TImage,x:Int,y:Int,factor:Int) SetBlend alphablend SetScale 1,1 SetRotation 0 SetAlpha 1.0/factor For Local i:Int =0 To factor DrawImage image,x+i,y+i Next End Function =====Hier Download===== (Für Blur Leerteste drücken) So macht man es in B3D, ist in Bmax aber nicht so schön anzusehen: Code: [AUSKLAPPEN] Strict
Graphics 800,600,0 Global img1:TPixmap = LoadPixmap:TPixmap( "test.jpg" ) Global img3:TPixmap=ResizePixmap( img1,PixmapWidth(img1)/10,PixmapHeight(img1)/10) Global img2:TImage = LoadImage(img3) While Not KeyDown(KEY_ESCAPE) SetScale 10,10 DrawImage img2,0,0 Flip;Cls Wend End MfG Blitzcoder |
||
![]() |
Ratchet |
![]() Antworten mit Zitat ![]() |
---|---|---|
Genau so mache ich es ja im Moment (siehe erster Post). Ich woltle ja wissen ob es da eine elegantere Lösung gibt. | ||
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro] |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Elegantere Lösungen gibt es verschiedene:
1. Du renderst das ganze auf einen kleineren Hintergrund und zeichnest es gestreckt. Wenn das Image mit filtered image flag erstellt wurde wird das automatisch "unschärfe" geben, hat aber nichts mit DoF zu tun wie man es bei Cam mit Fokusieren oder so erreichst. 2. Du baust dir Shader Support ein um den gleichen Effekt direkt hardwareseitig zu erreichen, sofern du den entsprechenden Shader schreiben kannst. (mit DX7 also Max2D DX garnicht machbar. Mit OpenGL wenn du es selbst unter zuhilfe nahme von pub.glew integrierst) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group