Page 1 of 2
World coordinate space for mesh UV projection - PLEASE
Posted: Tue May 13, 2014 9:59 am
by smicha
Dear OTOY Team
Could you please do me a huge favor and add the world coordinate space for mesh UV projection. I have thousands of mouldings as instances (I use the scatter node to replicate them). These mouldings are of a complicated shape and aligned next to each other. They must be UV mapped in an external software (Zbrush). So no automatic projection type from Octane can be applied, such as the box projection. Shortly speaking I have to use the mesh UV projection.
And here is the problem - they all look the same, but I want to apply the same texture on them but using the world coordinate space to avoid repetition of the texture.
Is it possible at all to introduce such feature?
smicha
Re: World coordinate space for mesh UV projection - PLEASE
Posted: Tue May 13, 2014 11:28 am
by matej
+1
But instead of using world coordinates, which would make particles 'flow' through the texture space (if they are animated), there should be some internal indexing of instances (initial location based, or some input noise difference), that would make the texture fixed on the instance, but still have some delta in texture space. Or have both options to pick from, but usually you would not want objects flowing through a global texture space in animations.
Re: World coordinate space for mesh UV projection - PLEASE
Posted: Tue May 13, 2014 11:46 am
by face_off
The Random Color Texture in Octane 2 will potentially satisfy this requirement.
Paul
Re: World coordinate space for mesh UV projection - PLEASE
Posted: Wed May 14, 2014 2:43 pm
by smicha
face_off wrote:The Random Color Texture in Octane 2 will potentially satisfy this requirement.
Paul
Paul,
I am not sure. I hope it will but let me clarify that all I need is the same option (WORLD SPACE) as we have in the box projection and all others but not in the mesh UV projection.
For animation purposes (as matej said there should be another solution, but the WORLD space is all I need).
On the screenshot you see how tremendous work I have to do to move the texture on a consecutive instance. First I have to split scatter data into separate scatter nodes - this is sick. Then I have to assign an independent material map to each of the scatter nodes. Then the same material and texture has to be multiplied and then I can move texture using transforms. And this is still not working precisely.
So please - add this WORLD SPACE option to the mesh UV projection.
Re: World coordinate space for mesh UV projection - PLEASE
Posted: Wed May 14, 2014 10:36 pm
by roeland
The mappings, like box or spherical, will get world or object coordinates and may do some additional transform on it. For UV coordinates there is no object space or world space option, because they are just coming from data stored in the mesh.
How does ZBrush handle these instances? Usually if you have an UV mapped object, the texture has to have some distortion to match the UV map of the object. Maybe the UV map minimizes this distortion and you can apply a random offset to the texture, but that's something completely different than world space coordinates. Can you show the UV mapping of the moulding and the texture image you're applying?
--
Roeland
Re: World coordinate space for mesh UV projection - PLEASE
Posted: Thu May 15, 2014 7:58 am
by smicha
roeland wrote:For UV coordinates there is no object space or world space option, because they are just coming from data stored in the mesh.
I understand. By "world space for uv mesh" I mean that origin of the texture for an obj, and all its instances (that are created with a use of a scatter node) are set to the same origin as the original obj. So the texture that is large enough could be continuously spread over many consecutive instances.
Imagine I have a large texture that I want to spread over 10 instances. When I choose "world space" in box mapping I can do it. I also would like to do it for a uv mapped mesh and its instances.
PS. In Zbrush I only create and UV map a geometry. I use sketchup and my and TIG plugin to create scatter data for instances.
If I make myself not clear please let me know.
Re: World coordinate space for mesh UV projection - PLEASE
Posted: Thu May 15, 2014 8:22 am
by matej
Can't each instance in Octane have an index assigned (randomized or though other more controllable means), that would offset it's UV texture space a bit? Or even control other shading parameters.
Say the scatter node has an "index group" parameter. When you set it to X int value, it would create
number of instance transforms / X groups of instances that have the X value as index (or 'ID') assigned. This index would then be somehow used when mapping textures to offset certain transform values like translation, or even used to randomize material parameters.
Say you have a gradient generator in your material setup for the said instances. Instead of plugging an image texture for factor, you would plug in this "index group" instance data, and then each instance would get a color depending where on the gradient it's assigned index falls. An image texture for gradient factor varies color across the object surface, but the "index group" would vary it across all the instances of that scatter node.
Ideally this "index group" node could be used in computations (multiply, mix, etc.) with other (texture) nodes, so you could use it to influence parameters on a per-instance basis, alongside with the per-surface basis.
This would most certainly require some serious work to implement, but Octane needs some way to 'randomize' instance looks. Currently this can only be done with creating multiple particle systems in your 3D app -> multiple scatter nodes -> multiple materials, and is really not flexible.
Just to illustrate wtf I'm talking about

:

- pinfo.png (16.58 KiB) Viewed 6781 times
In Blender you have some particle info input data, that can be used anywhere in your shader tree, to vary other parameters. I know that Octane doesn’t know about 'objects' so the list of inputs would be considerably shorter than that, but at least an 'index' and 'location' could be provided, I guess?
Re: World coordinate space for mesh UV projection - PLEASE
Posted: Thu May 15, 2014 8:40 am
by matej
OR, instead of bothering how to create this randomized data inside Octane, leave it to the (host) 3D app: extend the .csv file specification to include an arbitrary amount (columns) of additional data per transform row. Just make a way to expose this additional data as "instance textures" that can be used in your shader trees for tasks like; varying material parameters on a per-instance basis, or drive texture transform offsets per-instance, etc... Each additional column in the .csv would become "a texture" usable for computations.
Re: World coordinate space for mesh UV projection - PLEASE
Posted: Thu May 15, 2014 9:17 am
by smicha
Have a look at the orbx package how I handle translation of textures over instances. If I had "just one" option "world space" as in box projection there wouldn't be such a complicated graph.
Re: World coordinate space for mesh UV projection - PLEASE
Posted: Thu May 15, 2014 1:12 pm
by face_off
You can feed the new Random Color Texture (which is a random color between 0 and 1 for each instance) into any compatible pin, including rotations and scales in projection nodes. So I may provide a lot of what you need.
Paul