MoI discussion forum
MoI discussion forum

Full Version: Cross Hatching experiment

Show messages:  1-20  21-40  41-60  61-62

From: Michael Gibson
15 Jul 2022   [#1]
Holy crap check out my experimental cross hatching:



- Michael
From: Michael Gibson
15 Jul 2022   [#2]
Some shading aware variable spacing.

I'm a little afraid to fix bugs in it because I don't want to lose the magical sketch quality. Like the longer continuous looping strokes were not intentional.



This one with the same hatching as above but the background shading lightened by turning metallic lighting off:



- Michael

Image Attachments:
cross_hatching_variable_width1.png  cross_hatching_variable_width2.png 


From: bemfarmer
15 Jul 2022   [#3] In reply to [#2]
Definitely keep this cool, artistic script, "alpha version".
(assuming it is a script)

- Brian
From: Michael Gibson
15 Jul 2022   [#4] In reply to [#3]
Hi Brian, not exactly a script, it's an addition to the hidden line generator for 2D illustration output to PDF/AI/SVG formats.

I was fiddling with an idea that wasn't working well until all of a sudden with a couple of tuneups it was like magic.

- Michael
From: Larry Fahnoe (FAHNOE)
15 Jul 2022   [#5] In reply to [#4]
> I was fiddling with an idea that wasn't working well until all of a sudden...

"Once in a while you get shown the light in the strangest of places if you look at it right" ;-}

--Larry
From: Michael Gibson
15 Jul 2022   [#6]
If you have a model that you want to see with experimental cross-hatching on it post it here or e-mail it to me at moi@moi3d.com .

- Michael
From: bemfarmer
15 Jul 2022   [#7] In reply to [#4]
Patent?

- Brian
From: pressure (PEER)
15 Jul 2022   [#8] In reply to [#6]
Michael,

These results are astonishing!

Representing 3D surfaces with 2D projections while leaving as little ambiguity as possible about the curvature is what got me to try MoI. Your latest work looks like it goes a great deal of the way toward automating that task. Frankly, I doubted that such a thing was possible.

Do the hatch lines follow the local geometry of the parts (like uv), or are they partially determined by world (xyz) coordinates? For example, what would the results look like for a coil spring (attached)?

Also attached is a pdf (5 pages) illustrating my application and showing some hatching I did using MoI. I eagerly await hearing whether your experiment might lead in that direction.

- Peer
From: Michael Gibson
15 Jul 2022   [#9] In reply to [#7]
@Brian,

re:
> Patent?

It probably could be but I'm generally opposed to software patents, they've been greatly abused.

- Michael
From: Michael Gibson
15 Jul 2022   [#10] In reply to [#8]
Hi Peer, it will be great if this will be useful for you!

re:
> Also attached is a pdf (5 pages) illustrating my application and showing some hatching
> I did using MoI. I eagerly await hearing whether your experiment might lead in that direction.

It sure seems like it will do that for you, automatically like magic!!! :) :) :)

In your PDF the main way to convey the shaping information currently would be to generate the shaded background image to go underneath the vector outlines.

But the cross hatching should help convey that information using vectors only. Or you can still use it in combination with a shaded background image too.



re:
> Do the hatch lines follow the local geometry of the parts (like uv), or are they partially determined
> by world (xyz) coordinates? For example, what would the results look like for a coil spring (attached)?

They follow surface curvature, going in the principal curvature directions:
https://en.wikipedia.org/wiki/Principal_curvature

It's basically tracing a "Line of curvature" as described in above wikipedia page. Spacing is done in 2D projected page or screen space.

Here's what it looks like on your helix, it seems to be the right thing to do, yes? :



- Michael

Image Attachments:
cross_hatching_helix.png 


From: danperk (SBEECH)
15 Jul 2022   [#11]
Looks Great Michael! Very excited to see how it evolves!
From: pressure (PEER)
15 Jul 2022   [#12] In reply to [#10]
Michael,

Yes that's the right thing!

I'm looking for alternatives to smooth shading since that tells a story about the relationship between the object and some light sources, and I want to focus on the shape of the object primarily. Think about smooth shading on a parabolic reflector: pretty darn hard to tell what shape the reflector is, even with the object in your hands. For smooth shading, I've used Blender with either Freestyle or the new Line Art Modifier for Grease Pencil to generate basic vector line art from the same view as raster shading.

I see a version of your method saving me hours to days per drawing and giving a more convincing result than is feasible with existing tools.

I would be interested in:
1. smooth continuous lines
2. no loops (false lemon umbilics?). I know you like them, and understand the aesthetic value, but they'd make life hard for me when I'm going for minimalism. I'd rather have control over style, such as by sketching over a clean reference or by applying a pattern brush to clean paths.
3. ability to select which line of curvature I'm going to show. In some cases I'd be interested in cross hatching with 2 lines of curvature through every point, as in the examples you've shown, but in many cases I'd rather show the lines that are going in 1 general direction only as in the pdf I attached before. I'm not sure how well defined the problem is of classifying the lines into disjoint sets. Something that pops into my mind is the relative magnitude of curvature of the lines of curvature passing through a point, but I'm not sure that's right.

The last point brings me to something I noticed in a couple old forum threads: requests for closed paths in Ai exports. I suspect that there's a well-defined solution for drawing closed paths around patches of a 2D projected image and that this would be of particular benefit in the case of hatching. Maybe you've already though of this or even discussed it here. If not, I'll make some drawings showing the algorithm when I return from travel.
From: Michael Gibson
15 Jul 2022   [#13] In reply to [#12]
Hi Peer,

re:
> 1. smooth continuous lines

They're a little squiggly but yes they're curves not polylines.


> 2. no loops (false lemon umbilics?). I know you like them, and understand the
> aesthetic value, but they'd make life hard for me when I'm going for minimalism.
> <...>

Yes the looping is kind of an interesting accident, I like the warmth that it brings but I'll put in an option to turn it off, looks like this when disabled:



Also I'll see about breaking them up at face boundaries as another option that may help keep them structured a little more.


> 3. ability to select which line of curvature I'm going to show. In some cases I'd be interested in
> cross hatching with 2 lines of curvature through every point, as in the examples you've shown,
> but in many cases I'd rather show the lines that are going in 1 general direction only as in the
> pdf I attached before. I'm not sure how well defined the problem is of classifying the lines into
> disjoint sets. Something that pops into my mind is the relative magnitude of curvature of the
> lines of curvature passing through a point, but I'm not sure that's right.

I guess i should be possible to only use the direction that has the smaller radius of curvature.

It won't work for the case of a sphere or a plane though, those have equal magnitude in both directions.

So I'd need to know what should be done in those cases when they equal.


> The last point brings me to something I noticed in a couple old forum threads: requests for closed
> paths in Ai exports. I suspect that there's a well-defined solution for drawing closed paths around
> patches of a 2D projected image and that this would be of particular benefit in the case of hatching.

Currently the silhouettes and outlines are not generated by tracing around a projected 2D image, they
come from silhouette curves that are generated directly from surfaces using iterative numeric analysis
techniques. This is kind of good for overall accuracy since they are generated from smooth surfaces
but it also makes it relatively easy for their ends to slightly overlap each other. It should be possible
for me to do something in the future to try and tune those up but it will be a fiddly area and I'm not
sure when I'll be able to work on that.

Thanks,
- Michael

Image Attachments:
cross_hatching_no_loops.png 


From: Frenchy Pilou (PILOU)
15 Jul 2022   [#14]
Some iso multiple+ &some Cmorph don't make some curves ?
From: Michael Gibson
15 Jul 2022   [#15] In reply to [#14]
Hi Pilou,

re:
> Some iso multiple+ &some Cmorph don't make some curves ?

That would definitely make some curves but not with the same kind of spacing and positioning.

How long would it take to generate curves all over like this for example? :



Here's another example - try placing isocurves and some Cmorph on this attached chess pawn model and try to get a result like this:



- Michael

Attachments:
pawn.3dm

Image Attachments:
pilou_cross_hatching_pawn.png 


From: Frenchy Pilou (PILOU)
16 Jul 2022   [#16] In reply to [#15]
You want this some ceramic skin erratic result ?
From: Michael Gibson
16 Jul 2022   [#17] In reply to [#16]
Hi Pilou, try to make a result that looks like cross hatching like in a sketch.

Do a search for something like "cross hatching sketch" to see examples.

- Michael
From: wayne hill (WAYNEHILL5202)
16 Jul 2022   [#18]
Hi Michael,

It would be interesting to see the 3d cross hatching with the solid model hidden.

Wayne
From: Michael Gibson
16 Jul 2022   [#19] In reply to [#18]
Hi Wayne, here you go this one is the cross hatching all by itself, no edges or shading underneath.



Here is the same hatching with silhouettes added:



- Michael

Image Attachments:
hatching_alone.png  hatching_with_silhouettes.png 


From: wayne hill (WAYNEHILL5202)
16 Jul 2022   [#20] In reply to [#19]
Thank you!

Show messages:  1-20  21-40  41-60  61-62