Utilizator:
Parola:
Am uitat parola... | Cont nou!


Articole Resurse Echipe Competiții Proiecte Forum DevBlogs Locuri de muncă GDROMag Issue#1 GDROCon 2007

 
Forum » Programare » Grafică » Voxelizare & geometry instancing




Pagina 1 din 1 [ 1 ]

Mesaj Info autor
    Postat la 24 Aug 2010 12:11:56    Subiect: Voxelizare & geometry instancing
Deliverance info:

Deliverance:

Lucrez la un mic proiectel in care voxelizez solid un model 3D si am niste probleme de performanta. Problema se reduce la a randa intr-o textura 3D bucati din model, prin ajustarea planului de apropiere. Tehnica este descrisa in GPU Gems 3 aici: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch30.html
(scroll spre mijlocul paginii la capitolul Voxelization).

Toate lucrurile merg foarte bine doar ca metoda este destul de lenta. Trebuie sa rasterizez modelul de N ori cu two sided stencil, unde N este rezolutia texturii volumetrice. Incerc sa imbunatatesc performanta folosind geometry instancing doar ca nu prea am experienta cu asta... deloc! M-am uitat pe opengl.org la pagina cu referinte si am inteles ce se intampla cu instancing-ul insa mi-este neclar urmatorul lucru: desi in vertex shader primesc un instanceID care poate fi considerat numarul slice-ului si pot folosi o matrice ortografica cu ZNear-ul ajustat corepunzator, nu intteleg cum anume randez eu intr-un singur pass pe toate nivelele texturii 3D? Pentru ca eu folosesc un FBO in varianta cu N passes si de fiecare data fac bind la nivelul texturii 3D curent. Astfel in N pasi umplu textura 3D cu informatii.. Dar intr-un singur pas, cum s-ar face?

Ultima editare efectuată de Deliverance pe 24 Aug 2010 12:12:53; 1 editări în total


Status:
Înregistrat pe:
13 Oct 2006 10:05:37
Vârsta: 25 ani
Mesaje: 253
Locatie: Iasi , Romania
Programator

 
    Postat la 24 Aug 2010 13:00:30    Subiect: Re: Voxelizare & geometry instancing
Pintea info:

Pintea:

Deliverance a scris:

Lucrez la un mic proiectel in care voxelizez solid un model 3D si am niste probleme de performanta. Problema se reduce la a randa intr-o textura 3D bucati din model, prin ajustarea planului de apropiere. Tehnica este descrisa in GPU Gems 3 aici: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch30.html
(scroll spre mijlocul paginii la capitolul Voxelization).

Toate lucrurile merg foarte bine doar ca metoda este destul de lenta. Trebuie sa rasterizez modelul de N ori cu two sided stencil, unde N este rezolutia texturii volumetrice. Incerc sa imbunatatesc performanta folosind geometry instancing doar ca nu prea am experienta cu asta... deloc! M-am uitat pe opengl.org la pagina cu referinte si am inteles ce se intampla cu instancing-ul insa mi-este neclar urmatorul lucru: desi in vertex shader primesc un instanceID care poate fi considerat numarul slice-ului si pot folosi o matrice ortografica cu ZNear-ul ajustat corepunzator, nu intteleg cum anume randez eu intr-un singur pass pe toate nivelele texturii 3D? Pentru ca eu folosesc un FBO in varianta cu N passes si de fiecare data fac bind la nivelul texturii 3D curent. Astfel in N pasi umplu textura 3D cu informatii.. Dar intr-un singur pas, cum s-ar face?


La o prima vedere cred ca ai putea face cu texture arrays si geometry shaders in directx 10. E o tehnica ce se foloseste ptr umbre - cascaded shadow maps- : se deseneaza de N ori geometria instantiata in cele N texturi.

Nu stiu insa daca merge sa desenezi instantiat intr-o textura 3D, dar daca nu, o poti simula folosind texture arrays.



Status:
Înregistrat pe:
05 May 2007 14:50:45
Vârsta: 29 ani
Mesaje: 301
Locatie:
Programator

 
    Postat la 25 Aug 2010 21:52:17    Subiect: < fara subiect >
Deliverance info:

Deliverance:

Merci pentru raspuns. Pare buna ideea dar nu am gasit pe net nicio informatie legata de asta. In esenta ar trebui sa am o modalitate de a randa intr-un texture array, insa pot sa-mi imaginez lucrul asta doar daca fac instancing si folosesc MRT(care-s limitate ca numar...). Poti sa-mi dai mai multe detalii te rog, eventual niste code snippets?

EDIT: de fapt am vazut ca nvidia au un exemplu cu texture arrays si cascaded shadow maps dar de randat randeaza tot de N ori si selecteaza la fiecare pass shadowmap-ul corespunzator.. hmm...

Ultima editare efectuată de Deliverance pe 25 Aug 2010 21:54:24; 1 editări în total


Status:
Înregistrat pe:
13 Oct 2006 10:05:37
Vârsta: 25 ani
Mesaje: 253
Locatie: Iasi , Romania
Programator

 
    Postat la 26 Aug 2010 23:03:20    Subiect: Re:
Pintea info:

Pintea:

Deliverance a scris:

Merci pentru raspuns. Pare buna ideea dar nu am gasit pe net nicio informatie legata de asta. In esenta ar trebui sa am o modalitate de a randa intr-un texture array, insa pot sa-mi imaginez lucrul asta doar daca fac instancing si folosesc MRT(care-s limitate ca numar...). Poti sa-mi dai mai multe detalii te rog, eventual niste code snippets?

EDIT: de fapt am vazut ca nvidia au un exemplu cu texture arrays si cascaded shadow maps dar de randat randeaza tot de N ori si selecteaza la fiecare pass shadowmap-ul corespunzator.. hmm...


http://http.developer.nvidia.com/GPUGems3/gpugems3_ch10.html

de la "Using Geometry Shader Cloning" in jos



Status:
Înregistrat pe:
05 May 2007 14:50:45
Vârsta: 29 ani
Mesaje: 301
Locatie:
Programator

 
    Postat la 26 Aug 2010 23:47:08    Subiect: < fara subiect >
Deliverance info:

Deliverance:

Thanks, am bagat la cap! Problema este ca sunt limitat de numarul de color attachements, care pe placa mea este 8! Eu ma gandeam cu inocenta ca as putea si mai bine..(undeva pe la 12Cool dar e de-ajuns si asa.. Very Happy

Desi.. daca ma gandesc, as putea sa fac un unwrap la textura3D, intr-o textura 2D cu dimensiunea (N*N) x N, sa randez cu instancing N modele iar in pixel shader, adresez textura2D si scriu in ea, in functie de instanceID-ul venit din vertex shader.

Trebuie incercat sa vad care iese mai bine ca peformanta.

Merci!


Status:
Înregistrat pe:
13 Oct 2006 10:05:37
Vârsta: 25 ani
Mesaje: 253
Locatie: Iasi , Romania
Programator

 

Pagina 1 din 1 [ 1 ]


Server time: 06:18:45 22.05.2012



[ Termeni si conditii | Contact | F.A.Q. | Funny Pictures ]

© 2006 - 2012 Copyright 7thFACTOR Entertainment - All rights reserved