PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Displacement Mapping ~ Truform ?


AlfredENeumann
2002-05-14, 00:18:01
Inwieweit unterscheidet sich Displacement Mapping eigentlich durch TruForm ?
Bei TruForm werden doch auch nur neue Dreiecke erzeugt und mit einer Textur versehen. Könnte man nicht damit auch Displacemnt Mapping "Emulieren" ?

StefanV
2002-05-14, 00:26:50
Truform-> 'wahlloses' einfügen von 3 Ecken mit speziellem Alghorythmus im Chip/Treiber.

Displacement Mapping-> 'Bumpmapping' Art, die mittels einer speziellen Textur einen Körper verformt.

PS: N-Patchs soll der Parhelia auch können *eg*

Frank
2002-05-14, 00:45:28
Originally posted by Stefan Payne
Displacement Mapping-> 'Bumpmapping' Art, die mittels einer speziellen Textur einen Körper verformt.
Dann wär das ja von EMBM so weit theoretisch nicht entfernt die Methode.

Xmas
2002-05-14, 01:00:36
Originally posted by Frank

Dann wär das ja von EMBM so weit theoretisch nicht entfernt die Methode.
???
Displacement Mapping verändert die Geometrie, so dass "echte" Berge und Täler auf einer flachen Oberfläche (oder auch einem gekrümmten N-Patch) entstehen.
EMBM simuliert Reflexionen auf unregelmäßigen Oberflächen, tatsächlich bleibt die Oberfläche aber flach (von der Seite betrachtet).

Frank
2002-05-14, 01:02:56
Originally posted by Xmas

???
Displacement Mapping verändert die Geometrie, so dass "echte" Berge und Täler auf einer flachen Oberfläche (oder auch einem gekrümmten N-Patch) entstehen.
EMBM simuliert Reflexionen auf unregelmäßigen Oberflächen, tatsächlich bleibt die Oberfläche aber flach (von der Seite betrachtet).
meine Aussage bezog sich auf Stefan. Denn bei EMBM verwendet man ja auch nur eine zusätzliche Textur.

Quasar
2002-05-14, 09:50:22
Originally posted by AlfredENeumann
Inwieweit unterscheidet sich Displacement Mapping eigentlich durch TruForm ?
Bei TruForm werden doch auch nur neue Dreiecke erzeugt und mit einer Textur versehen. Könnte man nicht damit auch Displacemnt Mapping "Emulieren" ?

Nein, eher nicht, da n-Patches nur zusätzliche Dreiecke erzeugen könne, aber nicht die Geometrie nach dem auswerten einer Textur verändern.

Siehe Zeckensacks & vogels Ausführungen zum Thema Pipeline Stalling.

Unregistered
2002-05-16, 09:45:21
Originally posted by AlfredENeumann
Inwieweit unterscheidet sich Displacement Mapping eigentlich durch TruForm ?
Bei TruForm werden doch auch nur neue Dreiecke erzeugt und mit einer Textur versehen. Könnte man nicht damit auch Displacemnt Mapping "Emulieren" ?

Wir haben es hier mit drei aufeinander aufbauenden Technologien zu tun:

1a. N-Patches aka Trueform. Hier wird ein Dreiecksgitter durch zusätzliche Vertices verfeinert. Die Position der Vertices wird durch die Normalenvektoren des Kontrollmeshes bestimmt. Die Tesselierung ist auf dem ganzen Mesh identisch, die Entfernung zum Betrachter wird nicht berücksichtigt. Der Übergang zwischen zwei Tesselierungsstufen geschieht sprunghaft.

1b. N-Patches a la Matrox. Wie 1a aber die Entfernung zum Betrachter kann berücksichtigt werden und der Übergang zwischen zwei Tesselierungsstufen wird gemorpht.

2. Displacement Mapping. An jedem Vertex wird aus einer Textur einen Displacementwert gesamplet, der die Position des Vertex verschiebt. Zusammen mit 1b hat man dann die schöne Möglichkeit aus einem Quad (4 Vertices) eine superdetaillierte Landschaft zu erzeugen.


Disp. Mapping braucht zwar nicht unbedingt N-Patches, ist aber andererseits ziemlich sinnlos ohne. N-Patches alleine können keine Features von Disp. Mapping emulieren.

Pitchfork

Xmas
2002-05-16, 14:31:36
Originally posted by Unregistered
Disp. Mapping braucht zwar nicht unbedingt N-Patches, ist aber andererseits ziemlich sinnlos ohne.
Wieso? Displacement Mapping macht auch auf flachen Basisoberflächen Sinn.

BTW, Tessellation schreibt sich mit zwei l ;)

Unregistered
2002-05-16, 15:19:19
Originally posted by Xmas

Wieso? Displacement Mapping macht auch auf flachen Basisoberflächen Sinn.

BTW, Tessellation schreibt sich mit zwei l ;)

Aber tesselieren nur mit einem *g*

Es gibt imho drei Arten fürs Displacement:

1. Einfach den vom Grafiker definierten Mesh displacen. So kann man mittels Textur dem Mesh mehrere Aussehen geben. Imo nicht sinnvoll, weil man die Meshes lieber direkt ausdefiniert.

2. Auf einem Mesh, der durch N-Patches oder andere Techniken vorher ausgehend vom Basemesh verfeinert wurde, wobei die neuen Vertices vor dem Displacement exakt auf der Kante des Kontrollmeshes liegen.

3. Auf einem Mesh, der durch N-Patches oder andere Techniken vorher ausgehend vom Basemesh verfeinert wurde, wobei die Position der neuen Vertices vor dem Displacement durch die Normelenvektoren des Basismehes bestimmt wurden.


Methode 2 und 3 dürften die Hauptanwendungsbereiche sein und die verlangen nun mal, daß Geometrie im Chip erzeugt wird. Und diesen Zusammenhang hatte ich mal an N-Patches bezeichnet (wobei ich gar nicht weiß, ab es als Variante der N-Patches auch möglich ist Variante 2 zu fahren).

Pitchfork

Xmas
2002-05-16, 16:00:57
Also wenn ich das jetzt richtig verstanden habe meinst du mit 1. die Verschiebung vorhandener Eckpunkte, mit 2. die lineare Tessellation (ebene Oberfläche) und 3. beschreibt die Tessellation höherer Ordnung (gekrümmte Oberfläche)

Hier sehe ich auch nur 2. und 3. als sinnvoll an. Aber die lineare Tessellation würde ich nicht als N-Patches bezeichnen (auch wenn sie ein Spezialfall jener sind). Zudem funktioniert DM ja nicht nur mit N-Patches, sondern auch mit anderen HOS-Varianten.