Texture über Szene

Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Farbfinsternis

Betreff: Texture über Szene

BeitragMi, Jul 11, 2007 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe mir ein texturiertes Viereck erstellt (also Mesh, Surface, Brush erzeugen, Vertices mit UV Koords dazu, Faces drauf etc.). Dieses soll die Szene pixelgenau (wie ein HUD) überdecken.

Hänge ich das Viereck nur an die Camera und stelle die EntityOrder auf -1 überdeckt das Viereck zwar die gesamte Szene und wird stets als letztes gezeichnet, allerdings nicht pixel-genau.

Hintergrund ist dass dieses Viereck die "fotografierte" Szene als Textur erhält und sich die Textur extakt mit der Szene dahinter überlagern soll.

Kann mir da jemand helfen?

Schonmal vielen Dank im Voraus!
Farbfinsternis.tv
 

Dreamora

BeitragMi, Jul 11, 2007 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Suche benützen, da wird erklärt wo man Sprites / Surfaces platzieren muss und mit welcher Skalierung damit sie 1:1 dem Screen entsprechen!
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Jan_

Ehemaliger Admin

BeitragMi, Jul 11, 2007 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
also, ich hatte das damals so gemacht:
https://www.blitzforum.de/upload/file.php?id=153
between angels and insects

Farbfinsternis

BeitragMi, Jul 11, 2007 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für den Source Jan_, aber ich sehe da nix ... kannst Du bitte mal das extrahieren was dafür sorgt dass ein Surface (kein Sprite) die komplette Szenerie bedeckt? Wäre dir unendlich dankbar!
Farbfinsternis.tv
 

Dreamora

BeitragMi, Jul 11, 2007 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Einfach ein Singlesurface Sprite der Grösse 1 1 machen und wie den sprite skalieren.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Farbfinsternis

BeitragMi, Jul 11, 2007 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, Sprites kann ich nicht benutzen ... ohne direkt auf das TSprite und deren Elternklasse zuzugreifen komme ich nicht an die Meshdaten und auch nicht an die UV Koordinaten ... so ein Gehacke wollte ich eigentlich nicht einbauen ...

zur Erläuterung: Ich habe das nur im Blitz3D Forum gepostet weil es kein miniB3D Forum gibt.
Farbfinsternis.tv
 

Dreamora

BeitragMi, Jul 11, 2007 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann post es nach Blitz Max!!!

Das hier ist Blitz nicht BM! (oder poste es doch gleich ins MiniB3D Forum auf bb.com wo es eigentlich hingehört)

Wenn du kein englisch kannst benutz kein rein englisches Produkt bzw. benutz deinen Unwillen englisch zu lernen nicht als ausrede!
Bist ja freiwillig Programmierer, nicht Realschüler im D Unterricht
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Farbfinsternis

BeitragDo, Jul 12, 2007 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem, aufgrund dessen ich diesen Thread gestartet habe, ist mittlerweile gelöst, der Blur-Shader läuft auch, aber .... die Textur steht auf dem Kopf. Bevor ich den Shader eingebaut habe konnte ich das Problem lösen indem ich die Textur vertikal negativ skaliert habe. Mit aktiviertem Shader ist da nix mehr zu machen.
Hat vielleicht jemand eine Idee wie ich das lösen kann?

Hier mal der Quelltext, die Shader und die Media-Files (ca. 800kb)

Beachtet bitte dass das Programm eine Grafikkarte benötigt die das Shader-Modell 2.0 unterstützt. Keine Ahnung ob das unter Vista läuft.
Farbfinsternis.tv
 

Dreamora

BeitragDo, Jul 12, 2007 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn die textur auf dem kopf steht, besteht die chance das du aus versehen einen DX shader 1:1 nach OGL geportet hast anstatt das Koordinatensystem anzupassen?
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Farbfinsternis

BeitragDo, Jul 12, 2007 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, das ist ein GLSL Shader (Quelle: http://knollson.de/pdf/gp_filter.pdf) ... zudem steht ohne Shader und ohne negative Skalierung der Textur das Bild auch auf dem Kopf.
Lasse ich den Shader weg kann ich das Bild ja flippen, nur wenn der Shader aktiv ist ignoriert das Programm das.
Farbfinsternis.tv
 

Dreamora

BeitragDo, Jul 12, 2007 16:36
Antworten mit Zitat
Benutzer-Profile anzeigen
gl_Position = -ftransform();

im vertex shader.

dann stimmts wieder.
Das problem ist, dass dein Setting mit der Drehung nur solange sinn macht, wie du nicht mit einem Vertexshader dran drehst.

aber bloom erzeugt das nicht so wie ich das sehe ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Farbfinsternis

BeitragDo, Jul 12, 2007 16:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Dreamora, leider funktioniert das nicht. Nach der von Dir vorgeschlagenen Änderung wird die Überlagerung garnicht mehr angezeigt.

Bloom ist das natürlich noch nicht, es ist erst der erste Schritt: Textur nehmen, blurren, wieder drüber packen. Da fehlt noch Brightness und Contrast.
Farbfinsternis.tv
 

Dreamora

BeitragDo, Jul 12, 2007 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab jetz ma nen funktionierenden Bloomshader genommen.
Irgendwas auf der BM Seite ist da schief, ich vermute ma spontan am Sprite. Anderen Spritemodus probiert oder mit single surface mesh anstatt sprite? (hab kleptos modul net drauf und kanns drum net selbst testen)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Farbfinsternis

BeitragDo, Jul 12, 2007 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
*damn* ... das dachte ich mir schon. Trotzdem danke für Deine Mühe.


btw: Wenn ich "gl_TexCoord[0] = - gl_MultiTexCoord0" schreibe stimmt zwar die vertikale Ausrichtung, aber die Textur ist dann horizontal gespiegelt. Das ist alles ganz schön nervraubend.
Farbfinsternis.tv
 

Dreamora

BeitragDo, Jul 12, 2007 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann nimm einfach "gl_TexCoord[0] = -vec2(-1.0,1.0)*gl_MultiTexCoord0;"

damit stimmts dann auch Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Farbfinsternis

BeitragDo, Jul 12, 2007 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
tut mir leid, aber das tut es auch nicht Very Happy

[EDIT]
Öfter mal auf die Debug-Ausgaben schauen Wink

Ein vec4 mit angehängten 0.0 tut es dann!

Danke Dreamora, hast mir sehr geholfen!!

[/EDIT]
Farbfinsternis.tv
 

Dreamora

BeitragDo, Jul 12, 2007 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
doch bei mir schon.

dann glüht dein felsbrocken.

Im Fragmentshader hast du übrigens bei den verschiebungen noch nen Fehler beim Offset 5.

Ohne diese änderung siehst du was? ein felsen nach oben und einen nach unten? Und wo sie sich schneiden leuchtets?
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Farbfinsternis

BeitragDo, Jul 12, 2007 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ichhabe Deine Änderungen eingebaut ... allerdings mit einem vec4 anstatt vec2 ... mit ersterem funktioniert es nun ...

Jetzt kann ich mich an das Skalieren, Kontrast erhöhen, Helligkeit verringern machen.
Farbfinsternis.tv
 

Dreamora

BeitragDo, Jul 12, 2007 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
ATI? ^^ (nur so ne vermutung weil ATI ein wenig eigensinniger und problematischer ist was OGL betrifft)

aber schön das es jetz geht Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Farbfinsternis

BeitragDo, Jul 12, 2007 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Nö, vorhin war es NVidia ... aber auf ATI sieht es genauso aus ... geht jetzt alles super. War sicher wieder ein Bug von miniB3D den man umschiffen musste.

Vielen Dank für Deine Denkanstöße!
Farbfinsternis.tv

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group