PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Parallax Mapping


Gast
2006-07-11, 14:41:19
Hi,

weiß jemand wie Parallax Mapping genau funktioniert bzw, wie man es im shader implementieren kann?

Irgendwie sollen die Texturkoordinaten verbogen werden, um Dinge Teile der Textur die durch eine height-map verdeckt sind anders darzustellen?

Ist das in etwa richtig? Weiß jemand wie man es implementiert? Kann man es mit NormalMapping kombinieren?

thx

MuLuNGuS
2006-07-11, 15:32:40
oder gleich "Steep Parallax Mapping" welches der erste treffer hervorbringt?

http://graphics.cs.brown.edu/games/SteepParallax/index.html

Expandable
2006-07-11, 16:24:55
Hier gibt's einen Artikel dazu, bin aber noch nicht dazugekommen, den zu lesen. Ansonsten dürfte im ATI-SDK was sein, wenn ich mich richtig entsinne...

http://www.gamedev.net/columns/hardcore/pom/

del_4901
2006-07-11, 21:09:16
Du verschiebst die virtuelle Position des Fragments mit der Heightmap, und rechnest an diesem Punkt mit den Normals aus der NomalMap. Das Verfahren ist voll billig!!! ich steh da mehr auf "Virtual Displacement Mapping".

Gast
2006-07-11, 21:44:54
aber gibt es da keine Probleme mit Synergieeffekten?

micki
2006-07-12, 09:44:57
AlphaTier[/POST]']Du verschiebst die virtuelle Position des Fragments mit der Heightmap, und rechnest an diesem Punkt mit den Normals aus der NomalMap. Das Verfahren ist voll billig!!! ich steh da mehr auf "Virtual Displacement Mapping".
wo soll da der unterschied sein zwischen PM und VDM ?

Gast
2006-07-12, 11:52:30
offset mapping ownz vdm und pm

del_4901
2006-07-12, 12:14:20
micki[/POST]']wo soll da der unterschied sein zwischen PM und VDM ?

Es wird eine 3d-DistanceMap verwendet, um für jeden Punkt rausfinden zu können, wo ich sampeln muss, um kein über- oder untersampling zu bekommen.

In der Map steht für jeden Punkt im Raum die Entfernung zu seinem nächsten "Verdecker". Anhand dieser Informationen kann ich mich an meinem Strahl solange "entlanghangeln" bis die Entfernung sehr klein ist, dort hab ich dann meinen Punkt gefunden.

micki
2006-07-12, 13:22:48
klingt nach http://download.nvidia.com/developer/GPU_Gems_2/GPU_Gems2_ch08.pdf *hmhmhm*

del_4901
2006-07-12, 13:26:08
micki[/POST]']klingt nach http://download.nvidia.com/developer/GPU_Gems_2/GPU_Gems2_ch08.pdf *hmhmhm*

jup, da isses auch her, ich hab beide Gems hier bei mir ^^

micki
2006-07-12, 13:37:35
AlphaTier[/POST]']jup, da isses auch her, ich hab beide Gems hier bei mir ^^
also ist beides (PM&VDM) das selbe, leicht anders realisiert.

ich dachte schon ich hätte da was wichtiges verpasst.

del_4901
2006-07-12, 14:23:40
micki[/POST]']also ist beides (PM&VDM) das selbe, leicht anders realisiert.

ich dachte schon ich hätte da was wichtiges verpasst.

Das würde ich nicht so sagen, denn bei großen Offsets versagt PM total!

micki
2006-07-12, 16:32:49
AlphaTier[/POST]']Das würde ich nicht so sagen, denn bei großen Offsets versagt PM total!
das ändert am algo ja nicht viel, man muss nur sehr viele samples machen und dann klappt das.
klar, kostet performance, aber der algo ist eigentlich der selbe (wie früher bei voxelengines).

ollix
2006-07-13, 11:57:41
Womit lassen sich eignetlich am Besten sehr detailierte Height-Maps erstellen (zwischen zwei Meshes)?

Neomi
2006-07-13, 12:39:20
ollix[/POST]']Womit lassen sich eignetlich am Besten sehr detailierte Height-Maps erstellen (zwischen zwei Meshes)?

Mit einem Raycaster. Das Lowpoly-Objekt braucht natürlich einen Mappingkanal, dazu wählst du die passende Texturauflösung. Dann gehst du alle Texel des Dreiecks durch und bestimmst per Raycasting die relative Höhe im Highpoly-Objekt. Ist gar nicht mal so schwer zu implementieren.

ollix
2006-07-13, 14:22:10
Danke, ich meinte aber eher welche konkrete Implementation zu empfehlen ist. Also ein Standalone Tool oder Plugin für 3Dmax oder ZBrush.

Jules
2006-07-13, 14:44:46
ollix[/POST]']Danke, ich meinte aber eher welche konkrete Implementation zu empfehlen ist. Also ein Standalone Tool oder Plugin für 3Dmax oder ZBrush.

du hast es schon erwähnt, mit zBrush lassen sich hervorragende hightmaps machen (normal oder bump, kommt drauf an wie du sie in 3ds oder maya implementieren willst!