MoI discussion forum
MoI discussion forum

Full Version: V4 beta Oct-17-2018 available now - SubD to NURBS conversion

Show messages:  1-3  4-23  24-43  44-63  64-83  84-103  …  264

Thread Split: Some posts in this thread have been moved here

From: Michael Gibson
18 Oct 2018   [#24] In reply to [#16]
Hi danperk, thanks for posting the comparison file!

I took a close look at both of them and the Moi one is clearly far superior. I used Rhino to do a detailed analysis.

The first thing to notice is the isoparm distribution is different, Modo version on left, MoI on right:



The tricky part about SubD conversion is handling extraordinary vertices. You can see that they are handled pretty differently. The Modo/IW one generates degree 3 surfaces that are non-uniform, they have a refinement process of additional knots being inserted as they approach the extraordinary vertex. This is not too terrible in and of itself but it gives more opportunities for surface defects in areas with tightly bunched up control points. You can see the MoI one has a uniform isoparm distribution, it doesn't have refinement as it approaches the extraordinary vertex, it instead uses degree 6 patches in those areas. They kind of have a lot of points in them but they are very evenly spaced.

The shaping in the IW one is pretty good in most spots but there are some small areas that are not actually even G1 continuous, I think it looks like it has problems if there is something like a subtle inflection point in the surface right nearby an extraordinary vertex:




Zooming in on that spot in the Modo/IW one you can see the surface is perturbed in that area, and even has spots where the zebra lines do not match up meaning the surfaces are only G0 there and doesn't even have tangent continuity:






Zooming in on the same area in the Moi one:





With the simpler uniform knot structure in the Moi one there is just less that can go wrong. It's a better quality surface that is smooth and G2 curvature continuous throughout. I'm unable to find any bad shaping around any extraordinary vertex.

The thing that will be good about having this kind of very high surface quality result is that it should make a hybrid modeling approach more feasible where you can do something like a vehicle body as a sub-d cage and not have to worry about glitches in little spots of that shape.

- Michael

Image Attachments:
subd_compare1.jpg  subd_compare2.jpg  subd_compare3.jpg  subd_compare4.jpg  subd_compare5.jpg  subd_compare6.jpg 


From: bemfarmer
18 Oct 2018   [#25] In reply to [#20]
A few large-ish OBJ files:
http://www.prinmath.com/csci5229/OBJ/index.html

The F-16, and the Cruiser loaded promptly into MoI. 2,875 poly's +/-
The huge Bunny, 69,630 poly's, and the Suzanne Monkey head, 15,488 poly's, did not load, for a long time, and were aborted.

Very happy with new MoI feature!
- Brian
From: Michael Gibson
18 Oct 2018   [#26] In reply to [#16]
Comparing another area of danperk's file, again on the Moi one I can't detect any break in G2 curvature continuity between any patches:







- Michael

Image Attachments:
subd_compare7.jpg  subd_compare8.jpg  subd_compare9.jpg 


From: mkdm
18 Oct 2018   [#27] In reply to [#15]
Hello Michael!

I did a simple but detailed test and for what I've tested so far, using two "all quads" poly objs, I can confirm that the new builtin SubDiv of Moi V4 does an MAZING JOB!!!

AMAZING RESULTS!!!!!
THANK YOU AND CONGRATS!!!!


Asap I'm going to make another test using an obj with tris, quads and n-gons and I will let you know.

For the time being I'm glad to post here the AMAZING results of the tests that I did using 2 "all quads" obj (created in Rocket3F):


Here's the two obj files I've used for the test:
https://monosnap.com/file/TJv0OZv2BXsMMYxfJbGH1XITuJGpPJ

********************************
THESE ARE THE RESULTS USING THE FIRST ALL-QUAD OBJ
Composed by 2400 quads
********************************


Here's the obj model:



Here's the resulting solid after Max's SubDiv, both in Moi V3 and V4


And here's the resulting solid after new builtin Moi's SubDiv


AND THESE ARE THE DETAILED RESULTS OF THE TEST USING THIS FIRST OBJ (2400 quads)
code:
Moi V3
	- Max's Import Obj:
		- about 4.2 secs
		- 2400 total plane surfaces
		- 9600 total points after the "separate" command
		- about 150 Mb of total memory allocated by Moi
	
	- Max's SubDiv:
		- about 29 secs
		- 2400 total surfaces
		- about 410 Mb of total memory allocated by Moi
		- 79872 total points after the "separate" command

Moi V4
	- Max's Import Obj:
		- about 4.2 secs
		- 2400 total plane surfaces
		- 9600 total points after the "separate" command
		- about 200 Mb of total memory allocated by Moi
	
	- Max's SubDiv:
		- about 24 secs
		- 2400 total surfaces
		- about 758 Mb of total memory allocated by Moi
		- 79872 total points after the "separate" command

	- new builtin SubDiv:
		- about 5.5 secs
		- 480 total surfaces
		- about 390 Mb of total memory allocated by Moi
		- 290784 total points after the "separate" command



********************************
THESE ARE THE RESULTS USING THE OTHER ALL-QUAD OBJ
Composed by 9600 quads
********************************


Here's the obj model:


AND THESE ARE THE DETAILED RESULTS OF THE TEST USING THIS OBJ (9600 quads)
code:
Moi V3
	- Max's Import Obj:
		- about 65 secs
		- 9600 total plane surfaces
		- 38400 total points after the "separate" command
		- about 225 Mb of total memory allocated by Moi
	
	- Max's SubDiv:
		- about 115 secs
		- 9600 total surfaces
		- about 623 Mb of total memory allocated by Moi
		- 245760 total points after the "separate" command

Moi V4
	- Max's Import Obj:
		- about 64 secs
		- 9600 total plane surfaces
		- 38400 total points after the "separate" command
		- about 520 Mb of total memory allocated by Moi
	
	- Max's SubDiv:
		- about 129 secs
		- 9600 total surfaces
		- about 1310 Mb of total memory allocated by Moi
		- 245760 total points after the "separate" command

	- new builtin SubDiv:
		- about 5.5 secs
		- 480 total surfaces
		- about 375 Mb of total memory allocated by Moi
		- 290784 total points after the "separate" command



As you can see the new Moi's SubDiv command generates a polysurfaced solid composed by the same amount of faces, both with a starting obj of 2400 quads and an obj of 9600 quads :)
Clearly, thanks and due to G2 continuity, the amount of total control points is always rather high.
But we get a very smooth and good surfaces!



AMAZING :)
From: Frenchy Pilou (PILOU)
18 Oct 2018   [#28]
Sorry what is faircad3D ?
From: mkdm
18 Oct 2018   [#29] In reply to [#27]
...P.S....
forgot to mention my config:

Windows 10 Pro 64 bit
Intel i7-7700K 4.5 Ghz (4 cores 8 threads)
32 Gb DDR4 3000Mhz
Custom overclocked version of Nvidia GeForce Gtx 1080Ti (11 Gb GDDR5X Ram, 3560 Cuda, about 12 TFlops in FP32)
From: Michael Gibson
18 Oct 2018   [#30] In reply to [#27]
Thanks for testing it and posting your results Marco!

- Michael
From: Michael Gibson
18 Oct 2018   [#31] In reply to [#28]
Hi Pilou,

> Sorry what is faircad3D ?

It's the software library that MoI uses for generating NURBS surfaces from a SubD polygon cage.

- Michael
From: Frenchy Pilou (PILOU)
18 Oct 2018   [#32]
So not for me! ;)

Here the famous Demo-soldier of ZBrush! ;)



And inside MagicaVoxel for no jealousy! ;)


From: mkdm
18 Oct 2018   [#33] In reply to [#30]
You're welcome :)
From: danperk (SBEECH)
18 Oct 2018   [#34]
Great Job Michael! I've been testing other meshes and it does an excellent conversion!

Screen cap of Old Man Head with different conversions, file too large to attach.
From: BurrMan
18 Oct 2018   [#35] In reply to [#1]
36 MB.... Lol

Amazing!
From: Michael Gibson
18 Oct 2018   [#36] In reply to [#35]
Hi Burr, yeah but the previous one was only 32 MB! :) It cost 4 MB for the Faircad3d functionality.

- Michael
From: BurrMan
18 Oct 2018   [#37] In reply to [#36]
Hahaha...

We started at just a bit over 10 mb...

I don't know if I can take it anymore!!!! :o

Maybe 7 years from now you'll be pushing 50 mb?

It's just incredible. Props man. Props.
From: Michael Gibson
18 Oct 2018   [#38]
Also if you want to set up a shortcut key for the SubD to NURBS converter use ImportSubD for the command name. And if you want to run it in a script you can use moi.geometryDatabase.fileImportSubD( 'filename' );

- Michael
From: PaQ
18 Oct 2018   [#39]
Hi Michael,

We badly need a cool zebra shader now, so we can all create those beautiful surface analysis screenshots :O)
From: Michael Gibson
19 Oct 2018   [#40] In reply to [#39]
Hi PaQ,

re:
> We badly need a cool zebra shader now, so we can all create those beautiful surface analysis screenshots :O)

Someday... The tricky part about that isn't so much the shader it's that it also needs a very dense display mesh generated for it to be sure you're seeing actual surface defects and not mesh display artifacts.

- Michael
From: amur (STEFAN)
19 Oct 2018   [#41]
Hi Michael and all,

cool that the SubD to NURBS converter handles also Ngons
nicely. :-)

Bildschirmfoto-2018-10-19-um-08-19-58

Regards
Stefan
From: Metin (METIN_SEVEN)
19 Oct 2018   [#42]
Yes! It works!

Thanks for healing my NURBS constipation, Michael!

Image Attachments:
NURBS turd by Metin Seven.png 


From: Michael Gibson
19 Oct 2018   [#43]
Also there are a couple of cases where the converter will only be able to do G1 continuity instead of G2.

That will happen in some cases at the boundaries of open meshes and also at vertices of greater than valence = 8 (more than 8 edges coming off of a single vertex).

But these are not good things to have for sub-d meshes anyway so I don't think they are likely to run into very often.

- Michael

Show messages:  1-3  4-23  24-43  44-63  64-83  84-103  …  264