Seite 1 von 1

Einblenden von DisplayTranslucideSprite = lahm

Verfasst: 28.02.2006 18:02
von Delle
Ich brauch lediglich eine Funktion, womit ich ein Introbild innerhalb von 1 Sekunde von schwarz auf volle Stärke einblenden kann:

[c]For i=0 To 255 Step 25
ClearScreen(0,0,0)
DisplayTranslucideSprite(#Sprite_Logo,100,100,i)
FlipBuffers()
Next[/c]

Funktioniert soweit ganz gut, aber ist ziemlich lahm, sprich es dauert etwa 3 Sekunden und wird immer stufenweise erhellt...

Gibt's da noch eine andere Lösung? (PS: Bitte keine 3D-Befehle, die laufen bei mir nicht)

Das hier wird bei mir auch nur stufenweise eingeblendet:

[c]InitSprite()

OpenScreen(800,600,32,"")

LoadSprite(0,"logo.bmp")
CreateSprite(1,600,400)

StartDrawing(SpriteOutput(1))
Box(0,0,600,400,RGB(1,1,1))
StopDrawing()

For i = 255 To 0 Step -50

ClearScreen(0,0,0)
StartSpecialFX()
DisplaySprite(0,0,0) ; Screen
DisplayTranslucideSprite(1,0,0,i) ; schwarzes Sprite
StopSpecialFX()
FlipBuffers()

Next

End[/c]

Verfasst: 28.02.2006 20:45
von dllfreak2001
Hola,
also bei mir läuft das so schnell das ich gleich garnichts sehe.
Erst als ich den Step kleiner gemacht habe ging es.

Liegt woll an deinem System.
Vielleicht mag es deine Graka nicht wenn solche großen Sprites transparent sind.

Entweder versuchst du es mit mehreren kleinen Sprites oder mit Sprite 3D. Mit Sprite3d hast du den Vorteil das es bei den meisten flotter läuft und du das Logo direkt Faden kannst ohne ein zusätzliches Sprite.
Vorausgesetzt die Größe des Logosprites hat den Teiler 16.

Verfasst: 28.02.2006 20:56
von Delle
Wieviel MHz hast Du?

Ich hab hier "nur" 350 MHz... aber ich kann mich an AMIGA-Zeiten erinnern, wo solche Effekte ruckelfrei bei 7 (!) MHz in AMOS gingen...

Verfasst: 01.03.2006 00:43
von merlin
@Delle:

a) schonmal geschaut ob debugger aus ist
b) amiga ist eine ganz andere technik (gerad was jeden bildpunkt angeht)
c) 680x0 / PPC / x86 kann man so nicht verlgeichen! 7mhz sind nicht gleich 7 mhz!
d) auf amiga wurde vieles fake-transparent mit copperbar gemacht.. (oldskool)
e) oder eben mit c2p (chunky2planar) wenn newscool.

Verfasst: 01.03.2006 00:47
von merlin
hab mir geard mal deinen source angeschaut... wenn du nur nen fading willst... dann ist das einfacher als du es anstellst...

a) wenn für fullscreen und windowmode, dann nimm einfach nen 3d sprite und schalte transparenz von 0 auf 255 bzw umgekehrt... sauberes fading...

b) wenn nur screen, dann kannst du sogar in pure eingebaute fading befehle nehmen... changegamma oder wie sich die nochmal nannten.. einfach im help schauen ^^

Verfasst: 01.03.2006 00:51
von Delle
3D funzt auf meiner Kiste eben nicht, dass ist das Problem ;(

Gamma sieht nicht realistisch aus.

Also der Source würde ja passen, ist aber zu lahm... liegt an meinen 350 MHz und da wird wohl oder übel mal ne neue Kiste her ;(

Verfasst: 01.03.2006 12:40
von Sven
Hatten wir in einem anderen Thread: #PB_Sprite_Memory in CreateSprite() / GrabSprite() bringt einiges an Geschwindigkeit bei DisplayTranslucideSprite(), sollte auch in LoadSprite() gehen.

Schau mal, ob Deine GraKa auf 24bit steht, bei mir funktionieren 3D-Befehle nur mit 32 oder 16bit.

Sven