Nvidias TressFX-Konter Hairworks: PhysX-Programmierer erklärt die Technik im Interview - Tolles Vergleichsvideo
Der bei Nvidia als Programmierer in der PhysX-Abteilung tätige Tae-Yong Kim stand den Kollegen von Physxinfo Rede und Antwort zu Hairworks. Darin verrät der Programmierer, was es mit dem TressFX-Konter auf sich hat, warum man sich für einen CUDA-losen Ansatz entschieden hat und welche Möglichkeiten er Spieleentwicklern bietet. Passend dazu gibt es ein tolles Vergleichsvideo mit und ohne Effekt aus Call of Duty: Ghosts.
Im Gegensatz zu AMDs TressFX dürfte Nvidias Antwort für realistische Haare noch weitgehend unbekannt sein. Dabei setzt die Technik auf DirectCompute statt CUDA und ist somit im Prinzip auch für Spieler nutzbar, die keine Nvidia-Karte ihr Eigen nennen. Tae-Yong Kim, seines Zeichens Programmierer bei Nvidia, hat in einem aktuellen Interview etwas Licht ins Dunkel gebracht. So beantwortet er den Kollegen von Physxinfo etwa Fragen zu den Möglichkeiten von Hairworks, zu den Hintergründen und warum man sich für DirectCompute statt CUDA entschieden hat.
Obwohl man Hairworks erst während der E3 2013 erstmals im Zusammenhang mit Witcher 3 präsentierte und beispielsweise für Call of Duty: Ghosts verfeinerte, basiere die Technik auf einem Algorithmus, den man bereits im Jahr 2012 veröffentlichte. Diesen habe Nvidia zu einen umfassenden Solver weiterentwickelt, der eine Formerhaltung, Anti-Stretching, diverse dynamische Kräfte, eine Trägheitskontrolle, verschiedene GPU-Skinning-Verfahren und mehr beinhalte.
Laut Tae-Yong Kim sei dieser Solver in der Lage, jede Linien- und Kurvengeometrie wie Fell, Haar und Gras darzustellen. Bisher habe der Fokus auf Fell gelegen, gleichzeitig erweitere Nvidia jedoch die Einsatzgebiete. Aktuell gebe es einen einfachen Kollisions-Suport, den man in Zukunft durch ein verbessertes System ersetzen wolle. Wind und verschiedene Funktionen wie die Steifheit, Welligkeit oder Längenänderungen würden bereits unterstützt. Kombiniere man alle Parameter, könne man nasses ebenso wie trockenes Fell und Zwischenstufen darstellen. Derzeit sei Hairworks jedoch ein GPU-exklusives Feature.
Um Hairworks darzustellen, müssten eine Menge Daten bewegt werden, alleine bei Call of Duty: Ghost seien das pro Charakter bereits eine halbe Million Haare in jedem einzelnen Schritt der Render-Pipline. Nvidia verwende hierbei einen optimierten Algorithmus, der sich DX11-Tessellation zunutze mache, wodurch relativ wenig GPU- und CPU-Speicher gebraucht würden. Entwickler selbst könnten auf bekannte Tools wie Maya zurückgreifen, wenn sie die Effekte einbauen wollen. Insgesamt lassen sich dabei bis zu 40 verschiedene Parameter nutzen, um die Form, Dichte, Welligkeit, Wind und vieles mehr zu bestimmen.
Hairworks beinhalte auch ein LOD-System. Haardichte und -stärke lassen sich dynamisch anhand der Distanz des Haares zur Kamera regulieren. Für ganz gewöhnliche, sich der Kamera entfernende Objekte geht die Haardichte beispielsweise schrittweise bis Null zurück, wenn sich die Figur entfernt. Ebenfalls gebe es einen LOD-Ansatz für Close-Up-Szenen. Also solchen, wo sich die Kamera so nah an einer Figur befindet, dass gar nicht das ganze Fell zu sehen ist. Im dem Fall könne man die Dichte beliebig hoch setzen. Jedes Fell-Asset bestehe aus etwa 400.000 bis 500.000 Haarsträhnen. Ein Großteil dieser Strähnen wird dynamisch "on-the-fly" innerhalb der GPU berechnet. Dabei fungieren schätzungsweise 10.000 Führungshaare als Basis für die weitere Tessellation.
Auf die Frage, warum man auf DirectCompute statt auf CUDA setzt, verrät Tae-Yong Kim etwas ausschweifend, dass man bei jeder Technologie nach bestem Wissen abwäge, wie man sie umsetzt. Bei Hairworks habe DirectCompute einfach am meisten Sinn ergeben, da das Rendering bei der Berechnung von Hairworks den größten Anteil habe. Ob man auch andere, zukünftige APEX-Module beziehungsweise PhysX-Features von CUDA entkoppeln wolle, konnte Tae-Yong Kim nicht verraten. Man treffe die Entscheidungen von Feature zu Feature danach, wie es sich am besten nutzen lasse. Mit Hairworks habe man indes noch viel vor und erforsche etwa die Machbarkeit auf den Next-Gen-Konsolen. Das komplette Interview lesen Sie bei den Kollegen von Physxinfo.
Am Ende der Meldung finden Sie noch ein sehenswertes Vergleichsvideo aus Call of Duty:Ghots, das den berüchtigten Schäferhund mit und ohne durch Hairworks berechnetes Fell zeigt.
Quelle: physxinfo.com

ZB: für das Familienspiel...
Hi, Das Sprichwort wenn 2 sich Streiten um die Physik... dann freut sich Microsoft mit DX 11..
Da ab der Version 11 ja genau dies versucht werden soll das AMD und Nvidia Kartenbesitzer gleichberechtig werden sollen...
Alles über die leistungsstarken GPU Einheiten berechnen lassen.
Und Mantle löst das "Kernproblem"
klingt jedenfalls vielversprechend
Und die Zeitgenossen die sich hier im Forum sehr abfällig über die Konsolen auslassen die werden sich noch wunder...
Das kleine Stück Platine der Konsolen ist mehr als mancher Denkt...
Es ist der Versuch neue Wege zu gehen
Und die, sind schnell... Es ist mühselig zu erklären warum ein Ferrari in der Wüste einen Buggy unterlegen ist... Wenn der unterbau unterschiedlich ist...
ich möchte jedenfalls neben meinen PC auch eine Konsole
klar stimmt aber nvidia karten spielten schon ohne tressfx in einer ganz anderen liga
das tb aber am anfang so richtig ******* lief war aber auch kein wunder so wie das amd eingefedelt hatte ... , da nvidia erst '' 1-2 tage '' vor release den code für tressfx erhalten hatte war es schwer für sie einen treiber zum release bereitzustellen und deshalb hatten wir auch so tolle bluescreens
ich denke das reicht für's erste zu amd's nächstenliebe
Ich würde mir jetzt aber nicht anmaßen wollen zu entscheiden, wer da scheise gebaut hat. Sowohl Software-Entwickler als auch Hardwareproduzenten sind da nicht ganz unbefleckt, wobei tendenziell schon eher die Hardwarehersteller zu tricks greifen um mehr Performance raus zu holen, und dann halt alle schaltjahr ihnen halt mal was um die Ohren fliegt, was Sie dann halt abfangen müssen.
Ich wette sobald AMD mit ner PhysX-Konter kommt, wird PhysX auch offen, weil man ja gemerkt hat, weil man mit DirectCompute Wege gefunden hat, es besser zu lösen
Naja aber sowas kann nur gut sein. Dadurch entsteht ein Konkurrenzkampf und jeder will die Beste Physik für alle erreichen - und nicht nur für die eigenen Kunden. Das kann nur zum Vorteil von uns sein
Auch wenn Nvidia es (höchstwahrscheinlich) aus den falschen Gründen so macht =/
Schonmal was von Bullet gehört? Nein?
Dann weißt du was aus dem "Physx Konter" geworden ist.
Solltest besser nicht zu hoch wetten.
Ich wette sobald AMD mit ner PhysX-Konter kommt, wird PhysX auch offen, weil man ja gemerkt hat, weil man mit DirectCompute Wege gefunden hat, es besser zu lösen
Naja aber sowas kann nur gut sein. Dadurch entsteht ein Konkurrenzkampf und jeder will die Beste Physik für alle erreichen - und nicht nur für die eigenen Kunden. Das kann nur zum Vorteil von uns sein
Auch wenn Nvidia es (höchstwahrscheinlich) aus den falschen Gründen so macht =/
AMD und nVidia werden weiterhin ihr eigenes Süppchen kochen, da solche Features wie PhysX, TressFX, Hairworks, usw. auch Kaufanreize sind.
Wenn du glaubst, dass AMD den guten Samariter spielt, dann irrst du dich. Die wollen auch nur ihre Chips verkaufen und Gewinn machen und das ist verdammt noch mal auch richtig so.
Und trotzdem ist es für uns Gamer natürlich doof, weil wir uns entscheiden müssen: Nehmen wir jetzt die nVidia- oder die AMD-Karte, PhysX oder TressFX, Mantle oder 3D-Vision? Gleichzeitig wollen wir alle Spiele "verlustfrei" zocken und möglichst viele FPS und bestmögliche Bildqualität.
Die Hersteller haben ein interesse an proprietären Schnittstellen, die Entwickler und die Gamer ein Interesse an einer universellen Schnittstelle, ob OpenCL oder DirectCompute oder Sonstwas.
Und Ich kann mir kaum vorstellen, dass AMD da großartig kuschen wird und sich den Gamern gegenüber so "großzüzig" gibt, wie ja oftmals behauptet wird.
Es gibt über 200 PC Games die Physx benutzen und da sind nVidia Karten dermaßen stark im Vorteil....
Nein. Mal wieder jemand der nicht zwischen GPU-PhysX und CPU-PhysX unterscheiden kann.