.[ ČeskéHry.cz ].
OpenGL render do 2d texture array

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
michalferko



Založen: 29. 09. 2008
Příspěvky: 83

PříspěvekZaslal: 12. březen 2013, 17:26:33    Předmět: OpenGL render do 2d texture array Odpovědět s citátem

Zdravim, je mozne attachnut jeden TEXTURE_2D_ARRAY do depth attachmentu a jeden do color0 attachmentu a nasledne po geometry shader cloningu (a nastaveni gl_Layer = 0, 1, ...) simulovat viacero depth bufferov naraz. Tj. mam napriklad dve shadow mapy, a takto by sa dali jednym prechodom vyratat obe, ze by FBO malo dva separatne depth buffery a cloningom by sa vlastne simulovali dva rozne pohlady na scenu.

Ide to? Nieco take spominaju pri D3D10 hardveri tu: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch10.html v casti DirectX 10-Level Acceleration. Ale dosial som myslel, ze v OpenGL nieco taketo nejde.

Napadlo mi simulovat to tak, ze rozseknem attachmenty na dve casti a na kazdej renderujem iny pohlad. Ten prvy sposob sa mi ale zda byt elegantnejsi.

Alebo pomocou GL4 a shader image load store, ale to je podla mna trochu overkill. A tiez zatial nemam GL4 hardver na testovanie.

Dik za odpovede.
_________________
Moje minihry a ine projekty
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1827

PříspěvekZaslal: 12. březen 2013, 17:40:03    Předmět: Odpovědět s citátem

Nestudoval som to velmi v GL3+, ale v DX10+ to ide. Takto sa renderuje napriklad do cubemapy pripadne do dual paraboloidu. Cubemapa je uplne obyc texture array so 6 slicami. Aj color target aj depth target su takyto array.

V GS si vyberies, do ktoreho slicu z texture array zapises a mas (zapises na vystup GS do SV_RenderTargetArrayIndex hodnotu 0 az 5). V GL to musi ist uplne fpoho tiez, to je ten gl_Layer (pozor ale na to indexovanie, nejako som to presne nepochopil, nechcelo sa mi) Smile
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1827

PříspěvekZaslal: 12. březen 2013, 17:46:46    Předmět: Odpovědět s citátem

Samozrejme sa da takto pocitat viacero shadowmap naraz, preco nie, ale to klonovanie pomocou GS ma svoje limity v zmysle, ze to nie je velmi rychle. Tiez bude velky tlak na interpolatory -- medzi GS a PS stage mozes preniest v interpolatoroch karty len urcite mnozstvo dat pre kazdy fragment (aj ked pri shadowmape to asi nebude mnoho). Kazdopadne uplne nekvalifikovane odhadujem, ze ak sa budes takto snazit renderovat napriklad 20 shadowmap naraz, tak benefit, ze mas jediny draw call a jediny krat sa prenesu data z input assemblera do vertex shaderu moze byt prevazeny tym, aky pomaly je ten GS. Chcelo by to benchmark Smile
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
michalferko



Založen: 29. 09. 2008
Příspěvky: 83

PříspěvekZaslal: 12. březen 2013, 18:54:20    Předmět: Odpovědět s citátem

No mozno popri tom nejaky ten benchmark spravim.

Este som si vsimol ze v GL4 je mozno spravit viacero viewportov naraz a pouzit v GS gl_ViewportIndex. To by ulahcilo metodu s rozdelenim attachmentov na viacero casti, nemusel by som tolko programovat.

Ked budem mat nieco behajuce, tak sa mozno ozvem s nejakymi vysledkami.
_________________
Moje minihry a ine projekty
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 12. březen 2013, 20:27:23    Předmět: Odpovědět s citátem

ak som to dobre pochopil tak treba pripojit 3D alebo array texturu do FBO pomodou glFramebufferTexture() a nassledne pouzit gl_Layer. taktiez by to malo byt mozne spravit na GL3 HW kedze viac menej DX10==GL3.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna