bubu
03-20-07, 23:33
Turpinājums šim te: http://www.eoz.lv/forum/showthread.php?t=3838
Ja jūs zinātu kā man riebjas ATI...
Rakstu atkal kārtējo šeiderīti - bump/parallax mappings, soft shadows, un tamlīdzīgus niekus.
Uz Nvidias iet tā ka prieks (pat uz 5200fx). Taču uz ATI (Mobility Radeon X1600) ēnu nav.. Vispār nav. Nulle. Viss ir gaišs kā dienā.
Nesaprotu. Skatos, skatos. Ilgi skatos. Veselas 2.5 h skatījos.
Beigās atradu vainu GLSL vertex šeiderī. Šo te:
gl_TexCoord[2] = ecPosition * mat4( gl_EyePlaneS[2],
gl_EyePlaneT[2],
gl_EyePlaneR[2],
gl_EyePlaneQ[2] );
vajadzēja aizstāt ar: gl_TexCoord[2].x = dot( ecPosition, gl_EyePlaneS[2] );
gl_TexCoord[2].y = dot( ecPosition, gl_EyePlaneT[2] );
gl_TexCoord[2].z = dot( ecPosition, gl_EyePlaneR[2] );
gl_TexCoord[2].w = dot( ecPosition, gl_EyePlaneQ[2] );
Kautgan pēc OpenGL Shading Language 1.10 specifikācijas (varat paši gūglē uziet, par brīvu piejama) par matricu un vektoru reizināšanu ir rakstīts:
ja m ir mat4 tipa matrica (manā gadījumā tā ir uzkonstruēta pirmajā koda piemērā ņemot tos gl_EyePlanesX kā matricas kolonnas) un
v ir vec4 tipa vektors (manā gadījumā ecPosition) un
g ir vec4 tipa vektors (manā gadījumā gl_TexCoord[2]), tad g = v * m pieraksts ir ekvivalents ar:
g.x = dot (v, m[0]);
g.y = dot (v, m[1]);
g.z = dot (v, m[2]);
g.w = dot (v, m[3]);
m[i] - šādi dabū matricas m i-to kolonnu (i=0,1,2,3). Tās kolonnas var padot matricas uzkonstruēšanai mat4 argumentos - tas ir tā kā es daru pirmajā koda piemērā.
Nu un vai es kautko nepareizi daru/saprotu/izprotu?? Kur ir atšķirība?! m?
Nesaprotu kādi developeri tur ATI strādā.. Un apbrīnoju game-developerus pie lielām spēlēm. Kādi viņiem tur ir čakari ar šeideru rakstīšanu ATI videokartēm. Uh..
Draiveri jaunākie - Catalyst v7.2
Ienīstu ati.
Nepērciet ati videokartes. Tad nebūs čakara ar šeideru rakstīšanu.
Ja jūs zinātu kā man riebjas ATI...
Rakstu atkal kārtējo šeiderīti - bump/parallax mappings, soft shadows, un tamlīdzīgus niekus.
Uz Nvidias iet tā ka prieks (pat uz 5200fx). Taču uz ATI (Mobility Radeon X1600) ēnu nav.. Vispār nav. Nulle. Viss ir gaišs kā dienā.
Nesaprotu. Skatos, skatos. Ilgi skatos. Veselas 2.5 h skatījos.
Beigās atradu vainu GLSL vertex šeiderī. Šo te:
gl_TexCoord[2] = ecPosition * mat4( gl_EyePlaneS[2],
gl_EyePlaneT[2],
gl_EyePlaneR[2],
gl_EyePlaneQ[2] );
vajadzēja aizstāt ar: gl_TexCoord[2].x = dot( ecPosition, gl_EyePlaneS[2] );
gl_TexCoord[2].y = dot( ecPosition, gl_EyePlaneT[2] );
gl_TexCoord[2].z = dot( ecPosition, gl_EyePlaneR[2] );
gl_TexCoord[2].w = dot( ecPosition, gl_EyePlaneQ[2] );
Kautgan pēc OpenGL Shading Language 1.10 specifikācijas (varat paši gūglē uziet, par brīvu piejama) par matricu un vektoru reizināšanu ir rakstīts:
ja m ir mat4 tipa matrica (manā gadījumā tā ir uzkonstruēta pirmajā koda piemērā ņemot tos gl_EyePlanesX kā matricas kolonnas) un
v ir vec4 tipa vektors (manā gadījumā ecPosition) un
g ir vec4 tipa vektors (manā gadījumā gl_TexCoord[2]), tad g = v * m pieraksts ir ekvivalents ar:
g.x = dot (v, m[0]);
g.y = dot (v, m[1]);
g.z = dot (v, m[2]);
g.w = dot (v, m[3]);
m[i] - šādi dabū matricas m i-to kolonnu (i=0,1,2,3). Tās kolonnas var padot matricas uzkonstruēšanai mat4 argumentos - tas ir tā kā es daru pirmajā koda piemērā.
Nu un vai es kautko nepareizi daru/saprotu/izprotu?? Kur ir atšķirība?! m?
Nesaprotu kādi developeri tur ATI strādā.. Un apbrīnoju game-developerus pie lielām spēlēm. Kādi viņiem tur ir čakari ar šeideru rakstīšanu ATI videokartēm. Uh..
Draiveri jaunākie - Catalyst v7.2
Ienīstu ati.
Nepērciet ati videokartes. Tad nebūs čakara ar šeideru rakstīšanu.