Strange problem with ROP Alembic please help

   4018   4   1
User Avatar
Member
57 posts
Joined: 4月 2018
Offline
Hi!

I have quite huge process where I import OBJs from a tree creating software and then refine and improve the geometry hugely.
Everything is fine except when I try to export the different parts to Alembic objects in one Alembic file, I get message
“Renaming node to /op:/obj/geo4/bough_br_1 to resolve collision.”

I have read about that and I know somehow to avoid that but in this case I have Pack for each individual part and still I get that message so I'm confused.

Please see the screen capture. The whole processed geometry comes to Split18 and there the different parts (separated by groups) are split into individual pack objects. That way the result should be like the spreadsheet on the left shows but actually there are duplicates of those nodes mentioned on the message and they are showing as separate groups when imported back with File node The _1 of those nodes work fine but I want to know how to avoid the message and get the correct Alembic objects
The Cleans before packs are just in case, they have no effect on this problem. The other ROP Alembic Output is for batch processing with TOPs but it has no effect on this problem so the rop_alembic2 is the one whose parameters are shown.

The geometry file (1GB+) and the whole network is too large to post and it is not the point, I need generic instructions how to use the ROP Alembic Output node correctly for multiple objects (like on the spreadsheet on this capture). I have had this same message every now and then but this time I cannot get rid of it. I thought I knew how to do it correctly but obviously there something more to it that I don't know as it happens occasionally.

Very strange is that Trunk and needles come fine, only the other two branches are somehow wrong.

I have tried to find tutorial about how to REALLY use ROP Alembic Output node but zero on SideFX and only some very basic on Youtube. Houdini help for that node only explains the parameters, it does not tell how the geometry needs to be prepared to make it work correctly.

My destination for Alembics is Clarisse so if someone has some tips for especially Clarisse, please reveal

So please you Houdini gurus (or anyone, this is probably simple thing), help me and remember I am new with Houdini (see sig) so please explain well

Thank you VERY much!

Antti
Edited by atnreg - 2020年2月20日 12:19:31

Attachments:
tmp_capture_01659.png (364.7 KB)

My system:
AMD Ryzen Threadripper 2990 (32-core),64GB RAM,NVIDIA RTX 3090,Win10
UE5.1,Houdini 19.5 Indie(always latest daily),Blender,Clarisse,Onyx,ZBrush...
Clarisse 2016-09, Houdini 2018-05 (seriously 2019-10)
I do all 3D for fun, no business
User Avatar
スタッフ
332 posts
Joined: 7月 2005
Offline
The Alembic library imposes some constraints on how data can be organized. The path attribute lets you tell the Alembic ROP where you want everything placed in the resulting Alembic archive. The warning message is telling you that some items could not be placed in the location you specified so the ROP has moved the items in order to export them to the Alembic archive. I suspect your “/op:/obj/geo4/bough_br” and “/op:/obj/geo4/branches” primitives are packed primitives containing geometry that cannot be exported as a single shape node in an Alembic archive. For example, if they contain polygons and unused points, the Alembic ROP will need to create a PolyMesh to hold the polygons and a PointMesh to hold the point cloud (they cannot both be called “/op:/obj/geo4/bough_br”). If it is not obvious which parts of the geometry have to be split into separate shape nodes, take a look at the “/op:/obj/geo4/bough_br” and “/op:/obj/geo4/bough_br_1” items from the resulting Alembic archive.
Edited by derrick - 2020年2月20日 19:13:27
User Avatar
Member
57 posts
Joined: 4月 2018
Offline
Derrick, thank you very much!
Now I understand what that “cannot be placed in the location” means. I have read that before but I could not get it

So as the geometry should not contain any orphan points, it's obvious that somewhere in the network happens something that is not supposed to happen.

My question now is, why Clean and PolyDoctor don't fix those?
I use them a lot because the original geometry is not very clean and also I work on very small polygons (Remesh minmeshsize=0.0005 on some parts) so I think those orphan points may come from those when doing boolean union with them.

Just in case you are interested, what I am doing is refining the geometry of trees (made with Onyxtree) from separate tubes to smoothly growing joints on different branch levels, resulting geometry that can be seen on closer distances as well. Now I'm working on conifer trees and so I drop the needles off in Houdini and scatter them in Clarisse using attributes I calculate in Houdini (relative distance from trunk surface to the tip of that branch). It is already working and each tree has about 1 million polygons on the geometry and about 150 polys for each needle. So one tree is around 60 million polys and 1.5 million geometries and forest of 4000 such trees is no problem for Clarisse, that's why I want to do this

So it is understandable that this complicated geometry with very small polys can cause those orphan points but do you or anyone have any tips for how to detect and fix them? I do use the spreadsheet and those cleaning tools but are there some tricks/tips for this kind of detective work?
And is there some way to make a group (for deletion or Delete directly) those orphan points? I use VEX too but I'm not expert on that so if the trick uses VEX, please explain or give code example

Thank you very much!

Antti
My system:
AMD Ryzen Threadripper 2990 (32-core),64GB RAM,NVIDIA RTX 3090,Win10
UE5.1,Houdini 19.5 Indie(always latest daily),Blender,Clarisse,Onyx,ZBrush...
Clarisse 2016-09, Houdini 2018-05 (seriously 2019-10)
I do all 3D for fun, no business
User Avatar
スタッフ
332 posts
Joined: 7月 2005
Offline
The Clean SOP has an option to remove unconnected points and should be removing them unless you turned off the option. If it is failing, would you be able to share a simplified example demonstrating it fail? An Attribute Wrangle SOP iterating over points with an expression like “i@unconnected = (@primnum < 0);” should be able to identify unconnected points. A future release of Houdini will make it a lot easier to identify unconnected points.
User Avatar
Member
57 posts
Joined: 4月 2018
Offline
Derrick, thank you very much again!

I finally got it to work, though I'm not 100% sure why

First after doing part by part research on the network the problem was in min_max_average and I changed that to two AttribPromotes (point->detail with max, then detail->point) and it fixed the problem.
Then I made separate hip that only demonstrated that problem and first it worked perfectly, if I enabled the min_max_average it failed but with those AttributePromotes it worked. But after a while I started to get same collision message with those promotes as well!

It seems that sometimes Houdini ‘thinks’ the network has not changed (especially with ROP Alembic Output but sometimes other nodes as well) and uses some old results and so gives false warnings as I did nothing to the project for about an hour and worked on another Houdini instance on different hip and when I got back to this demo hip (still on running Houdini instance) it suddenly gave the same results regardless of which method I used

Is there some problem running multiple Houdinis at the same time? That would explain that kind of behaviour.

Please see the attached VERY simple hip top demonstrate the problem, even though it may give the message with either method.

Anyway, the promote method works in my real project so the problem is now solved

I also found (not for the first time) that PolyDoctor may actually cause problems instead of fixing them in some cases. Especially the Overlapping in Repair mode seems to cause problems. Any ideas on this?

Thank you for your help, the unconnected trick is very useful and with it I got on the tracks and was able to find the final reason

Antti
Edited by atnreg - 2020年2月22日 17:12:41

Attachments:
alembicproblemtest6.hiplc (95.7 KB)

My system:
AMD Ryzen Threadripper 2990 (32-core),64GB RAM,NVIDIA RTX 3090,Win10
UE5.1,Houdini 19.5 Indie(always latest daily),Blender,Clarisse,Onyx,ZBrush...
Clarisse 2016-09, Houdini 2018-05 (seriously 2019-10)
I do all 3D for fun, no business
  • Quick Links