[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]
2023-11: Warosu is now out of extended maintenance.

/3/ - 3DCG

View post   

File: 771 KB, 1160x1160, inverse hull problem.png [View same] [iqdb] [saucenao] [google]
958394 No.958394 [Reply] [Original]

any idea how to fix inverse hull's inaccurate borders between materials? pic related. are they simply using a different method in the ref (above)?

>> No.958397
File: 473 KB, 879x866, fresnel method.png [View same] [iqdb] [saucenao] [google]

things i've considered: 1) separating the object by material, calculating the borders for each, then somehow masking/compositing it to make it work in post. 2) pic related, a fresnel method of generating borders, which i think looks like shit. 3) grease pencil object, which also looks like shit. i'd really just like to recreate the method they were using in the 90's, which has gotta be inverted hull, yes?

>> No.958399

Here's a concrete description of the problem: the "solidify"-generated hull doesn't meet at the creases between each material. I'm looking for a fix that doesn't involve baking solidify and manually adding in the necessary extra geometry.

>> No.958400
File: 627 KB, 1057x725, solution (more geometry).png [View same] [iqdb] [saucenao] [google]

and a proposed solution: have the hull intersect at material borders. has no one written a blender add-on that does this?

>> No.958401
File: 101 KB, 707x683, demonstration.png [View same] [iqdb] [saucenao] [google]

to help visualize, here is the same diagram drawn over the original screenshot (with the added plane appropriately colored in with the border color). i hope this clarifies the problem and my proposed solution.

>> No.958404

Quick update, I've reasoned that adding geometry is not the solution (it would cause unnecessary thickness and weird line weights). Rather, the solidified hull should pinch inward so as to be colinear to the original mesh at marked seams. Testing it now to see if this reasoning is sound.

>> No.958405
File: 404 KB, 1022x744, Screenshot 2023-09-16 034653.png [View same] [iqdb] [saucenao] [google]

and there you go, it's fuckin fixed. you know, 3D has so much manual shit involved, i may as well just continue the tradition by doing this shit manually instead of writing a script to do it for me. Anyway, it's pretty fucked that NO ONE online has written about this glaring problem with inverted hull. I guess people either 1) know enough to fix it manually themselves, or 2) don't know enough to sense something wrong at all.

>> No.958491

Add a vertex group to use the solidify modifier with, and set the seam vertices' weights for that group to zero. Then the hull's and the mesh' vertices will overlap at that point.

>> No.958492


>> No.958527
File: 237 KB, 908x664, unbaked.png [View same] [iqdb] [saucenao] [google]

Beautiful. Real life saver for rigging as well because now I don't have to bake the solidify too soon. Thanks anon

>> No.958541

You're welcome. Use the same method to make awkward angles look alright, shape outlines and to plain remove the hull from places where you don't want it, like faces or non-manifold geometry.

>> No.958672

keeping an eye on this, I like Parappa and wanna see how you do OP

>> No.958693
File: 976 KB, 1352x1174, stretchy.webm [View same] [iqdb] [saucenao] [google]

thanks anon, i wouldn't have worked on this tonight without your (You). as soon as i get started, though, i remember i'm interested in the process itself. i rigged teri first since she's a bit simpler. i found it very satisfying to make her arm veeeeery slightly stretchy.

>> No.958729

add gaps between the seams

>> No.958739

do you have a blog? social media?

>> No.958833
File: 3.95 MB, 1440x1080, c_1.webm [View same] [iqdb] [saucenao] [google]

got her rigged with a driver that prevents her pants from clipping into her shoes. set design & prop marathons next.
somamosaurus on twitter, check out the version of pic related with sound! also i wasn't planning on it originally, but i suppose i'll keep updating here as well.

>> No.960503

I'm a bit confused on what the actual solution was here, so pardon me for sounding dumb.
Did you bake the hull then manually pinch edges in? Or use some sort of driver and edge crease value math?

>> No.960510 [DELETED] 

Artificial Academy 2 General /aa2g/ #1294
Lunar Rabbit Edition

Welcome, this general is for the discussion of ILLUSION's Artificial Academy 2.


/aa2g/ Pre-Installed Game, AA2Mini: https://tsukiyo.me/AAA/AA2MiniPPX.xml
AAUnlimited updates: https://github.com/aa2g/AA2Unlimited/releases

AA2Mini Install Guide:
General FAQ:
AAU Guide and Resources (Modules, Tans, Props, Poses, and More):

>Character Cards [Database], now with a list of every NonOC in the megas:

>Mods & More:
Mods for AAU/AA2Mini (ppx format, the mediafire has everything):
/aa2g/ Modding Reference Guide (Slot lists for Hair/Clothes/Faces, List Guides, and More):
Booru: https://aau.booru.org

>HELP! I have a Nvidia card and my game crashes on startup!
Try the dgVoodoo option in the new win10fix settings.
Alternative: Update your AAU and see if it happens again. If so, disable win10fix, enable wined3d and software vertex processing.
>HELP! Required Windows 11 update broke things!
winkey+R -> ms-settings:developers -> Terminal=Windows Console Host

Previous Thread:

>> No.960614

I did it manually first, but it turns out as per >>958491, vertex groups weights will take you all the way there without an early bake. Just set every vertex on a color border to weight 0. This same principle would even allow for thinner line weights at certain points; the possibilities are endless.

>> No.960645
File: 97 KB, 1125x562, lineWeightPot.jpg [View same] [iqdb] [saucenao] [google]

I did some experiments with reverse hull when I first heard about the technique many years ago.
I used to be a weeb in my early tweens before anybody knew what a weeb was and I was deep into fake cell shade shit before we had a good way to make it.

What I noticed was that the technique worked best when I cloned my character and inverted the normals and used soft selection and push modifiers to offset
the inverse hull providing the effect a manga artist would call 'line weight'.

Unfortunately I had stopped being a weeb by the time I was made aware of this cool tech so I never had any use for it as I'd move on to PBR type stuff.
Here's the technique demo'ed on a teapot so you get the idea.

You can just avoid to offset the line around any border you wish to remain a solid color transition or fade out the line towards the area the same way a mangaka would.

>> No.960711
File: 272 KB, 1920x1080, parappa.jpg [View same] [iqdb] [saucenao] [google]

Are you doing it for any particular project? I do love Lammy
Also reminded me that a made a 3D Parappa for no reason

>> No.960776

looks good!
>Are you doing it for any particular project?
i was gonna animate a visual development study, but my heart wasn't in it. here's lammy rapping though.
i suppose the cross section of parappa fans and gumball fans is far, far too slim. i want to do things that i believe a lot of people will enjoy. i want to connect with people. i don't believe this project is the best way for me to do that unfortunately.

>> No.960781
File: 175 KB, 1720x492, inverse hull geometry node.png [View same] [iqdb] [saucenao] [google]

>Anyway, it's pretty fucked that NO ONE online has written about this glaring problem
I've complained about it before. And in my search for a solution, I've seen other people complaining about it. But this is the first time I'm seeing a decent solution.

That's a cool solution. I already created a geometry node that performs the inverse hull method. I prefer it over using the solidify modifier, because I can just choose the material I want, instead of messing around with that offset material option. I could never figure out how to offset it properly. I would just click around until it finally worked. The geometry node saves me that trouble.

However, I never considered to apply a vertex group to it before. Turns out, it's easy to apply to the geometry node. All you have to do, is pic related. Very simple.

I tried both the solidify way, and the node way, and I swear the node way blends more smoothly too. So that's an added advantage.

>> No.960829

you have to rig the hull itself so you can pose it to a different shape for each frame of movement.

>> No.960844

>rig the hull itself
this seems ridiculous. you mean one armature for the base model, and another armature for the hull?

>> No.960868

is this AI?
what is it from?

>> No.960934

yes! i wrote and recorded the verses first. then i trained two so vits svc models. one using lammy's interviews from the UJLNOW extracted audio. and the other trimming and compiling all the teri clips i could find on youtube.

>> No.961238

its cool technology
can imagine a parappa fan game

>> No.961333

yeahh that was the original goal. if i were 4 years younger, i'd do it. but my life is speeding forward and i need to start carving my own way, not relying on intellectual property that came before me

>> No.961433

I like your perspective on things anon. You're going to go far in this world. Godspeed.

>> No.961614
File: 32 KB, 940x721, Hull math.png [View same] [iqdb] [saucenao] [google]

I doubt anyone cares, but I was playing with the math of the geometry node, in order to sort of "tighten up" the lines procedurally. Get rid of those pesky gaps OP describes automatically. but not only the gaps between the materials. What about the gaps that sometimes show on the same material? Like around the nose, a gap lets you see through to the cheek. Or when you look along the side of a face, a gap lets you see to the ears. You can try to fix those manually, but what if you just plugged in a geometry node, and it just werked?

Well, the idea here, is that when the face of the hull's geometry is parallel to the camera, it's assigned the value of 1. And when the face is perpendicular to the camera, it's assigned the value of 0.
In theory, that should close off all the gaps. And you know what? I kind of got it working. With some unfortunate caveats.

>> No.961617
File: 714 KB, 1634x1038, dot product inverse hull.png [View same] [iqdb] [saucenao] [google]

Here's an example for how it looks applied to a model. It closes off most of the gaps. But not fully. The fact of the matter is, if the contour of the model isn't sharp enough to make a zero, then it will leave a little gap. A much smaller gap than before, but still a gap remains.

Plus, by the nature of the way you have to look at the hull, it results in looking at faces that are a decimal between 0 and 1. Thus, a lot of the lines look thinner. Which gives an unintended line weight feel, but sometimes the thin lines don't look good. Some spots you want thicker lines, but the contour of the model doesn't allow for it. Some lines outright disappear, due to unfortunate contouring.

Also, yesterday when I was working on this, I remember it looking worse. But today it's looking better? Which means I probably flubbed the nodes when I was tired and nodding off half to sleep. I don't feel like checking them. They're probably right.

I think perhaps there is and even better way to handle this. Instead of using the dot product to decide the weight, rather you use the angle between faces. That way you can zero out concave areas, and maintain the full breadth of convex areas. But I haven't puzzled that out yet. It would probably involve learning how face corners work, and I don't know that yet.

>> No.961619

Oh yeah, I forgot to mention that you can still plug in your manually chosen weights. That's why the multiply nodes are doubled up. One of them is reserved to accept the plug of manual weights. That way, you can still force zero around the seams of materials like the other anon's solution does.