| |
|
|
- Seite 1 - |
|
| 4 Ebenen Parallax Scrollen mit vSync
Download: [...]
Das Demo habe ich auf Wunsch erstellt.
Die Anwendung benötig von OpenGL die Erlaubnis auf den VSync des Bildschirmes warten zu dürfen.
Ist diese Option nicht auf Anwendungsgesteuert gestellt dann wird eine Fehlermeldung ausgegeben.
Der Code ist unordentlich und nur fix gepinselt - es ging nur darum zu zeigen das auf fähigen Systemen locker 60fps möglich sind.
Exe im Anhang. KompilierenMarkierenSeparieren {$cleq}
const apptitle=oglscrl
#include oglhelper.inc
ogl.window(apptitle,1,800,600,,,,,60)
long tex.bg1=ogl.loadTex(bild1.tex,,,false),
tex.bg2=ogl.loadTex(bild2.tex,,,false),
tex.bg3=ogl.loadTex(bild3.tex,,,false),
float t,y
casenot ogl.vsync(true)==true : err(Cant init V-Sync.)
do {
ogl.main()
t=t+2
y=y+(mousey-y)*0.1
case mousePressed : break
}
ogl.done()
ogl.main(){
ogl.clear
ogl.2dnow()
ogl(color,1,1,1,1)
ogl.scrollPlane(tex.bg2,-t mod 6400*0.25,600)
ogl(color,1,1,1,0.7)
ogl.scrollPlane(tex.bg2,(-t mod 3200)*0.5,1200)
ogl(color,1,1,1,1)
ogl.2dmove(0,y*-0.1)
ogl.scrollPlane(tex.bg1,(-t mod 1600),700)
ogl.2dmove(0,370-y*0.5)
ogl.scrollPlane(tex.bg3,(-t mod 800)*2,600)
ogl.show
}
ogl.scrollPlane(long tex,float p,y){
ogl(texture,tex,1)
ogl.rectangle(p+0,0,p+800,y)
ogl.rectangle(p+1600,0,p+2400,y)
ogl.rectangle(p+1600,0,p+800,y)
}
err(string s){
messagebox(s,apptitle,4096)
end
}
|
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
| Schade, da ist also im ogl vlt. noch ein Bug versteckt. |
|
|
| |
|
|
|
Frank Abbing | Hm, aber ist es bei dieser Methode möglich, die einzelnen Hintergrundsbilder zu manipulieren? Ein Um bei diesem Bespiel zu bleiben: Das sich z.B. der Kopf der Katze drehen kann? |
|
|
| |
|
|
|
| Zum einen ist eine Echtzeitmanipulation von Texturen selbstverständlich dank OpenGL möglich, zum Zweiten ist z.B. Drehen um 3 Achsen überhaupt kein Problem - auch eine Abfolge von Texturen (animierte) ist einfach zu realisieren wie auch das Einmischen von Texturen ineinander. |
|
|
| |
|
|
|
Frank Abbing |
Der Code ist unordentlich und nur fix gepinselt - es ging nur darum zu zeigen das auf fähigen Systemen locker 60fps möglich sind.
Der Code ist ohne die Inc nicht lauffähig und zeigt demnach auch nichts. |
|
|
| |
|
|
|
| Ja, leider, aber lauffähige Codes sind wohl nicht mein Ding.
Drum blieb ich besser bei der lauffähigen Exe - rockt mehr. (und geht auch ohne inc?)
Der abgebildete Code ist es welcher in der Exe agiert, darum habe ich den Code gepostet - welcher sich Dir einfach nicht zeigen will.
Denke Dir den Code einfach weg. |
|
|
| |
|
|
|
Frank Abbing | Die Technik mit den umgewandelten TGA-Bildern ist eh nicht wirklich effizient. Sobald das Blendung noch an anderer Stelle benötigt wird, versagt diese Methode. Es ist auch keine reine XProfan-Lösung, wie angekündigt, sondern fast nur API. Sogesehen sind auch XPIA-Codes reine XProfan-Lösungen, weil LONG eben ein XProfan-Befehl ist. VSync-Verfügbarkeit nur abzufragen ist ebenfalls nicht optimal. Besser ist es, ihn zuzuschalten. falls noch nicht geschehen. |
|
|
| |
|
|
|
|
Die Technik mit den umgewandelten TGA-Bildern ist eh nicht wirklich effizient. Sobald das Blendung noch an anderer Stelle benötigt wird, versagt diese Methode.
Deine Annahme ist falsch, ich nutze kein TGA. Das Format ist 4 Byte pro Pixel ohne Header. Aus der Dateigrösse ergibt sich die Auflösung.
Die Blendung ist zudem auch individuell gestaltbar.
Es ist auch keine reine XProfan-Lösung, wie angekündigt, sondern fast nur API. Sogesehen sind auch XPIA-Codes reine XProfan-Lösungen, weil LONG eben ein XProfan-Befehl ist.
Es ist eine reine XProfan-Lösung.
VSync-Verfügbarkeit nur abzufragen ist ebenfalls nicht optimal. Besser ist es, ihn zuzuschalten. falls noch nicht geschehen.
Auch falsch, der Code setzt VSync und gibt den Erfolg zurück. |
|
|
| |
|
|
|
Frank Abbing |
Deine Annahme mit den TGA-Dateien ist falsch, ich nutze kein TGA. Das Format ist 4 Byte pro Pixel ohne Header.
Ja, du nutzt ein eigenes - unkomprimiertes Format: RGBA. Eine Lösung für Leute, die die TGA-Methode nicht anwenden möchten. Diese Technik wird bei NeHe erklärt (Lesson 32 glaube ich). |
|
|
| |
|
|
|
| Ein Code für das Lesen von TGA als OGL-Texture habe ich hier bereits gepostet. ;)
Ich nutze das Format absichtlich z.B. zum Testen. |
|
|
| |
|
|
|
Frank Abbing | Ist auch keine schlechte Technik. Ich selber mag TGA auch nicht. Und PNG mit Maske ist leider nicht so einfach zu Handhaben. |
|
|
| |
|
|
|
| Die oglhelper.inc hat Teile die noch im Bau sind, darum habe ich sie nicht angehangen.
Die hier benötigten Funktionen herausfitzeln hielt ich nicht für sinnvoll.
Wenn die oglhelper in allen Teilen brauchbar ist kann diese jeder verwenden. |
|
|
| |
|
|
|
Frank Abbing | |
|
| |
|
|