On Fri, Nov 1, 2013 at 7:46 PM, Nitneroc <[email protected]> wrote:
> Hi everyone,
>
> I'm a total newbie with pyglet and openGL, but I'd like to know if it's
> possible to add an effect (shader, opacity, or anything) to a whole batch.
> Could it be something as easy as modifying a bit the batch visit function ?
>
> What I'd love would be to make a fog, that would darken the lowest batches
> but leave the top batch unchanged. I could change the color attribute of
> every sprite in the batch, but that seems tedious and shaders would be much
> funnier...
>
Maybe
- You must define a group for each batch,
- the group' s set_state should bind the shader program and send
the uniforms required by the shader (probably an opacity or blackness value)
- the group' s unset_state should unbind your program
- if needed, bind and unbind of textures, set and unset blend mode
- you must write the shader(s) code
The core of this feature is knowledge about openGL shaders: If you have
that, the thing is easy, if not you are headed to invest a considerable
amount of time learning shaders.
You could explore alternative ways to darken lower batches; methods would
depend on exactly what you need to draw.
By example, if the batches draws the k most far layers of terrain, meaning
something like
scene
actors
terrain_batches
you can do
scene
actors
batch1
ColorLayer(0, 0, 0, 20)
batch2
ColorLayer(0, 0, 0, 20)
batch3
Here you will be painting a bit of transparent black over each batch.
Deeper layers will be more darkened.
--
You received this message because you are subscribed to the Google Groups
"cocos2d discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cocos-discuss.
For more options, visit https://groups.google.com/groups/opt_out.