World coordinate space for mesh UV projection - PLEASE

Generic forum to discuss Octane Render, post ideas and suggest improvements.
Forum rules
Please add your OS and Hardware Configuration in your signature, it makes it easier for us to help you analyze problems. Example: Win 7 64 | Geforce GTX680 | i7 3770 | 16GB
User avatar
smicha
Licensed Customer
Posts: 3151
Joined: Wed Sep 21, 2011 4:13 pm
Location: Warsaw, Poland

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
3090, Titan, Quadro, Xeon Scalable Supermicro, 768GB RAM; Sketchup Pro, Classical Architecture.
Custom alloy powder coated laser cut cases, Autodesk metal-sheet 3D modelling.
build-log http://render.otoy.com/forum/viewtopic.php?f=9&t=42540
User avatar
matej
Licensed Customer
Posts: 2083
Joined: Fri Jun 25, 2010 7:54 pm
Location: Slovenia

+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.
SW: Octane 3.05 | Linux Mint 18.1 64bit | Blender 2.78 HW: EVGA GTX 1070 | i5 2500K | 16GB RAM Drivers: 375.26
cgmo.net
User avatar
face_off
Octane Plugin Developer
Posts: 15714
Joined: Fri May 25, 2012 10:52 am
Location: Adelaide, Australia

The Random Color Texture in Octane 2 will potentially satisfy this requirement.

Paul
Win7/Win10/Mavericks/Mint 17 - GTX550Ti/GT640M
Octane Plugin Support : Poser, ArchiCAD, Revit, Inventor, AutoCAD, Rhino, Modo, Nuke
Pls read before submitting a support question
User avatar
smicha
Licensed Customer
Posts: 3151
Joined: Wed Sep 21, 2011 4:13 pm
Location: Warsaw, Poland

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.
Attachments
world.jpg
3090, Titan, Quadro, Xeon Scalable Supermicro, 768GB RAM; Sketchup Pro, Classical Architecture.
Custom alloy powder coated laser cut cases, Autodesk metal-sheet 3D modelling.
build-log http://render.otoy.com/forum/viewtopic.php?f=9&t=42540
User avatar
roeland
OctaneRender Team
Posts: 1823
Joined: Wed Mar 09, 2011 10:09 pm

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
User avatar
smicha
Licensed Customer
Posts: 3151
Joined: Wed Sep 21, 2011 4:13 pm
Location: Warsaw, Poland

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.
3090, Titan, Quadro, Xeon Scalable Supermicro, 768GB RAM; Sketchup Pro, Classical Architecture.
Custom alloy powder coated laser cut cases, Autodesk metal-sheet 3D modelling.
build-log http://render.otoy.com/forum/viewtopic.php?f=9&t=42540
User avatar
matej
Licensed Customer
Posts: 2083
Joined: Fri Jun 25, 2010 7:54 pm
Location: Slovenia

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
pinfo.png (16.58 KiB) Viewed 6773 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?
SW: Octane 3.05 | Linux Mint 18.1 64bit | Blender 2.78 HW: EVGA GTX 1070 | i5 2500K | 16GB RAM Drivers: 375.26
cgmo.net
User avatar
matej
Licensed Customer
Posts: 2083
Joined: Fri Jun 25, 2010 7:54 pm
Location: Slovenia

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.
SW: Octane 3.05 | Linux Mint 18.1 64bit | Blender 2.78 HW: EVGA GTX 1070 | i5 2500K | 16GB RAM Drivers: 375.26
cgmo.net
User avatar
smicha
Licensed Customer
Posts: 3151
Joined: Wed Sep 21, 2011 4:13 pm
Location: Warsaw, Poland

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.
Attachments
uv1.orbx
(4.57 MiB) Downloaded 299 times
3090, Titan, Quadro, Xeon Scalable Supermicro, 768GB RAM; Sketchup Pro, Classical Architecture.
Custom alloy powder coated laser cut cases, Autodesk metal-sheet 3D modelling.
build-log http://render.otoy.com/forum/viewtopic.php?f=9&t=42540
User avatar
face_off
Octane Plugin Developer
Posts: 15714
Joined: Fri May 25, 2012 10:52 am
Location: Adelaide, Australia

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
Win7/Win10/Mavericks/Mint 17 - GTX550Ti/GT640M
Octane Plugin Support : Poser, ArchiCAD, Revit, Inventor, AutoCAD, Rhino, Modo, Nuke
Pls read before submitting a support question
Post Reply

Return to “General Discussion”