Sorry I wasn't clear, no I'm not talking about volume SDF but about OSL procedural geometry and the new Struct :haze wrote: I assume you mean volume SDF? I'm not really fully sure what you mean. For volume SDF we don't have to have a bounding box pin because there is one defined by the VDB. The issue with vectron is that it is an implicit function (ie has valid values everywhere). We have to have a limitation, but it's not obvious from the code, which is why the node has the bounds in it. Hopefully we will come up with a better solution for that.
So this change is very nice,abstrax wrote: The main change comppared to 2018.1 XB2 is the way how OSL code of procedural geometry returns values: The output value is now of the Octane-specific type_sdf
, which is defined as:This way vectron objects can provide the necessary information required for shading.Code: Select all
// struct for vectron shader networks (used for sdf inputs, and outputs). struct _sdf { int objId; int matId; float u; float v; float dist; };
but I'm saying procedural Vectron objects are missing an "object space" like all other geometry type in Octane,
so as expected texture projection in "object space" doesn't work with them, also I suspect transform gizmo doesn't work with them for the same reason.
This is why I suggest to add a local transformation value in the struct _sdf like this:
Code: Select all
struct _sdf
{
int objId;
int matId;
float u;
float v;
float dist;
matrix objspace;
};