|
ML, Video Input and GLSL, texture2D vs. texture2DRectI was looking into a "problem" that popped up with QC upon Mountain Lion, and just realized there is really no problem. Some old compositions that feature a Video Input patch that directly outputs it's image to a GLSL shader seem to have texture coordinates screwed up now. I had been "working around" this by popping a Core Image patch in between, which sets the proper image attributes. This was bothering me, so I did some testing and found a really simple answer: Video Input now outputs a texture2DRect type texture, not texture2D. This of course changes the coordinate system from normalized to pixel w/h, thus explaining the look of something that isn't UV mapped. Three here are 2 possible fixes, in levels of correctness (IMO): 1.-Make your texture in the shader a rect, not just texture2D.... so, ala: uniform sampler2DRect texture; void main() { //Multiply color by texture gl_FragColor = gl_Color * texture2DRect(texture, gl_TexCoord[0].xy); } or... 2.-Pass the texture through a Core Image kernel, which will also change the "2DRect" texture to "2D".
|
Can't edit the post for some reason... I should have phrased it that "there's not much of a problem". I don't want to take anything away from the fact that it's not that intuitive, and it used to "just work".