question

Christian Behrendt avatar image
Christian Behrendt asked ·

Correct way to setup procedurals

Hi guys,

I'm currently working on some scenes that use Procedurals quite a lot, but I can't for the life of it figure out the correct way to set this whole thing up correctly.

The problem is - sometimes it works, and then all of the sudden C4DtoA can't find the *.ass files anymore. I already searched the forums and found a relevant topic ( https://answers.arnoldrenderer.com/questions/2775/strange-behaviour-on-ass-file-with-relative-path.html ) .

But as suggested there I already put all my *.ass files into the tex folder.

Might the problem be, that I use nested Procedurals?

Basically I have vegetation assets that I scatter in a very large scene, which causes C4D to slow down a lot, because it has problems with handling huge amounts of scattered objects. So I converted the scattered vegetation to an *.ass, which then should contain all scattered procedurals which are my actual vegetation assets.

So for example I have a 80MB "Grass Scattered" Procedural, which contains 150.000 scattered Grass Objects as Procedurals.

As this whole setup needs to work on a renderfarm and relative paths don't work as the other thread states I've put all my procedurals (both the Scattered Procedurals and the actual Asset Procedurals) in the tex folder.

Sadly though I still seem to do something wrong, because for some reason this setup works once, and then randomly seems to stop working, because the files can't be found anymore.

"C4DtoA | 00:00:56 7039MB ERROR| [ass] can't read in Vegetation_Carpinus_J.ass: No such file or directory".

Looking forward for any help - thanks in advance!

c4dtoaassrender farm
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Peter Horvath avatar image
Peter Horvath answered ·

Does it fail locally or only on the farm (Team Render)?

Team Render clients download the assets from the server, so the plugin has to specify where the assets (e.g. ASS files) are located. The content of a procedural is basically hidden from the plugin, and you have a procedural inside a procedural, so basically the plugin does not know about the low level ASS files. You have to specify those on the Assets tab of your Arnold Procedural in your main scene. (If they are in the tex folder then just set the file name.)

However if it also fails locally (without Team Render) then it should be something else. Let me know.

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Christian Behrendt avatar image
Christian Behrendt answered ·

Hi Peter!

Thanks for taking time to help me :)

So far I've only worked locally. The low level assets have been specified in the Top-Level Assets (entered the file name), and ALL assets are in the tex folder.

I just tried entering "./tex" in the Procedural Search Path and now it seems to be working again - but to be honest, I'm not 100% sure if that's really the fix.

Because as mentioned in my opening post, when I first converted all the assets etc. it worked perfectly fine, and then after restarting the IPR/C4D it all of the sudden didn't work anymore. So it just sporadically out of nowhere stopped working, so I'm not 100% convinced yet, that everything is fine now, because if I understood correctly, I shouldn't have to enter any search path when the assets are in the tex folder.

One thought that came to my mind:

In the Top-Level Assets I reference the Low-Level assets in the Assets tab. Could it be, that when I only enter the file name of the Low-Level assets, that they might not be found because somehow Arnold thinks of the tex folder as the root folder (since the asset is located there), and so by only entering the file name searches for a "second tex folder" inside the actual tex folder?

I'm not sure I'm making 100% sense here, but I'm quite confused right now, because I just can't figure out how at first this worked and then just stops :/

Thanks again! :)

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Stephen Blair avatar image
Stephen Blair answered ·

That error is because a nested procedural has just the filename, with no path. If there was any path, it would be in the message.

"C4DtoA | 00:00:56 7039MB ERROR| [ass] can't read in Vegetation_Carpinus_J.ass: No such file or directory".
Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Christian Behrendt avatar image
Christian Behrendt answered ·

Hi Stephen,

thanks for taking the time to help!

I'm not sure I fully understand what you mean or much rather how I would set this up correctly. I thought if all Assets are in the tex folder no paths are needed. Also I can't use absolute paths, because I need to send this job to a renderfarm later on.

Here is a screenshot of the way I set it up:


Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Peter Horvath avatar image
Peter Horvath answered ·

OK, I think I see where the problem is. The plugin finds the assets in export time, and so it can send them to the TR client, but it does not actually add the tex folder to the search path. So the low-level assets are not found in render time. Adding ./tex to the search path is not a good workaround, because it's relative to the current working directory, which is undefined inside C4D (not necessarily the project root). This is definitely a bug with nested procedurals. I'll try to fix this on Monday and send you a build.

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Christian Behrendt avatar image
Christian Behrendt answered ·

That would be awesome Peter! As always thanks for the great support! :)

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Peter Horvath avatar image
Peter Horvath answered ·

Could you please try this build? Let me know if the issue is still there.

https://safeshare.solidangle.com/index.php/s/CA5VRslOwaqPhCl

password: 9h5XZWAN

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Christian Behrendt avatar image
Christian Behrendt answered ·

Hi Peter,

thanks for the new build! I gave it a try, but I again run into some inconsitencies. As far as I can tell the path issue seems to be resolved, but on my first try I got following error messages:

After that I did nothing but deactivate/activate the Procedurals and restart the render a few times and then the Procedurals all of the sudden rendered fine without any problems at all.

I could see that the error messages might occur because I directly convert Cloner-/Surface Spread Objects to ASS, but what I don't get is why they sometimes work and sometimes don't, without anything having changed in the scene/settings.

I only tested for an hour so far, so nothing I said here is 100% certain. If I can help testing in any way let me know!

Thanks again! :)


2018-01-23-204352.jpg (155.0 KiB)
Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Peter Horvath avatar image
Peter Horvath answered ·

It might be a collision in node names. Nodes are identified by names, so if two nodes (two shaders for instance) have the same name in two different procedurals, they collide and the result depends on which procedural is loaded first. You can avoid this if you specify different namespaces per procedural.

I'm not completely sure that's the problem with your scene, but the inconsistencies might come from that.

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Peter Horvath avatar image
Peter Horvath answered ·

Btw, if you can reproduce the issue and send me a scene, then I can take a closer look.

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Welcome to the Arnold Answers community.

This is the place for Arnold renderer users everywhere to ask and answer rendering questions, and share knowledge about using Arnold, Arnold plugins, workflows and developing tools with Arnold.

If you are a new user to Arnold Answers, please first check out our FAQ and User Guide for more information.

When posting questions, please be sure to select the appropriate Space for your Arnold plugin and include the plugin version you are using.

Please include images, scene and log files whenever possible as this helps the community answer your questions.

Instructions for generating full verbosity log files are available for MtoA, MaxtoA, C4DtoA, HtoA, KtoA, and Kick.

If you are looking for Arnold Documentation and Support please visit the Arnold Support site.

To try Arnold please visit the Arnold Trial page.

Bottom No panel present for this section.