Registriert: So Okt 21, 2007 14:16 Beiträge: 123
Programmiersprache: Delphi
Hallo,
seit kurzem beschäftige ich mich etwas mit der o.g. Extension, stehe aber vor einigen Problemen. Diese Extension soll - wie der Name schon sagt, Dreiecke bzw. Vierecke unterteilen=tessellieren. Ich habe versucht, dies mithilfe der OpenGL-Registry (http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt) zu realisieren, habe aber das folgende Problem: Vertices lassen sich problemlos unterteilen (mit glPolygonMode(GL_LINE) sieht das Ergebnis richtig aus), aber alles andere (Normalen, Farben, Texturkoordinaten) macht Probleme. Bei den Farben ist das Ergebnis nur schwarz, bei Normalen und Texturkoordinaten bekomme ich eine Zugriffsverletzung bei Adresse 69245CBB im Modul "atioglxx.dll" (Schreiben von Adresse EACABA04). Ein ähnliches Problem wird auf GameDev hier beschrieben, eine Lösung allerdings nicht . Eine Demo von ATI zu der Extension tesselliert nur Vertices, die Codezeilen für die Farben sind in dieser Demo auskommentiert. Ein böser Zufall? Hat schonmal jemand Erfahrungen mit dieser Extension gemacht und/oder hat jemand noch eine Idee?
Für Hilfe wäre ich sehr dankbar.
Gruß Joni.
Zuletzt geändert von Joni am Fr Feb 19, 2010 08:02, insgesamt 1-mal geändert.
Ich habe von dieser Extension leider keine Ahnung (und eine Nvidia Grafikkarte ). Aber für den Fall, dass du das irgendwann als laufen bekommst wäre es schön, wenn du ein Beispiel in die Shadersammlung stellen könntest. Danke schon mal
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,
ich hatte dazu schonmal was im im Mathe-Forum gepostet: HIER Ich habs auch implementiert, aber irgendwo war dann der Wurm drin, da hab ichs aufgegeben, aber das ergebniss sah schon relativ gut aus. Ich hab das glaube auch noch irgendwo. Ich kann ja ma auf Suche gehen wenn du interess dran hast. Aber als Grundlage sollte der Thread oben erstmal helfen...
Registriert: So Okt 21, 2007 14:16 Beiträge: 123
Programmiersprache: Delphi
Hallo,
@Bergmann: Mir geht es im Moment darum, die Extension erst mal einigermaßen zum Laufen zu bringen, ergo ein einfaches tesselliertes Dreieck mit Farben, Normalen und Texturkoordinaten. Sollte das klappen, wäre dein Problem natürlich höchst interessant.
Registriert: So Okt 21, 2007 14:16 Beiträge: 123
Programmiersprache: Delphi
Hallo,
diese Extension macht ganz einfach folgendes: Sie ruft den Vertexshader für jeden tessellierten Vertex auf und stellt indirekt Daten wie Normale, Texturkoordinate, Farbe und Position bereit. Diese sind aber LINEAR interpoliert, für eine sinnvolle Benutzung muss man diese weiter verändern, ansonsten ist das Ergebnis optisch nicht anders als ohne Extension. Der Vorteil der Extension ist eben, dass die Punkte auf der Grafikkarte berechnet werden und nicht von der CPU kommen (Geschwindigkeit). Wenn ich es schaffe, an die o.g. Informationen zu kommen, kann man damit eine Menge machen (wie z.B. Bezier-Kurven oder Bergmanns Methode). Ich bekomme nur leider einen Fehler, wenn ich diese Informationen abrufen will (obwohl ich mich an die Methode in der OpenGL-Registry halte).
Registriert: So Okt 21, 2007 14:16 Beiträge: 123
Programmiersprache: Delphi
Hallo nochmal,
ich habe mein Testprojekt auf OpenGL 3.2 umgeschrieben und Farben funktionieren jetzt, ich habe jedoch immer noch das Problem mit Normalen und Texturkoordiaten. Habe außerdem ein Crosspost hier aufgemacht. Falls noch jemand eine Idee hat, Hilfe ist gerne gesehen
Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.