PDA

View Full Version : stacking of reactive shaders?


threedeworks
03-09-2006, 12:40 PM
i have a shader/texturing question for you experts: is there some way to set a texture/shader material layer for reactive use only, means that this texture will we exclusively used by the next slot reactive shader, but not rendered? i know that some third party shaders include this as a system, but is there any general solution for this problem?
to simulate a gradient falloff, i tried to work with the fallof values in the filter tab, but apparently it does not work consistently with procedural shaders.

background is that i would like to 'stack' a reactive shader 'couple' of layers over a complex layered material. if i add both the reactive layer and the related reactive shader, the material below those slots does not show anymore.

if there is no easy or maybe obvious solution to this, would it be possible within the current SDK to write a specific utility shader?

cheers

markus

http://img96.imageshack.us/img96/4791/reactivetestproject8aa.jpg

Reuben5150
03-09-2006, 01:17 PM
No time to think, gotta go to work, but won't the blend modes give you what you want ?

later..

Reuben

threedeworks
03-09-2006, 01:45 PM
No time to think, gotta go to work, but won't the blend modes give you what you want ?

later..

Reuben

no, definitely not. the ideal blending mode would be 'reactive only'.
- ooops, isn't that a feature request? :)

Igors
03-09-2006, 05:02 PM
is there some way to set a texture/shader material layer for reactive use only, means that this texture will we exclusively used by the next slot reactive shader, but not rendered? i know that some third party shaders include this as a system, but is there any general solution for this problem?
to simulate a gradient falloff, i tried to work with the fallof values in the filter tab, but apparently it does not work consistently with procedural shaders.

background is that i would like to 'stack' a reactive shader 'couple' of layers over a complex layered material. if i add both the reactive layer and the related reactive shader, the material below those slots does not show anymore.

if there is no easy or maybe obvious solution to this, would it be possible within the current SDK to write a specific utility shader?
Hi, Markus

No, there is no general solution for this problem in EI. In fact you ask about "nodal manager" that was discussed recently.

Nodal system (like in Maya, Max etc) has no multiply textures for each material's attribute. Instead a single assigned map can refer to any number of "sub-maps" that can refer to other sub-sub-maps etc. In other words in nodal system a map is responsible for any combining/mixing.

In EI procedural textures cannot refer to others procedurals or bitmaps. Instead maps are calculated sequentially from bottom to top in their texture list. The lists are also processed in predefined order (the diffuse list is applied first). Bitmaps textures and shaders' colors are always applied to corresponding material's attribute. The output can be mixed with previous.

Note: any other shader's output except color (highlight, bump etc.) is applied "directly"
i.e. independently from shader's texture list. Example: BumpyNoise is added to specular texture list. It means: this BumpyNoise is processed after diffuse textures. The produced color is used as a specular map (mask), but the produced bump is ..used as bump :) Same as Anisotropic creates highlights even the shader is in diffuse list.

"Reactive" in this context: the EI procedural has a very little degree of freedom, cause all it knows is only "actual" data, created by previous chain of maps. That's only one thing is available for mixing (for procedurals and bitmaps as well). In your prj for top bFractal.shd the result of the bottom Bricks.shd is "a remembering about past year show" cause it was killed by the Gradient.shd. Need "reactive saver" for bFractal that should be applied between Bricks and Gradient (enough ugly solution)

So, sorry, Markus, but there is no nodal manager for you :)

barnabythebear
03-09-2006, 06:41 PM
Hi Markus,

This is probably not what your after but you can get some blending using the falloff values in the filter tab.

http://www.2and2.net/Uploads/Images/Blend.jpg

Its a bit fiddley to get it where u want (if u can at all!). I think EIAS should have a blend mode added like Cinema did, where you have an alpha blend mode along with all the others.

ta

nige.

plsyvjeucxfw
03-09-2006, 06:51 PM
Just thinking out loud here: what if the middle shader had one of it's colors set to alpha (using the RGBA color picker) and the other color set to something bold and blatant like neon green? Then the alpha level could be set to Zero allowing the lower shader to show. The top shader would then 'react' to the neon green color and do it's thing, replacing the green with whatever effect it creates?

Haven't tried it but might be worth a shot.

threedeworks
03-09-2006, 07:55 PM
Just thinking out loud here: what if the middle shader had one of it's colors set to alpha (using the RGBA color picker) and the other color set to something bold and blatant like neon green? Then the alpha level could be set to Zero allowing the lower shader to show. The top shader would then 'react' to the neon green color and do it's thing, replacing the green with whatever effect it creates?

Haven't tried it but might be worth a shot.

i tried, but bfraktal in this case does apparently combine it's action with this alpha channel. means, the bricks in the lower part are covered with the bfractal procedural fading up to a complete replacement on the top part with bfraktal.

threedeworks
03-09-2006, 07:58 PM
Hi, Markus

No, there is no general solution for this problem in EI. In fact you ask about "nodal manager" that was discussed recently.

Nodal system (like in Maya, Max etc) has no multiply textures for each material's attribute. Instead a single assigned map can refer to any number of "sub-maps" that can refer to other sub-sub-maps etc. In other words in nodal system a map is responsible for any combining/mixing.

In EI procedural textures cannot refer to others procedurals or bitmaps. Instead maps are calculated sequentially from bottom to top in their texture list. The lists are also processed in predefined order (the diffuse list is applied first). Bitmaps textures and shaders' colors are always applied to corresponding material's attribute. The output can be mixed with previous.

Note: any other shader's output except color (highlight, bump etc.) is applied "directly"
i.e. independently from shader's texture list. Example: BumpyNoise is added to specular texture list. It means: this BumpyNoise is processed after diffuse textures. The produced color is used as a specular map (mask), but the produced bump is ..used as bump :) Same as Anisotropic creates highlights even the shader is in diffuse list.

"Reactive" in this context: the EI procedural has a very little degree of freedom, cause all it knows is only "actual" data, created by previous chain of maps. That's only one thing is available for mixing (for procedurals and bitmaps as well). In your prj for top bFractal.shd the result of the bottom Bricks.shd is "a remembering about past year show" cause it was killed by the Gradient.shd. Need "reactive saver" for bFractal that should be applied between Bricks and Gradient (enough ugly solution)

So, sorry, Markus, but there is no nodal manager for you :)

Igors, thanks for this clear answer - this uncovers something which could be further developed in future, i hope...

cheers

markus

CGTalk Moderation
03-09-2006, 07:58 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.