There is no basecolorr,g,b. That is simply the hscript name for component of the parm tuple.
I sort of thought it might be something like this, and I guess the code is taking this parameter component and assigning it to what was created(attribute) in the shader; vex of the Shader is showing:
export vector export_basecolor = { 0, 0, 0 };
There are a few built-in types that has predetermined types, such as Cd, id, P, etc. All others must be declared. The components you speak of don't exist.
How could they not exist? when I have my material node preceding the wrangle node. And I can make changes to the attributes at the parameter control level of the Shader. Do some attributes ‘dissappear’ from ‘view’ of the wrangle that follows the material node while others do not?
In the wrangle I can apply a change to the IOR/Reflectivity attribute using:
yet I can't, for basecolor use:
@basecolor = set(0.9, 0.5, 0.5);
instead, needing to do:
v@basebolor = set(0.9, 0.5, 0.5);
when in the Shader vex context, both appear to be ‘created’ the same way. eg:
...
...
export float export_ior = 0;
...
export vector export_basecolor = { 0, 0, 0 };
...
...
Some added thoughts:
The ‘@’ sysmbol is no where to be seen in the Shaders Vex context, which I assume needs to be applied in order for it to become an ‘attribute’, rather than just a variable.
Of course the vex shown in the Shader is not displaying all the code as there are external files being referenced…I guess if I followed those ‘breadcrumbs’ I would find my answer; See the ‘@’ being applied?
Also, it seems even looking at the vex of the Shader it doesn't give a clear indication of what one would use for the desired attributes name itself. With the exception of ‘reading between the lines’ of knowing to ‘strip’ away the prefix ‘export_’ as from my above previous reference.
In one function in the vex of the Shader it only ‘strips’ away the ‘export’ leaving the preceding underscore, like in the code created by the (Metallic/Roughness) section:
…
vector _basecolor = { 0.90000000000000002, 0, 0 };
…
…
float _ior = 1.7;
…
The alternative is for me to go with what I originally was doing, as I discovered with Kai S.s' Master Class H15 on Shading, where he was simply doing mouseovers of the shaders parameter Label to get the attribute name.
Probably easiest way to learn at first, until I become familiar with the names, remembering the it's not always the case as you mentioned above; basecolorr, basecolorg, basecolorb.
Thanks for the tip on doing the prototyping ( for those attributes in which I would definitely know the name ).
Prior to this, I was putting down a material node before my wrangle so that these attributes would be created for me.
Thanks for the input and suggestion.