Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
KuboSVK
Založen: 13. 03. 2008 Příspěvky: 40
|
Zaslal: 12. květen 2009, 17:55:31 Předmět: Ako ziskat hodnotu zo shader - u |
|
|
Zdar,
chcem predat shader - u hodnotu (to ide v poho cez uniform premennu), tuto hodnotu potrebujem ale v shaderi modifikovat (problem je ale ten, ze uniform je konstanta) a takto modifikovanu hodnotu vratit spat do c++ kodu. Ako na to ?
Mozno je to trivialna otazka, ale som zaciatocnik co sa tyka shaderov.
Dik. |
|
Návrat nahoru |
|
 |
Manox

Založen: 30. 07. 2007 Příspěvky: 140 Bydliště: Brno
|
Zaslal: 12. květen 2009, 18:10:34 Předmět: |
|
|
To se obávám, že není možné, předávat proměnné jde jen z C++ do shaderu. Na co jsi to potřeboval ? Budeš to muset počítat asi na CPU a až pak předat shaderu. |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 12. květen 2009, 18:29:49 Předmět: |
|
|
tak da sa ziskat ta modifikovana premenna naspet ale iba ako vykreslenie do framebufferu. takze pokial to nema byt tisicky vystupov tak sa to neoplati to davat na GPU. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
KuboSVK
Založen: 13. 03. 2008 Příspěvky: 40
|
Zaslal: 13. květen 2009, 11:38:17 Předmět: |
|
|
Riesim problem Volume Rendering - u. Zjednodusene povedane, mam paprsok prechadzajuci urcitym objemom - ide o snimky z CT a magnetickej rezonancie zoradene jeden za druhym a tvoriace akysi stack 2D textur. Paprsok prechadza tymto stackom a z kazdej textury si zoberie RGB hodnotu. Mne sa tato hodnota pri prechode celym zasobnikom neustale akumuluje. Hodnota RGB pre i - tu texturu nezavisi len od samotnej hodnoty RGB v tejto i - tej texture ale aj od tej naakumulovanej hodnoty RGB z predoslych uz spracovanych textur. A tu je prave problem, neviem ako si predavat tu naakumulovanu RGB hodnotu z predoslych textur.
Asi budem musiet nejako precitat hodnotu z framebufferu. Ale to neviem ako na to |
|
Návrat nahoru |
|
 |
KuboSVK
Založen: 13. 03. 2008 Příspěvky: 40
|
Zaslal: 13. květen 2009, 12:01:37 Předmět: |
|
|
Tak som asi prisiel na to ako, cez glDrawBuffers si nastavim do akych bufferov chcem vo fragment shaderi zapisovat a tam uz len puzijem
gl_FragColor[0] = ...
gl_FragColor[1] = ... - bude Auxiliari buffer udrzovat tu moju naakumulovanu hodnotu.
Dufam, ze to pofrci  |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 13. květen 2009, 12:12:19 Předmět: |
|
|
heh presne toto som riesil aj ja pred par dnami. http://www.daimi.au.dk/~trier/?page_id=98 pravdepodobne ides touto metodou. no tak to proste vykresli normalne do framebuferu. a odtial to uz precitas cez glReadPixels() popripade ak potrebujes vetsiu presnost alebo rozsah tak si mozes pozriez aj nieco o FBO a nastavit teda vykreslovanie do float textury. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
|