.[ ČeskéHry.cz ].
OpenGL - vytažení hodnot z shaderu
Jdi na stránku Předchozí  1, 2
 
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
TeaTime



Založen: 17. 06. 2011
Příspěvky: 264

PříspěvekZaslal: 15. září 2013, 15:13:45    Předmět: Odpovědět s citátem

nou napsal:
tak ale shader ktorym sa to snazis vykreslit ten atribut definovany ma. ale ak je dany attribut vypnuty cez glDisableVertexAttribArray() tak by malo brat hodnotu ktora sa nastavy pomocou glVertexAttrib() ktora je standartne nastavena na [0,0,0,1]

OpenGL specification 2.8.3 napsal:
If an array corresponding to a generic attribute required by a vertex shader is not enabled, then the corresponding element is taken from the current generic attribute state (see section 2.7).


Taky jsem měl za to, že se to takhle má chovat. Kód shaderu ten atribut totiž vůbec nepotřebuje. Vypadá to, že se glDraw* vpodstatě vůbec neprovede.

Připadá mi to, jako by si glDraw* myslel, že když je atribut na pozici 0 disabled, tak není nahraný žádný glsl program, takže nemá cenu vůbec vykreslovat.

Jestli by to taky nemohla být specifikace opengl driveru na kterém to spouštím. Používám fglrx od ATI na Linuxu a ze zkušenosti vím, že se v nemálo případech odchyluje od specifikace opengl. Tyto odchylky se ale většinou projevují segfaulty, černým oknem netrpí žádná aplikace, co používám.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



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

PříspěvekZaslal: 15. září 2013, 15:26:27    Předmět: Odpovědět s citátem

tak asi to nie je bug http://www.opengl.org/discussion_boards/showthread.php/180943-Attribute-binding-bug-on-ATI?p=1247733#post1247733 ak nepouzivas core profile tak attribute 0 je povinny.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
TeaTime



Založen: 17. 06. 2011
Příspěvky: 264

PříspěvekZaslal: 16. září 2013, 19:05:37    Předmět: Odpovědět s citátem

nou napsal:
tak asi to nie je bug http://www.opengl.org/discussion_boards/showthread.php/180943-Attribute-binding-bug-on-ATI?p=1247733#post1247733 ak nepouzivas core profile tak attribute 0 je povinny.


Díky. Zkusil jsem pomocí freeglutu nastavit core profile, ale nepomohlo to. Asi problém ve freeglutu nebo v tom, jak ho používám.

Asi to nakonec vyřeším tak, že na pozici 0 nabinduju vertex position, takže to bude vždy nastavené a nebude třeba to řešit.

Tak díky nou za všechnu pomoc, bez tebe by to bylo hrozné.
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
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
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