Expand material texture mapping shaders - perhaps node system

Component:YafaRay Core
Category:feature request
Assigned:David Bluecame

Currently not all the shader parameters can be modulated by textures. For more flexibility & better materials these should be:

  • Exponent (glossy & coated glossy)
  • Mirror color (coated glossy)
  • IOR intensity (coated glossy)
  • Refraction color (glass & rough glass)
  • Transmission color (glass & rough glass)
  • Dispersion intensity (glass & rough glass)
  • Roughness (rough glass)
  • Emit intensity (shinydiffuse)
  • IOR intensity (shinydiffuse)

Some of this parameters are more important to be map-able (like exponent and transmission color), others less. But being able to do so would result in much more variety for basis shaders, without the need to use blend (which is slow and currently buggy in some cases). The blend shader cannot fully offer this funcionality for the parameters that can be set only by single values. For example; if you would want to create a multicolored glass with the blend shader, you would need to mix together a number of glass materials, which is unflexible, slow and messy (a deep hirarchy of blends might cause also other rendering problems).



Status:active» postponed

Postponed to YafaRay 013


Title:Shader parameters to become map-able» Expand material texture mapping shaders - perhaps node system
Assigned to:Anonymous» David Bluecame
Status:postponed» active

The more I think about it, the more I think we should do this as soon as possible. The blend material is indeed limited, slow and buggy, and extending the mapping (perhaps node system for materials?) would make the blend material unnecessary in many cases.

So, I'm changing this to "active" again...


The one making more sense and difference would be mapping glossy exponent value, which would be very useful. I don't understand some of the request since:

  • Mirror color can be already mapped, see here.
  • Emit intensity can be already mapped, see here.

IOR instensity for Fresnel is view dependant, so I don't see how making it dependant on texture would be useful or possible, but maybe could be used to control transition on the border of the reflection effect, which in YafaRay is too hard. The other ones I don't think would make much difference.


Status:active» ready to commit



I've implemented an extended Texture Mapping system with almost all these requested mappings. Already included in Experimental v0.1.99-beta3.


For links and example images see:



For now it's so experimental that I have not yet created a pull request against official YafaRay, so I will mark this as Ready to Commit, so we can evaluate how the beta3 works for some time before trying to integrate this in the master branch.


I hope you like it!


Status:ready to commit» fixed

Fixed in YafaRay-E (Experimental) v1.0.0


For more information, see:  http://www.yafaray.org/community/forum/viewtopic.php?f=12&t=5117


If you still have this issue with the new version please let us know.


Status:fixed» closed

Automatically closed -- issue fixed for 2 weeks with no activity.