I am trying to create a material which uses a texture. That texture is used in a subgraph (I think the technical term in blender is NoedGroup, but Im not sure). The input for that subgraph is the texture name as a string, uv coordinates and some other stuff.

I have a osl script which loads the texture using the texture name and do all the operations needed. The problem is that the script node is not compatible with eevee.

Is there anyway to add the image texture as an input to the subgraph so I can replace the osl script with eevee compatible nodes?

I have check this other answer, but seems to be doing exactly what I currently have. Select Input Texture file name as parameter/node

enter image description here

  • $\begingroup$ You'll have to script a custom node with Python, as far as I know $\endgroup$ Dec 12 '19 at 18:00
  • $\begingroup$ How would do that with eevee compatibility? $\endgroup$
    – jjcasmar
    Dec 12 '19 at 21:09
  • 1
    $\begingroup$ Let's start by calling things by their proper term, this is a node group. It looks to me that what you have is a color (RGB) output from that script. So if you want to combine it with other RGB information (the image in question) you just need to add an RGB mix node before the output to combine the texture and image. $\endgroup$
    – user1853
    Dec 15 '19 at 20:34
  • $\begingroup$ @cegaton I think you have completely misunderstood the question. What I want is to replace the script by the ImageTexture node, but be able to modify the image using some input to the node group $\endgroup$
    – jjcasmar
    Dec 17 '19 at 9:06

Unfortunately there isn't any way to create a NodeGroup that has a Texture selection as an input without some coding to create Custom nodes. For the Custom node, you'd have to have the image texture node in the node tree, whose value you would change via code using the custom node UI. Please read information in the link below for a much more thorough explanation of this process. Cycles Materials Math node with more than two inputs

  • $\begingroup$ Will this be compatible with eevee? $\endgroup$
    – jjcasmar
    Dec 16 '19 at 10:26
  • $\begingroup$ I was thinking on adding a color input to the NodeGroup. By code, I would detect if that color input is connected to an external ImageTexture and update the internal ImageTexture node to match the external one. Would this be possible? $\endgroup$
    – jjcasmar
    Dec 16 '19 at 11:06
  • $\begingroup$ I have tested it with a very simple material and the ShaderNodeCustomGroup appears to work fine in eevee $\endgroup$
    – jjcasmar
    Dec 16 '19 at 11:37
  • $\begingroup$ Hey, sorry I didn't reply. I see that you've already tested it. It's definitely a more powerful alternative to OSL shaders which are more convenient in comparison. Glad I could be of help ^^ $\endgroup$ Dec 17 '19 at 11:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.