Page MenuHome

PxrProjectionLayer node added instead of the Image Texture node in Cycles
Closed, InvalidPublic

Description

System Information
ASUS G752VS, Windows 10 Pro (1511) 64bit, 32GB RAM, Nvidia GTX1070 8GB VRAM

Blender Version
Broken: 2.78c 64bit portable, 2.78.5 (Hash: 9e08019) 64bit portable
Worked: unknown

Short description of error
Adding an Image Texture node in the (by example) Diffuse BSDF shader from the button on the right of the Color field in the Material Properties panel adds instead the PxrProjectionLayer node.

Exact steps for others to reproduce the error

In Blender 2.78c 64bit (portable), as well as with the latest development build on Windows 10 Pro 64bit with the RMfB add-on activated (I have the latest version of both the add-on, which I sync with the Pixar's GitHub repository, as well as RMan 21.4) but not selected to be the active render engine, which is Cycles, if I add a new material like the default Diffuse BSDF node, and then I click on the Color input "dot" to open a list of nodes to choose from, selecting the Image Texture node Blender adds the PxrProjectionLayer node instead of the Image Texture node.

Here follow some screenshots:



Furthermore, I noticed that even if Cycles is the selected active render engine, all the nodes from PRMan are listed in the Add node menu, which in theory shouldn't.

Here is the link to the discussion on Blender Artists and Brian's comments, just in case.

Thank you for your attention and time.

Event Timeline

Bastien Montagne (mont29) changed the task status from Unknown Status to Invalid.Jun 21 2017, 2:39 PM
Bastien Montagne (mont29) claimed this task.

This totally sounds like an RMfB add-on bug to me? Probably does not correctly check that valid engine is active in its poll functions…

Issue is imho in poll function of root (base) class of nodes.

RMfB code:

def poll(cls, ntree):
    if hasattr(ntree, 'bl_idname'):
        return ntree.bl_idname == 'ShaderNodeTree'
    else:
        return True

LuxRender code:

def poll(cls, tree):
    return tree.bl_idname in ['luxrender_material_nodes', 'luxrender_volume_nodes_a']

RMfB seems to be messing with Cycles' shading tree, when it should create its own!

Thank you Bastien for the clue about where the issue might be coming from. Regards.

Why should it be creating it own? We use the native nodetree for various reasons:

1: Lack of node grouping in custom nodegroups.
2: Before 2.79 we had to link to the custom nodegroup via name (IDPointerProperties fixes this in 2.79). This causes multiple problems for example with linked files pulling in the correct nodegroup.
3: Because the cycles nodes are all OSL we can actually use the cycles nodes (just have to use our Bxdfs).

Either way, I fail to see how this is a RfB issue. If I created some custom nodes to work in the cycles nodetree you'd see the same issue. Is that forbidden as well? Also where does it say that addons MUST NOT use the built in nodetree. Please explain your "invalid" @Bastien Montagne (mont29)