Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 3. červen 2013, 20:47:19 Předmět: Chyba kompilace GLSL shaderu při použití rozšíření |
|
|
Dotaz: Proč mi tento triviální vertex shader
kód: |
1: #version 130
2: #extension GL_ARB_explicit_attrib_location : require
3:
4: invariant gl_Position;
5:
6: uniform mat4 modelViewProjectionMatrix;
7: layout(location=0) in vec3 position;
8: layout(location=1) in vec4 color;
9: out vec4 Color;
10: void main()
11: {
12: Color = color;
13: gl_Position = modelViewProjectionMatrix*vec4(position, 1);
14: } |
vrací chybu
kód: |
0(7) : error C0000: syntax error, unexpected '(', expecting "::" at token "(" |
?
Mám tam fakt nějakou chybu, nebo je to driver bug? K čemu se vůbec používá v GLSL "::"?
Spouštím to na GeForce 9300M GS/PCIe/SSE2, verze ovladače 3.0.0 NVIDIA 304.88 (linux).
Díky. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
TeaTime
Založen: 17. 06. 2011 Příspěvky: 264
|
Zaslal: 3. červen 2013, 22:25:07 Předmět: |
|
|
Není to nízká #version GLSL? |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 3. červen 2013, 23:03:33 Předmět: |
|
|
Možná.
Citace z http://www.opengl.org/registry/specs/ARB/explicit_attrib_location.txt :
citace: |
Dependencies
Requires OpenGL 2.0 or GL_ARB_vertex_shader.
This extension interacts with GL_ARB_blend_func_extended.
This extension is written against the OpenGL 3.2 (Core Profile)
specification dated 7/24/2009 and the OpenGL Shading Language 1.50.09
specification dated 7/24/2009.
This extension interacts with GL_ARB_separate_shader_objects,
GL_ARB_gpu_shader_fp64, OpenGL 4.0, and OpenGL 4.1. |
Moc moudrý z toho nejsem. Je sice "written against" OpenGL Shading Language 1.50.09, ale "requires" pouze OpenGL 2.0 or GL_ARB_vertex_shader (tzn. GLSL 1.10).
Ale zase na druhou stranu toto rozšíření podporují na linuxu intely, jejichž ovladače podporují jen GLSL 1.30, takže se nabízí otázka, proč? _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
Krolli
Založen: 12. 05. 2013 Příspěvky: 13
|
Zaslal: 4. červen 2013, 07:46:47 Předmět: |
|
|
Priznam sa, ze s verziami pred GLSL 3.3 nemam velmi skusenosti takze si niesom uplne isty v com je problem. Skusal som to u seba a fungovalo to na 1.5 a 1.4 ale na 1.3 to malo rovnaky problem. Mozno to je problem NVIDIA driverov pre stare verzie OpenGL. Skusal si nastavovat tie hodnoty pomocou glBindAttribLocation ? |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 4. červen 2013, 08:32:54 Předmět: |
|
|
Tomu jsem se chtěl právě vyhnout.
Ještě mě napadlo dát do zdrojáku
#define layout(x)
To odmaže layout deklarace. Pak rozparsovat zdroják a získané hodnoty nabindovat přes glBindAttribLocation a glBindFragDataLocation. Ale to se mi nechce  _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
Krolli
Založen: 12. 05. 2013 Příspěvky: 13
|
Zaslal: 4. červen 2013, 19:12:06 Předmět: |
|
|
Tiez by si si mohol zaviest konvenciu ako tie vstupy budes pomenovavat a neriesit ich umiestnenie. Je to urcite menej pracne ako to rozparsovat.  |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 4. červen 2013, 19:14:31 Předmět: |
|
|
To je fakt. Tak už to ostatně dělám u textur. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
Krolli
Založen: 12. 05. 2013 Příspěvky: 13
|
Zaslal: 4. červen 2013, 19:28:11 Předmět: |
|
|
A este ked sa nahodou inspirujes semantikami v DirectX tak sa tam nema co pokazit.  |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 4. červen 2013, 20:48:17 Předmět: |
|
|
Krolli: Tvé nápady se mi líbí, asi je použiju. Díky. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
|