» »

Tessellation?

Tessellation?

dzinks63 ::

Gledam ta demo DX11 Tessellation Comparisons, pa mi nekako ne potegne. Praktično ne vidim razlike. V čem je sploh fora vsega skupaj? A imajo od tega korist le programerji (lažje delo)? Mogoče zadeva izpljune več fps? Mogoče malo boljši kontrast? Malo večja globina? Razlike najbrž so, vendar tako male, praktično neopazne. Pričakoval sem več.

Wrop ::

Ne vidiš razlike?
Potem si malo bolj nahitro pogledal, ali kaj?
Kontrast ne bo zaradi tega nič boljši, ker sam tassellation ne vpliva na barve. No posredno da, ker vpliva na sliko.
Kaj pridobimo s tassellation-om?
Sedaj so globino nekega objekta npr. prikazali z bump mappingom. To si lahko predstavljaš kot neko teksturo, ki pove globino. Objekt (za primer bom vzel kocko) se pri bump mappingu ne spreminja. Ima 8 ogljišč, 6 strani (poligonov) in mislim da 12 trikotnikov (faces).
Recimo, da hočemo da hočemo, da je površina kocke nagrbančena.
Brez bump mappinga si moral sence sam narisati na teksturi. Slabost je bila ta, da so bile sence fiksne, neglede na to kje se je nahajal vir svetlobe.
Lahko si sicer povečal število poligonov, kar pa je spet slabo, zaradi hitrosti. Pa še vedno nisi mogel prikazati kakšnih majhnih detajlov.
Z bump mappingom se da detajle dobro prikazati brez, da bi povečali število poligonov. Dobimo samo še dodatno teksturo, ki pove globino, na danem objektu (npr kocki). Tukaj se sence, kolikor vem, spreminjajo dinamično, na podlagi te bump teksture in lokacijo vira svetlobe. Pri tem število poligonov ostane isto (torej 6).
S tassellation-om pa grafična objekt (npr. prejšnjo kocko) razdeli iz 12 trikotnikov na veliko več trikotnikov(recimo 1000), na podlagi teksture pa te trikotnike "premakne" v prostor, tako da lahko ti trikotniki prekrivajo/zakrivajo kak drug objekt. Tega se, kolikor jaz vem, z bump mappingom ne da. Tako dobimo bolj realno sceno, s tem tudi sence, kar lahko tudi vidiš v filmčku. Pri vsem tem, pa tudi ne narediš "veliko" dela. Sploh če bi isti učinek hotel narediti s povečanjem števila poligona na prvotnem objektu.
Če bi hotel zelo detaljno sceno (v filmčku desni del), bi moral vsak objekt razdeliti na več trikotnikov (verjetno faktor 10-1000). To bi pa zelo udarilo na hitrost.
Pri tassellation-u pa imaš samo še neko teksturo, nato pa grafična to sama naredi.
Je pa res, da bolj oddaljeni (oddaljeni in manjši) objekti, izgledajo enako, saj na njih grafična ne dela tassellation, ker ni potrebe, pa tudi kakega učinka ne bi bilo.

Tako, da se ne morem strinjati, da so razlike manjše in praktično neopazne.

Me pa tudi zanima, kak bo sedaj s fiziko oziroma kako bo z iterakcijo z drugimi objekti. Naprimer, če boš ustrelil v kak objekt, ali se bo to delalo na prvotnem objektu (v CPU), ali v tistem, ki je v grafični (ta pa se lahko z tassellation-om fizično deformira)?

Jst ::

Ne ne ne. Teselacija je fancy ime za mesh smooth, kakor se fukcija imenuje v 3D studiu. Število poligonov SE poveča.
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

Wrop ::

Jst, streljaš kozle. Tako enostavno to ne gre. Nič ni fancy ime, pa tudi ni mesh smooth funkcija iz 3D studia. Je pa res, da se število poligonov poveča.

Jst ::

Ko nvidia tech guy razlaga in prikaže, kako zgleda wireframe tistega kipca iz haeven benchmarka, tam se lepo to vidi. Čim si bližje, večji faktor mesh smootha in ostalih trikov (bump, displacement,...) izvedeš*, poveča se število poligonov, zato je tudi svetloba lahko tako dinamično izrisana. Nvidia se je res lepo potrudila in razložila, kaj kako deluje.

*Prvo izvedeš "trike", nato mesh smooth. V obratni smeri nima nobenega smisla.

Mesh Smooth. Poglej slike, in ti bo takoj jasno.
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

BALAST ::

Teselacija je strojno in programsko pospeševanje izrisovanja poligonov. Stvar je zanimiva, ker glede na zmogljivost procesiranja grafične kartice in procesorja prilagaja izris poligonov brez kakšne druge "slabšalne" nastavitve, ki omejuje kvaliteto izračunane slike.

To pomeni, da lahko naredijo igro ali program, ki bo na vseh platformah (PC,konzola) povsod enako sprogramirana in bo glede na zmogljivost sistema prikazala le toliko detajlov kolikor jih zmore tekoče prikazati strojna oprema.

Jst ::

BALAST:

To pomeni, da lahko naredijo igro ali program, ki bo na vseh platformah (PC,konzola) povsod enako sprogramirana in bo glede na zmogljivost sistema prikazala le toliko detajlov kolikor jih zmore tekoče prikazati strojna oprema.


Ja, tako je bilo razumeti nvidia tech guya, ampak zadeva ni tako neat. Če bi namreč bila, potem ne bi na ATIju imela takšen impact na performance.

Komentarji na to so bili: "Ja v tem benchmarku se je vse CUDA cores alociralo za teselacijo, v igrah bodo pa shaderji uporabljeni, nevem za igro mogoče." :)
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

Wrop ::

Ti bi najprej naredil displacement, potem pa šele mesh smooth?
Tole ne bo držalo. Prej obratno.

blackbfm ::

Nekaj podobnega je obstajalo že na radeonu 8500 skoraj 10 let nazaj..tak da to ni nič novega. Samo zdaj je na bistveno višji stopnji vse skupaj.

Senitel ::

Jst: Kater NV tech guy? Ker un del komentarja v narekovajih je totalno kar nekaj brez repa in glave. >:D

BALAST je izjavil:

Teselacija je strojno in programsko pospeševanje izrisovanja poligonov.

Teselacija je "pospešeno" generiranje tirkotnikov iz nekih primitivov, ki sploh niso nujno trikotniki ali štirikotniki,...

BALAST je izjavil:

Stvar je zanimiva, ker glede na zmogljivost procesiranja grafične kartice

To niti najmanj ne drži. Teselacija lahko generira iz X trikotnikov Y novih trikotnikov, ampak stvar ne bo niti najmanj odvisna od tega kako hitra je grafična kartica (kako naj bi to sama grafična sploh ugotovila?), ampak zgolj od tega koliko trikotnikov igra hoče, da jih grafična zgenerira (za bolj oddaljene manj, za bližje recimo več).

Jst je izjavil:

Ne ne ne. Teselacija je fancy ime za mesh smooth, kakor se fukcija imenuje v 3D studiu. Število poligonov SE poveča.

D3D11 tesselation je precej precej več kot samo mesh smooth. V bistvu je že displacement mapping precej bolj cool kot samo dolgočasen mesh smooth. Veliko bolj zanimivo je to da lahko za lepo rožico v osnovi ponucaš nevem 20 trikotnikov, ko si 1m stran, potem pa vse skup nabiješ na 1280 trikotnikov v close up sceni. Brez vidnega preskakovanja v detajlih.

blackbfm je izjavil:

Nekaj podobnega je obstajalo že na radeonu 8500 skoraj 10 let nazaj..tak da to ni nič novega. Samo zdaj je na bistveno višji stopnji vse skupaj.

Jah... Tudi na NV1, ampak razlika med Radeon 8500 in D3D11 hardware-om je še vedno taka kot če primerjaš "pixel shaderje" na Voodoo 1 in GeForce 3.

Wrop je izjavil:

Z bump mappingom se da detajle dobro prikazati brez, da bi povečali število poligonov. Dobimo samo še dodatno teksturo, ki pove globino, na danem objektu (npr kocki). Tukaj se sence, kolikor vem, spreminjajo dinamično, na podlagi te bump teksture in lokacijo vira svetlobe. Pri tem število poligonov ostane isto (torej 6).

Bump mapping (per pixel lighting, kakor koli že hočete), izračuna osvetlitev perfektno ravne ploskve tako, kot da bi bila dejansko groba in bi imela nek relief. Se pa vse skupaj začne zelo očitno podirat, ko gledaš to ploskev pod večjim kotom, dokler ne prideš do pravega kota in ugotoviš, da imaš dejansko opravka s povsem ravno ploskvijo.
Tesselation lahko iz tega navidezne optične prevare naredi dejanske deformacije na ploskvi.

Wrop je izjavil:

Me pa tudi zanima, kak bo sedaj s fiziko oziroma kako bo z iterakcijo z drugimi objekti. Naprimer, če boš ustrelil v kak objekt, ali se bo to delalo na prvotnem objektu (v CPU), ali v tistem, ki je v grafični (ta pa se lahko z tassellation-om fizično deformira)?

Fizika se ne dela eksaktno. Vedno se poišče neke "bounding" geometrijske objekte in se šele kasneje (če je potrebno) vse skupaj bolj natančno preveri.

boogie_xlr ::

Senitel je izjavil:

Tesselation lahko iz tega navidezne optične prevare naredi dejanske deformacije na ploskvi.
In je ob vsem tem celo hitrejši.

Wrop ::

Senitel je izjavil:


Fizika se ne dela eksaktno. Vedno se poišče neke "bounding" geometrijske objekte in se šele kasneje (če je potrebno) vse skupaj bolj natančno preveri.


Vem približno kako se detektira trke med objekti. Mene je bolj zanimalo, kako bo to sedaj. Če vzamem primer tistega zmaja v filmčku.
Npr. da ustrelim v tistega zmaja (v tisto kost/špico/bodico), ki mu meji ven iz prsi/vratu. Glede na to, da se tessellacija dela v GPU, kako bo CPU vedel, da je v tisti bodici prišlo do trka, če CPE (objekt, ki ga obdeluje CPE) nima tiste bodice?
A bo CPE še vedno zaznaval take trke? A bo upošteval še displacement mapo in mapo normal?
Ali bo to delal GPU?
A mogoče veš kaj bolj natančno?

Wrop ::

boogie_xlr je izjavil:

Senitel je izjavil:

Tesselation lahko iz tega navidezne optične prevare naredi dejanske deformacije na ploskvi.
In je ob vsem tem celo hitrejši.


To ti pa ne verjamem, imaš kakšen link?

Glede na to, da mora sedaj grafična toliko več poligonov obdelat, pa da s tassellationom in displacementom lahko še sam nase meče sence...

boogie_xlr ::

Heh, vbistvu maš prav, mal sem se zmoto, upam da ne zameriš :) tule je link, ka sm js mislo. Vbistu je bump maping najhitrejši, pri parallax occlusion pa zmaga tesselation.
It is interesting to note that tessellation doesn’t only improve rendering quality but also performance!

Tukaj je pa ta aplikacija, ki prikaže ta tesselation parallax in bump maps.

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Star Citizen podrl rekord v skupnostnem financiranju

Oddelek: Novice / Igre
4514227 (11710) Truga
»

ATI Hemlock že novembra? (strani: 1 2 )

Oddelek: Novice / Grafične kartice
659831 (7131) Machiavelli
»

DOOM III le za Xbox ?!?!?! (strani: 1 2 3 4 )

Oddelek: Igre
18110516 (7864) Fury
»

Išče se skupina za izdelovanje iger.

Oddelek: Programiranje
302654 (1776) (sic)

Več podobnih tem