[GEM-dev] Guassian Blur pixel shader?

james tittle tigital at mac.com
Fri Feb 17 19:59:48 CET 2006


On Feb 17, 2006, at 1:17 PM, chris clepper wrote:

> Got it.  The uniform was not being set properly in my patch.  Now I
> get the blur, but linking is not always working the first time
> through.

...cool!  The way the patch is set-up, the user must hit the link  
button once the shaders are loaded; and another caveat is that the  
shader ID's will only be sent to [glsl_program] after a render  
cycle...then and only then will you get a properly linked shade  
program...

> On 2/17/06, chris clepper <cgclepper at gmail.com> wrote:
>> Some more info:
>>
>> There are three outlets for glsl_fragment and in these patches the
>> middle one is connected to the shader number message for  
>> glsl_program.
>>  That middle outlet never changes but the right one does.  I  
>> connected
>> that up and now get varying output from the shader (although it still
>> doesn't work):
>>
>> link 2 progs
>> attach object 0
>> attach object 1
>> getting 722 chars for infolog
>> GEM: [glsl_program]: Info_log:
>> ERROR: Fragment shader reads varying 'texCoord0' which is not written
>> since there is no vertex shader.
>> ERROR: Fragment shader reads varying 'texCoord1' which is not written
>> since there is no vertex shader.
>> ERROR: Fragment shader reads varying 'texCoord2' which is not written
>> since there is no vertex shader.
>> ERROR: Fragment shader reads varying 'texCoord3' which is not written
>> since there is no vertex shader.
>> ERROR: Fragment shader reads varying 'texCoord4' which is not written
>> since there is no vertex shader.
>> ERROR: Fragment shader reads varying 'texCoord5' which is not written
>> since there is no vertex shader.
>> ERROR: Fragment shader reads varying 'texCoord6' which is not written
>> since there is no vertex shader.
>>
>> GEM: [glsl_program]:  Link failed!
>>
>> After that I load the shaders again and get this:
>>
>> [glsl_vertex]: Loaded file: /Users/schwartz/Desktop/gaussBlurGLSL/ 
>> gaussBlur.vert
>> [glsl_fragment]: Loaded file:
>> /Users/schwartz/Desktop/gaussBlurGLSL/gaussBlur.frag
>> link 2 progs
>> attach object 0
>> attach object 1
>> getting 0 chars for infolog
>> [glsl_program]: vertex shader running in hardware
>> [glsl_program]: fragment shader running in hardware
>>
>> I have a 256x256 file and pix_texture in mode 0.  Any ideas?
>>
>> cgc
>>
>> On 2/17/06, chris clepper <cgclepper at gmail.com> wrote:
>>> No joy here.  It looks like the fragment shader is not loading  
>>> properly:
>>>
>>> [glsl_fragment]: Loaded file:
>>> /Users/schwartz/Desktop/gaussBlurGLSL/gaussBlur.frag
>>> link 2 progs
>>> attach object 0
>>> attach object 1
>>> getting 722 chars for infolog
>>> GEM: [glsl_program]: Info_log:
>>> WARNING: Vertex shader writes varying 'texCoord0' which is not read
>>> since there is no fragment shader.
>>> WARNING: Vertex shader writes varying 'texCoord1' which is not read
>>> since there is no fragment shader.
>>> WARNING: Vertex shader writes varying 'texCoord2' which is not read
>>> since there is no fragment shader.
>>> WARNING: Vertex shader writes varying 'texCoord3' which is not read
>>> since there is no fragment shader.
>>> WARNING: Vertex shader writes varying 'texCoord4' which is not read
>>> since there is no fragment shader.
>>> WARNING: Vertex shader writes varying 'texCoord5' which is not read
>>> since there is no fragment shader.
>>> WARNING: Vertex shader writes varying 'texCoord6' which is not read
>>> since there is no fragment shader.

...what this is telling us is that there is no fragment shader  
loaded:  actually, you may have loaded a shader, but [glsl_program]  
isn't receiving the correct shaderObject ID...last night I fixed a  
bug in [glsl_fragment] which caused multiple outlet's to be produced,  
and only one of them actually output the correct ID:  this is fixed  
in cvs...

>>> [glsl_program]: vertex shader running in hardware
>>> [glsl_program]: fragment shader running in hardware
>>>
>>> There's no ouput in the gemwin at all.

...well, because you don't have a valid fragment shader to match your  
vertex shader, I wouldn't imagine anything would be output...but  
then, make sure you are just using square movies (256x256 or the  
like), and make sure that [pix_texture] is operating in [mode 0<

>>> The interface for GLSL in GEM is not exactly user friendly  
>>> either.  I
>>> wouldn't expect very many people to figure this out and get a shader
>>> working in their own patches (myself included apparently).

...yeh, right now it's a little too close to the metal...but I have  
had some thoughts about how to ease it up, perhaps thru using an  
abstraction that just takes one name and auto loads/creates/links  
the .vert and .frag, and then auto creates a message for whatever  
uniform variables...

...just haven't gotten there, yet...

jamie




More information about the GEM-dev mailing list