Einblenden von DisplayTranslucideSprite = lahm

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Delle
Beiträge: 1132
Registriert: 10.05.2005 22:48

Einblenden von DisplayTranslucideSprite = lahm

Beitrag 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]
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag 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.
I´a dllfreak2001
Benutzeravatar
Delle
Beiträge: 1132
Registriert: 10.05.2005 22:48

Beitrag 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...
merlin
Beiträge: 157
Registriert: 30.07.2005 22:15

Beitrag 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.
merlin
Beiträge: 157
Registriert: 30.07.2005 22:15

Beitrag 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 ^^
Benutzeravatar
Delle
Beiträge: 1132
Registriert: 10.05.2005 22:48

Beitrag 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 ;(
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag 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
Antworten