Gschwenni schrieb:
Hoher Polycount kann für manche Anwendungen sehr sinnvoll sein, vor professioneller Natur.
im gaming segment gibts genau eine andwendung für high poly modelle - und das ist das "backen" von shader maps wie normal maps und static ambient occlusion und das herunterrechnen des high poly modells auf das "ingame low poly".
http://www.zbrushcentral.com/showthread.php?90155-Sylvanas-Windrunner-(Next-Gen-Low-Poly-Model)
hier kann man sich mal ansehen, aus welchen teilen ein ingame modell besteht und wie der workflow in etwa aussieht.
Gschwenni schrieb:
Ich hab doch nach Beweisen gefragt gehabt. Bei dir klingts so als ob ne starke Tesselationseinheit was schlechtes wäre.
http://techreport.com/review/21404/crysis-2-tessellation-too-much-of-a-good-thing
ich kann dir ja doch alles vorlegen, und du wirst es ablehnen. ein statement von nvidia wirst du dazu wohl kaum finden - aber mal soviel: intel hat mehrere hundert millionen dollar pro quartal an dell gezahlt, damit die keine amd hardware verbauen - teilweise war das schmiergeld von intel der größte posten bei denen in der bilanz. und jetzt hält man sich hier augen und ohren zu, wenns darum geht, dass nvidia durch gameworks die leistung von amd karten drücken will?
nvidia ist immer wieder dadurch aufgefallen, durch softwaremanipulation (treiber, benchmark) ihre karten in ein besseres licht zu rücken. und jetzt haben sie gameworks - die effekte sind offensichtlich und trotzdem wird das noch bestritten?
und dabei ist gameworks nicht nur proprietäre technologie, sondern auch noch der zugang von nvidia zu den entwicklerstudios. prominentes beispiel ist assassins creed, bei dem der entwickler den dx 10.1 support wieder zurückgezogen hat, weil amd dadurch einen vorteil bekommen hat.
die beweise bzw. schlagende indizien sind da - man muss nur, wie in dem artikel oben, die punkte miteinander verbinden. simple math.
und ja - eine so übertrieben aufgebohrte tessellationseinheit in den nvidia gpus ist für nix anderes da als missbrauch. man muss sich schon sehr sicher dabei sein, wenn man entsprechend viel chipfläche in ein einzelnes feature buttert.
Gschwenni schrieb:
Hat man zuviel tesseliert aber es ist auch aufwendig den Grad der Tesselierung immer einzustellen und da hängts in Crysis.
Aber was hat Nvidia damit zu tun?
nvidia sitzt bei crytek im studio und sagt, wie was gemacht werden soll. das ist der gameworks entwickler support von nvidia. und was soll bitte daran aufwendig sein, den grad der tessellation einzustellen? das ist keine raketenwissenschaft und gameworks ist auch kein eigenständiger organismus oder eine Ai - das ding macht genau das, was es vorgeschrieben bekommt. jeder entwickler kennt sein spiel auf mesh basis auswendig - ich kann dir versprechen, dass sich bei einigen crytek entwicklern bei den meshes/polycount in einer finalen szene die fußnägel hochgerollt haben.
Gschwenni schrieb:
Straßenbarrikaden vielleicht jetzt nicht aber Berge, Haare oder NPCs.
nein, auch da nicht. ich weiß, die dimensionen von polycounts kann man als "nicht" entwickler nicht einschätzen. aber wenn man keine ahnung hat, muss man auch nicht permanent widersprechen.
noch kurz zur erklärung: ein polygon ist ein "mehreck" - oft aber ein dreieck oder ein viereck, selten auch ein fünfeck. ein dreieck ist hier die kleinste einheit - also ein polygon ist immer ein oder mehrere dreiecke. es gibt mehrere arten den "polycount" anzugeben - entweder in polygonen - wobei hier die tatsächliche menge an dreiecken unbekannt ist, oder direkt in dreiecken. je nachdem wie die topologie des modells ist, ist polygon =< dreieckanzahl. oft hat man in einem fertig optimierten mesh 20-30% mehr dreiecke als polys. das unten gezeigte modell besteht hauptsächlich aus quads, deshalb ist die anzahl der dreiecke hier eher höher.
hier mal im vergleich eine arbeit aus dem polycount forum:
soldat lowpoly mesh mit 25.400 dreiecken ohne
und mit shadermaps (normalmaps aus dem high poly, ao) ohne textur. hier gibts absolut nichts am detailgrad auszusetzen, obwohl das modell sehr sparsam umgesetzt ist, man könnte hier auch ohne bauchschmerzen ein komplexeres mesh nutzen - aber man sieht schon, dass hier der nutzen kaum mehr vorhanden wäre. am meisten sinn macht ein hoher polycount im gesicht (vorallem bei motion capture animationen).
und hier normal die crysis 2 barrikade:
und hier mal beides zusammen:
wenn man will, kann das mesh des soldaten auch mit der doppelten anzahl an polys anlegen, aber da ist dann auch ende. und selbst dann wäre das mesh vom soldaten gegen die barrikade ein witz. also was da an polycount verballert wird ist wirklich absurd.
Gschwenni schrieb:
Was fürn Quatsch, sry tut mir leid aber da hab ich ganz anderes gsehen und gehört.
einfachstes mittel sind die CB benches. man muss halt die augen aufmachen.
Krautmaster schrieb:
Ganz nebenbei ist es sicher nicht Gameworks in Crysis 2 was direkt teils unnötig hohe Tessellation setzt. Damals war das Feature noch neu, könnte mir durchaus vorstellen dass heute intelligenter damit gewirtschaftet wird.
polycount war schon immer wichtig - und jeder, der einmal mit 3D engines gearbeitet hat, sieht, dass das, was da vebrochen wurde, einfach nur verschwendung sondersgleichen ist. dieses tessellationslevel wäre für mich als chefentwickler, wäre es wirklich "gezwungenermaßen so", ein grund gewesen das ding aus der entwicklung rauszuschmeißen.
Krautmaster schrieb:
Das mag nach totalem Mesh aussehen aber können wir das überhaupt richtig deuten? Wenn man Teils Mio Polygone in ner Szene berechnet, was machen dann ein paar 1000 Triangles aus die hier im Video schon abgefahren aussehen? Es kann sein dass 95% der Polygone an ganz anderer Stelle sitzen.
als reiner gamer hat man davon keine ahnung - aber, wie gesagt, jeder der schonmal damit gearbeitet hat, bekommt schnappatmung, bei dem, was einem da geboten wird. die summe machts einfach.
normalerweise wird so gewirtschaftet: das was am nahesten an der kamera ist (waffe, arme, hauptcharakter) ist am höchsten detailliert (wird schon beim modeling festgelegt) - das was am weitesten weg ist, weniger. nun hast du aber eine barrikade irgendwo in der nähe herumstehen und das ding frisst so viel leistung (geometrie) wie die spielerhände (25.000 polys) + waffe (25.000polys) + 10 gegner (10x 30.000 polys). und dann hast du ja aber nicht nur eine barrikade, sondern vielleicht 5. d.h. locker 50% der geometrielast in der szene geht allein auf irgendein popeliges prop-modell, das ordentlich umgesetzt nichtmals 1% kosten dürfte.
im youtube video sieht man ja, wie dicht so manches mesh im vergleich zum rest ist. das problem sind die objekte, die schon "schwarz" erscheinen, weil das mesh so dicht ist. da sind die polys hinterher kleiner als die pixel.
sowas passiert nicht aus versehen - dafür könnte man leute aus dem entwicklerteam schmeißen.
Krautmaster schrieb:
@duskstalker
Wenn du dir schon die Mühe machst, wieso wählst du dann nicht alle Gameworks Titel aus sondern nur ein Teil davon? Muss man das verstehen?
mein kriterium für "gameworks" war, dass gameworks effekte im spiel sind - das ist aber nicht nur tessellation, sondern auch mal das harmlose hbao oder HDR.
es gibt auch spiele die trotz gameworks ganz gut laufen, die aber in der mehrheit der fälle keine tessellation nutzen.
meine auswahl der spiele war so gesehen ein "worst case" (der ja auf CB legitim ist) des parkours. die schlechtesten amd spiele sind immer nvidia spiele, sehr oft mit tessellation.
das einzige spiel mit tessellation / hairworks, das ich aus dem parkour genommen habe, war the witcher 3. und hier ist es auch so, dass sehr viele seiten the witcher OHNE hairworks benchen.
es muss aber nicht zwingend ein titel mit tessellation sein, damit für amd hinterher eine generation schlechtere performance herausspringt - es reicht manchmal schon die kooperation mit nvidia ohne irgendwelche gameworks dinger - einfach nur über die reine optimierung für nvidia hardware. amd hält derzeit einen marktanteil zwischen 10% und 20%, es muss nichtmals böse absicht sein, wenn nicht auf amd optimiert wird, sondern ein kostenfaktor. doppelter aufwand für die letzten 15% gamer.
derzeit isses so, dass nvidia mit ihrem gameworks gegimpe das erreicht hat, was sie wollen: und zwar amd von entwicklerseite ausbooten. um die gängelungen von nvidia durch die entwicklerstudios auszugleichen, braucht amd eine generation vorsprung. das ist ein vorsprung, den amd eigentlich nicht einholen kann.
deshalb kann man in dieser spielelandschaft auch nicht erwarten, dass amd einfach so nvidia schlägt.