Found 11 posts.
Search results Show results as topic list.
Solaris and Karma » Material variations in a crowd using primvars
- ChrisCousins
- 11 posts
- Offline
Just in case anyone comes up against the same problem, it was a mismatch in attribute type of the switcher attribute - (I think) integer vs float. Fixed now :-)
Solaris and Karma » Material variations in a crowd using primvars
- ChrisCousins
- 11 posts
- Offline
Made some progress, the issue seems fixed but the reason is elusive. Putting a remap node after the PrimVarReader makes the materials work like they're supposed to. Even if the remap doesn't change the range at all - even if the node is disabled - it kicks the variation_2 variable into action and we have different hats:
I'll dig into this as it feels weird - see if I can get a simplified scene to show the same problem.
Cheers -C
I'll dig into this as it feels weird - see if I can get a simplified scene to show the same problem.
Cheers -C
Solaris and Karma » Material variations in a crowd using primvars
- ChrisCousins
- 11 posts
- Offline
Hi - one of those situations where I thought I had it... but I don't. Hopefully someone can help.
I'm building a crowd in Solaris, materials all built in MaterialX, and I'm using an integer attribute in SOPS (@variation) with a switch node to choose between five different inputs, and materials assigned via collections. All good. Then I thought, wouldn't it be good if they also had different hats, but with a different distribution. So I make a second integer attribute (@variation_2) with a different seed and use that for the hat material. Same setup.
Weirdly though, although the hat material does change, it is always the same for each main material:
The green jumper gets the red hat, the grey top gets the green hat etc.
The values are different for each guy in the scene, but the hats stay the same per variation whatever seed I use. Stranger, I can type gibberish into the mtlxUsdPrimvarReader node and it makes no difference. Only the main material variation is used.
So - am I doing it wrong? Feels like a bug but I bet it's user error. Maybe there's a better way - it's just the diffuse input that's changing for each material, perhaps there's a better workflow for this that I'm missing.
This is how my materials are setup:
I'm building a crowd in Solaris, materials all built in MaterialX, and I'm using an integer attribute in SOPS (@variation) with a switch node to choose between five different inputs, and materials assigned via collections. All good. Then I thought, wouldn't it be good if they also had different hats, but with a different distribution. So I make a second integer attribute (@variation_2) with a different seed and use that for the hat material. Same setup.
Weirdly though, although the hat material does change, it is always the same for each main material:
The green jumper gets the red hat, the grey top gets the green hat etc.
The values are different for each guy in the scene, but the hats stay the same per variation whatever seed I use. Stranger, I can type gibberish into the mtlxUsdPrimvarReader node and it makes no difference. Only the main material variation is used.
So - am I doing it wrong? Feels like a bug but I bet it's user error.
This is how my materials are setup:
Edited by ChrisCousins - Nov. 18, 2021 16:22:34
Solaris and Karma » Targetting sub-geometry in Solaris in a crowd sim
- ChrisCousins
- 11 posts
- Offline
Thank you so much for persevering with me on this, we have hair! I even managed to work out variations without too much fussing around (who am I kidding it took quite a few goes, but all good now):
Thanks again for your patience! For anyone else new to this, here's the working setup with collection + material:
Cheers - Chris
Thanks again for your patience! For anyone else new to this, here's the working setup with collection + material:
Cheers - Chris
Solaris and Karma » Targetting sub-geometry in Solaris in a crowd sim
- ChrisCousins
- 11 posts
- Offline
Failed I'm afraid, I can't seem to make this work. I've attached the collection and apply material setups just in case I did anything stupid, but whatever I do seems to result in either all the agents getting the hair material, or none of the agents getting any materials at all - going to go back to style sheets for now and lumber on with Mantra, will have another stab at this another time.
Edited by ChrisCousins - Nov. 16, 2021 12:51:40
Solaris and Karma » Targetting sub-geometry in Solaris in a crowd sim
- ChrisCousins
- 11 posts
- Offline
frostfxAh - interesting! I was trying to replicate the stylesheet workflow (ie assign main materials and then overwrite with variations. This is new to me but sounds like it'll do the job - thanks! Will report back if there's any progress.
Hi,
you can do this via collections. Just make sure you have the "Allow Instance Proxies in Collection" checkbox enabled and use whatever primpattern method that works best, for example something like %reference:/sopcrowdimport1/agentdefinitions/suzie/shapelibrary/path to your selection
Then in the assign material node you can use the collection and under Material Binding set the Method to Collection Based.
This way you can assign different materials to all of your shapes and do agent based variations inside the shader based on primvars.
Solaris and Karma » Targetting sub-geometry in Solaris in a crowd sim
- ChrisCousins
- 11 posts
- Offline
Hi - hope someone can help. I've got a crowd sim that I'm trying to migrate from Mantra to Karma. In Mantra the materials work via style sheets, works fine.
In Solaris, the problem seems to be that agent geo isn't accessible. I can assign a material per agent, but can't access the sub-geometry to get different materials on clothing, hair etc.
Here's the scene graph - I've got all agents called 'Suzie' just for testing purposes. The string '*/sopcrowdimport1/suzie' correctly selects all the character geometry. However I can't get it to select the components; using '*default_Ch41_Hair*' selects nothing. This is my first proj using solaris (as you might notice...) so hopefully there's a basic fix ;-) Cheers -- Chris
In Solaris, the problem seems to be that agent geo isn't accessible. I can assign a material per agent, but can't access the sub-geometry to get different materials on clothing, hair etc.
Here's the scene graph - I've got all agents called 'Suzie' just for testing purposes. The string '*/sopcrowdimport1/suzie' correctly selects all the character geometry. However I can't get it to select the components; using '*default_Ch41_Hair*' selects nothing. This is my first proj using solaris (as you might notice...) so hopefully there's a basic fix ;-) Cheers -- Chris
Technical Discussion » Setting Crowd agent orientation
- ChrisCousins
- 11 posts
- Offline
Llyr Williams
I think I've got it working by copying the Normal Attribute to velocity with an attribute Wrangle
v@v = @N;
Hope this helps anyone else looking to do the same
It took a while - but yes that helped me! Thanks - C
Houdini Indie and Apprentice » Instancing objects onto a DOP's points
- ChrisCousins
- 11 posts
- Offline
A bit of progress! Did some reading up, and found the problem with the positions was that they needed to be taken from the packedfulltransform intrinsic. So…
matrix m4 = primintrinsic(0,'packedfulltransform',@ptnum);
matrix3 m3 = matrix3(m4);
@orient = quaternion(m3);
v@pivot = primintrinsic(0,'pivot',@ptnum);
Last problem is that the rotations don't update - the orient value stays 0,0,0. Grateful for any assistance! Cheers - Chris
matrix m4 = primintrinsic(0,'packedfulltransform',@ptnum);
matrix3 m3 = matrix3(m4);
@orient = quaternion(m3);
v@pivot = primintrinsic(0,'pivot',@ptnum);
Last problem is that the rotations don't update - the orient value stays 0,0,0. Grateful for any assistance! Cheers - Chris
Houdini Indie and Apprentice » Instancing objects onto a DOP's points
- ChrisCousins
- 11 posts
- Offline
Hi - hope someone can help, I'm sure there's a very simple explanation here. I'm trying to use some simple geo in a DOP simulation, and then replace the simple geo with a few varied objects. Here there's only three, but eventually it'll be a couple of dozen.
I've made a very simple version of the file. The problem is that the instances are offset from the points they're being instanced onto, and don't take on the correct orientations. They do follow the DOP animation, but because of the offset their movement is all wacky.
Hope this makes sense, and that the answer is a simple one! Cheers - Chris
I've made a very simple version of the file. The problem is that the instances are offset from the points they're being instanced onto, and don't take on the correct orientations. They do follow the DOP animation, but because of the offset their movement is all wacky.
Image Not Found
Hope this makes sense, and that the answer is a simple one! Cheers - Chris
Edited by ChrisCousins - Jan. 6, 2020 19:24:49
Houdini Lounge » Fatal Error on Mac - Houdini 16.5.268 fails to open even after reinstall
- ChrisCousins
- 11 posts
- Offline
Hi - I ran into this today, have found a solution that works for me.
First, open the file in text edit: ~/Library/Preferences/houdini/16.5/houdini.env
Add the line: HOUDINI_ENABLE_RETINA=0 to the end, save and close. That solves the tiny font in the UI problem.
However, for me Houdini still crashes on subsequent launches if there's a ‘stats’ folder in the preferences folder. To solve this, delete everything else in the Preferences/houdini folder, so only the houdini.env remains. Relaunch Houdini and make sure to select “No, thanks” to the usage stats question.
After that you should be good to go. Hope that helps - C
First, open the file in text edit: ~/Library/Preferences/houdini/16.5/houdini.env
Add the line: HOUDINI_ENABLE_RETINA=0 to the end, save and close. That solves the tiny font in the UI problem.
However, for me Houdini still crashes on subsequent launches if there's a ‘stats’ folder in the preferences folder. To solve this, delete everything else in the Preferences/houdini folder, so only the houdini.env remains. Relaunch Houdini and make sure to select “No, thanks” to the usage stats question.
After that you should be good to go. Hope that helps - C
-
- Quick Links