[GEM-dev] svn update break rectangular texture with shader

cyrille henry ch at chnry.net
Tue Jan 19 15:22:01 CET 2010


hello,

if this is the best solution for the future of Gem, i'm ok to manually check all my shaders and adapt them like you describe.
i'll have a look next week...
c




IOhannes m zmoelnig a écrit :
> cyrille henry wrote:
>> hello,
>>
>> i just did an svn update. lots of file have changed. (last update was 21
>> december)
>> after building gem, i realized that few shaders example did not work
>> any-more.
>> it look to be related with rectangular texture : if you open shader
>> example 1 : simple texture : it work ok with non rectangular texture
>> (but the texture is upside down), but it does not work at all in
>> rectangular mode...
> 
> hmm, the solution is "simple": you have to pre-multiply the texture
> matrix with the current tex-coords.
> 
> something like
> 
> <diff>
> Index: texture_rect.frag
> ===================================================================
> --- texture_rect.frag   (Revision 3085)
> +++ texture_rect.frag   (Arbeitskopie)
> @@ -7,8 +7,7 @@
> 
>  void main (void)
>  {
> -vec4 color = texture2DRect(MyTex, gl_TexCoord[0].st);
> -// vec4 color = texture2D(MyTex, gl_TexCoord[0].st);
> +  vec4 color = texture2DRect(MyTex,  (gl_TextureMatrix[0] *
> gl_TexCoord[0]).st);
>   color *= B+1.; // brightness
>   vec4 gray = vec4(dot(color.rgb,vec3(0.2125,  0.7154, 0.0721)));
>   color = mix(gray, color, C+1.); // contrast
> </diff>
> 
> now i know that this breaks about each shader written so far for Gem.
> 
> the change is rather trivial, but it has to be done for each shader (to
> fix the upside down issue, it has also to be done for normalized
> (sampler2D) textures.
> the change in the shader code should (to the best of my knowledge) be
> compatible with older versions of Gem.
> 
> i don't see a way how this change could be automated (without parsing
> the shader and dynamically modifying it, which i would rather not :-)
> 
> the alternative would be to go back, which is also a bit problematic, as
> the change did fix inconsistencies and bugs between various platforms.
> 
> 
> does anybody have any other ideas how this could be handled with the
> least annoyance for everybody?
> 
> 
> fmgasdr
> IOhannes
> 
> PS: a hackish solution could also be the use of [pix_coordinate] to
> explicitely set the texture coordinates to "rectangular" values. this
> has the main drawback that it only works for the most primitive Geos.
> personally, i would not really recommend this, but i mention it for
> completeness' sake.
> 




More information about the GEM-dev mailing list