PolySpeed alpha movie: speeding up polygon and meshsmooth


#1

I’m working on a tool, PolySpeed, that speeds up large objects 100 times while modeling and also offers several new modeling features.
It’s faster since it only updates the “Detail Area” that you are working with. Especially meshsmooth/turboSmooth is far, far faster, and it’s no problem to work with objects with 100k polygons (before meshsmooth so after smoothing they are 1mil+). In 3dsmax normally a whole character would be recalculated even if you only moved the left ear a little bit, naturally only the ear should be updated!
It speeds up almost all modifiers in 3dsmax. Unwrap and Deform Paint are both very fast. It’s possible to work with displacements in real time in the viewport, but modifiers like, noise, bend, uvw mapping etc are also faster. PolySpeed also makes it easier to instantly switch your interface and manage your memory for large scenes.

PolySpeed with the 2 polyspeed extensions can do this in full speed:

Object modeled with PolySpeed Basic by the artist Rafal Kidzinski (gotham@hot.pl)

The Modifier & Modeling Extension optimizes displacements:

The Modifier and Modeling Extensions has modeling tools for making soft objects harder:

The Modifier and Modeling Extension can slice up the geometry, good for organic and design modeling:

Polyspeed forums for beta testing, pictures/wishlist etc (website comming)
http://www.fusion-wave.com/forum/index.php

A Movie showing the speed of PolySpeed on a 600,000 object.
www.fusion-wave.com/polyspeed/speed3.zip

A 2,500,000 object with turbosmooth and noise being manipulated.
www.fusion-wave.com/polyspeed/2500000_with_noise.zip

You find many more movies here:
http://www.fusion-wave.com/forum

First there is PolySpeed Basic that provides very strong optimizations but only supports turboSmooth, Symmetry, uvw mapping and Smooth modifier.

  • Enormous optimizations of turboSmooth and MeshSmooth. Speedup is several hundreds of times. Working on 300k-1mil objects is possible (For example 10-20k objects with 3 iterations).
  • Strong optimization of the editable_poly object. Working on 500k objects is very fast.
  • The Symmetry modifier is also supported.
  • Adaptive Detail Feature. The Smoothing can be higher in the detail area than the rest of the object, striking a perfect ballance between performance and visual feedback.
  • Faster Viewports. The viewports for large object is far faster, when you are in detail mode spinning a 1mil object smoothly should not be a problem.
  • Small workflow improvements that make life a little bit easier. The Pick feature that lets you instantly switch between objects and remain in subobject mode (for example face mode). Quick Collapse, just pick several objects and pick the Detail Toggle and the objects will be collapsed into one editable_poly object.
  • Full compability with 3dsmax. The object is still just an editable_poly object. So when you are finished modeling in Polyspeed, it works exactly as you expect it too. You can pass it to collegues for texturing or rendering and they will have no compability problems.
  • You model just like before, but faster. You do not have to relearn modeling in max (there are of course new modeling tools for those that want though).
  • A flexible interface that hides the advanced features for new users but offer lots of settings for experienced users. The interface is also designed to take little screen space and can automatically fold.

Note: PolySpeed Basic works on editable_poly objects only. PolySpeed Basic only works with turboSmooth, meshSmooth, smooth, uvw map and the Symmetry modifier.

  • All the features of PolySpeed Basic
  • The main feature of PolySpeed Standard is the Speedup of nearly ALL* modifiers in 3dsmax. This means, it’s possible to work on 1mil objects in full speed with noise, displacements, vertex painting, skin, turbosmooth, uvw mapping etc.
  • Harden Modeling Tools. Several modeling tools that makes it easy to model hard details on objects with turboSmooth. (industrial models and characters work perfect). See the gallery
  • Slicing Tool. Lets you slice up models quickly, useful for cloth, trees etc. See the gallery
  • Memory Management. PolySpeed supervises your memory and offers ways to reduce 3dsmax memory usage if memory is running low.
  • Modeling tools like Select edges between Smoothing groups
  • More settings and faster workflow compared to PolySpeed Basic.

Features planned but not finished:

  • Keep Topology feature. A feature that lets you work with PolySpeed and maintain the vertex order intact. Needed for Morphing and skin to work.
  • Vertex Paint optimized and some extra features.
  • Displacement optimized in viewport and some extra features.
  • UVW mapping optimized (uw unwrap)
  • Smooth caching. Caches the smoothed object and makes toggling super fast.
  • More features and settings compared to Basic.
  • more features to be announced. Features under review are several new layer features.

Note. This document is constantly changing.
/Andreas

Fusion Wave Design


#2

I was very impressed with the video, it seems to be exactly the thing many high-poly modelers want. A big thumbs up to you.:thumbsup: I was just wondering if the final version will be a floating window (like how it is in the video) or a modifier where the options show up in in the modify panel (like Meshsmooth).

Some feature requests:

  • I’m probably one of the few who want this, but could a Smooth modifier be integrated in the PolySpeed UI? The smoothing function in Meshsmooth puts all of the faces in one smoothing group, resulting in an overall ‘smooth’ look, but what I would like is to essentially have a Smooth modifier with Auto Smooth checked which would maintain the hard edges. Common sense would dictate that one should keep their modifier stack as short as possible, which is the reason for this request.

  • Just a minor thing, perhaps you could have an option that, if turned on, would automatically zoom in on the selected portion of the model when you go into detail mode?

That’s all for now, and thanks again.:slight_smile:


#3

Thanks alot! I’m glad to hear that those that view the program seem to like it. It would not be so much fun to work for several weeks or even a month or two and noone used the script.

I don’t really see a reason for it to be a modifier window. I think it’s very important to be able to have access to the editable_poly window at the same time, so you can weld, extrude etc all the time. However I really want to make a special quad_menu so that you won’t have to have the pretty big floater around all the time. Remember that I’m adding layers for the detail areas and objects then i think it will be important to see those layers in a floater since it’s hard to display this info in the quad menus. Another thing, I’m not using the meshsmooth modifier, but I use the integrated mesh_smooth in the editable_poly, the reason is that it’s MUCH faster, and we want that don’t we? :slight_smile: But I guess it would be possible to do a modifer too.

Hmm, a smooth modifier. That could be possible, but only if I add a meshsmooth modifier I guess. I will write it down. :slight_smile:

About zooming. I have some features up my sleave that is very similar to this. Wehe. :slight_smile:
I will implement a way to save the views with all the layers, so the detail layers and the objects will have connected views to them. This means that when you go into detail mode at say the “nose” it will instantly jump to your prefered close up. I guess it would be possible also have a setting for auto_zoom on detail. You mean that I would have a “Zoom extents selected”? That is a nice idea I will add it now.

Yesterday I also added some pretty cool things, so that the detached area (the non detail area) is in wire_frame or transparent instead. It’s useful if the detach area is getting in the way.

Also, if you have any medium complex objects (10k+ polygons with 1-3 iterations) that uses a lot of mesh_smooth or some super heavy objects 100k-1mil that you probably have trouble just moving around faces with, please send them to me, and I can test how the program works with them. Send them to cif97aob@student.lu.se

/Andreas Öberg


#4

Tell us a bit about this plugin mate! :slight_smile:
Some screenshots, what compilers you use etc. And what is your timeline for releasing it? Will it be free?


#5

From this thread:

“- yes there will be a free version (basic but still good), a demo version for say 30 days (all features) and commercial version with all the bells and whistles.”

  • R

#6

Hi there. Sure, I can give an overview, but really the best way is to see the movie that I posted. It has plenty of screenshots. Naturally I will do a special site for the plugin, but not just yet, since I really need to focus on programming and designing it, preferable with ideas from you guys. :slight_smile:

The main feature of PolySpeed is to optimize the editable_polygons and meshsmooth. I really hate how they work in 3dsmax now, this is why I started working on the script. At first I used the tool only for myself, but after I gave it away to some graphic artists (those that made Call of Duty) and they said that the plugin was better than the new 3000k video cards they bought for their 5mil models then I begun considering to beef it out to a “real” plugin (it was terribly buggy at the time).

The script “caches” the old calculations so that you only have to update the meshsmooth and polygon object for the detail area you are working with. This means that the model update will be easily 10x faster compared to normal modeling. The 2 main things I try to speed up are:

  • medium detailed object with alot of meshsmooth. Say 10k+ objects that have 2-3 iterations of meshsmooth. this will be completely smooth to work with.

  • high to extremely high detailed objects. This is not finished yet, but it should speed up workflow alot for objects with 100k-1mil+ objects. It will take a little time to prepare the object, but in theory you will be able to work with as big objects as 3dsmax can handle if you set it up correctly (shouldn’t take long to do, perhaps 2 minutes).

I also try to realy optimize the work flow, so I automatically switch a lot of tiny settings in the background. For example I apply a turn_to_mesh modifier on the detached area. The tool also adjusts detail setings as you like automatically.

  • The other strong feature of PolySpeed is that it has “layers” in objects. This mean the nose, the ear, the eye etc can have different layers, so you can instantly switch to these areas, these detail areas will then automatically get a higher meshsmooth iterations. If you like it will also automatically change the viewport to a saved view where you worked last. That the views are connected to the layers should speed up workflow enormously if you are like me and love jumping back and forth on the object to get everything perfect.

Another useful feature I just found, that I haven’t thought about before is this:

  • you can choose to have everything but the detail area transparent and wireframe, while the detail area is solid. This is extremely handy if you have lots of things in the way of the object. For example if you work on a trunc you will still be able to see all the leaves around you, but they will be very transparent and non_clickable. I will post a video about this fairly soon (I just implemented it yesterday and was baffled by how much faster I could model complex objects, like pipes and trees, I hope you will find it usefull).

Also there will be more features, i’m considering an advanced bridge tool etc.

I’m estimating that the timeframe is 1-2month until I’m finished. Why are you interested in what compiler I’m using really? I mostly use MaxScript but some C++ in Visual.Net as well for creating the tool. MaxScript is very powerful if used correctly.

Also I plan to release:

  • Free version. This will have the detail areas, but no layers, probably not the focus groups needed for extremely big objects eithers, but will still be useful.
  • demo version, say 30 days.
  • Commercial version. All of the tools plus some more. In the affordable price range.

I hope I manged to answer most of your questions

Please, if you have feature requests or questions, just ask.

/Andreas Öberg
www.fusion-wave.com


#7

LOL, everyone will use this plug-in, it will spread more than meshtools, if it 'll work without accidents (crash, etc…).
I remember that discreet guys overlooked your idea when you posted it in the discreet forum some months ago…


#8

I may have missed it in the video, but I think having a button to ‘lock’ the grow button would be quite useful. Or maybe something like a grow preset is more practical.

Let me give you an example, you’re working on an object with many similar sub-objects; you have a spider and you want to work on the eyes.
Then you just set the grow amount and everytime you click a poly on the whole mesh it will automatically grow and detach so you can work directly on the eye without having to push the grow button X times… again and again (well 8 times in this case :slight_smile: ).

Should be useful for medium- to high-density base meshes, also a keyboard shortcut for it would really speed things up.

  • R

#9

There already is something very similar to this! :slight_smile:
There are buttons for grow 1,2,3 and detach. You just press it and you go into detail mode, myself I normally use Grow+Detail 2.

But yes, it would be useful to perhaps have a custom grow button.
/Andreas


#10

Well, I’m very glad to hear that you believe so, the meshtools were truly awesome, allthough I seldom use them nowadays since most (except bridge!) are to be found in max.

Hmm, I don’t remember having any discreet guy overlooking my idea, what did they say? I know tha that I have sent in feature requests for this for several years though, but I’m tired of waiting for more speed in max. I painted alot in digital programs, and I still think that the 3d programs lack good tools to handle complex scenes. I would really be able to create 3d sets similar to these that I painted a few years ago, and I would like to be able to do it without the 3d program begging for mercy too. PolySpeed should help here I hope :slight_smile:

http://www.fusion-wave.com/digital/5/towers_complete.jpg

http://www.fusion-wave.com/digital/4/tower5.jpg

Also conserning bugs, I doubt that will be a problem. I spent the last weeks killing most of them, and generally I haven’t had any problems with stability.

/Andreas Öberg


#11

f97ao, I’m really impressed man! This is awesome, I still can’t believe my eyes… I’ll be waiting for the final release. Keep up the good work.


#12

Thanks alot Lunat!
It realy makes this more fun. I know when I begun working on the plugin a year ago I got zero response so I figured there was little point in finishing it. I was quiet surprised that many didn’t seem to care so much about using complex objects fast. But response has been far better this time, so I plan to go all the way this time. The tricky thing is to add the layers, but after that it should be nearly feature complete. After the plugin is released I plan to keep adding features for quiet a while. There are some tools I realy have been missing in modeling, but they are not so easy to do.

/Andreas


#13

hey it sounds like a very usefull feature. i know anybody who is not unsatisfied with the slow viewport.

the only thing what could bother me a bit is the manual on and off of the detail mode.
would be great if it would be automatically. so i just select the faces/vertices i want to modify and the tool automatically smoothes this area around it.
if it isnt possible it would help if i can turn the detail mode on and off just by pressing a key instead of klicking everytime on the button, so it would not slow down the workflow.

another very big problem i have with max is that it becomes very slow after some time.
even when im working with a lowpoly model it becomes very slow and the filesize grows from a few kb to some mb.
the problem is by merging parts from other scenes and attaching them, etc max keeps all the unneccessary information. dont know how to descripe it. even if you have only an editable mesh there is lots of garbage in the file, max keeps in memory. you have first to turn the model into an editable poly and than back to a mesh to get rid of this stuff.
maybe you know this problem and can do something. a button to clean scenes or models would be very helpfully.

P.S. deluxe paint rocks - it was a great time!!!


#14

Glad to hear. The viewports are way faster, but even more so the modeling is faster.

Don’t look to much at the interface, it’s not finished! And believe me I’m very focused on making a very fast workflow. I will add quad menus to the tool, and of course shortcuts to everything. So perphaps you just press ‘d’ for detail and then d again and it closes the area. About making it automatic, i’m not sure if that would work. The detach process takes a little time, and if it detached every time you change selection it could be problematic. I will think about it though, it could work for some cases. How exactly would this work?

Hmm, personally I seldom have this problem myself, but in some cases it can be problematic. I think there are ways to shut of this caching of objects. I will think about it.

And yes Deluxe Paint was awesome. I think I have 40 disks with animations on them.

/Andreas Öberg


#15

edit:deleted


#16

You know guys, the only real major problem with max is that it cannot handle extremely large scenes ( you can use display as box, Xref , layers but hey…this is annoyiong and time consuming ). This plugin is a good start towards making max more efficient and more movie-oriented app. I am very excited about that

I hope you will keep working on it mate, and dont burry it, like other plugin attempts that passed from this forum. ( e.g SME )


#17

Yes I agree about the problems with very large scenes in max. And cough, cough, I will refrain from telling that I have dabbled alot with improving the workflow with the xrefs too. :slight_smile: I love the xrefs but hate the workflow. Basically I know that it’s possible to make the workflow with xrefs almost automatical.

What do you guys think is the biggest problem with large scenes. Is it:
1 - displaying them in viewport
2 - modeling with large objects
3 - there isn’t enough memory when rendering.

Nbr. 3 there is very little we can do anything about, Vray is really on to something though, it will soon be able to handle almost unlimited amount of polygons, or so they say.

Nbr2 is what I focus on with PolySpeed, but nbr1 is also improved alot. After PolySpeed 1, there is a chance that I will begin working on speeding up the viewports alot, by improving the xref objects for example, it depends on the interest here. How large scenes can you guys display in viewport without max dying? Myself I can handle about 1.5mil polys with Direct3d and Geforce4200. I have about 5fps then. With Nvidia 6800 etc it should be far more.

Also, I honestly think there is little risk that I will burry PolySpeed, I’m going to make sure Poly shines upon release. Perhaps 60% of the work is already done, the toughest thing with this plugin has always been the concept, the coding is fairly easy but the functionallity is not.

After I release it I plan to continue improving the 1.x version with quite a bit of features that will be free for registered users. It really comes down to if people are prepared to pay for it. If not it will be impossible to finance further developement no mather how fun it is, and that would be a shame.

Cheers!
/Andreas


#18

One of the most annoying things with large scenes (and here i mean large as in physical space), think importing cad data made in milimeters, is that the viewport zoom isn’t aware of the scene limits, and it takes ages to zoom into things.

you have a really interesting plugin going there. not just brute force but actually thinking about improving workflow. I like that. How would this compare to 3dsmax7 turbosmooth? i guess they might have noted your request after all. however i suppose turbosmooth is more of an interanl optimisation, without these workflow thingies you’ve come up with.

how does the plugin work internally though? does it detach meshes and apply meshsmooth on them, do you fill the stack with al kinds of modifiers? or can it be used not as an utility but as a modifier in it’s own right?

it seems 3dsmax 7 will also do something about large scenes (large as in many objects), by caching them, be it also implemented as a utility, with or without much setup work. I guess we’ll see…

i really just got a bell ringing with discreet’s marketing and development startegy, with the Evolve slogan really covering what they try to do after having the code handed by kinetix.


#19

(Note:I will soon recompile the movies, so they are much smaller. More like 10mb instead of 50mb each.)

I will try to answer your questions:

Hm, yes that is annoying. I haven’t thought much about that. Isn’t it better in a user view? I found that perspective usually have all the problems with zooming etc. I will take a peek at it, perhaps there is something I can do about.

Thanks. Yes, most of the code is speeding up with tricks and knowing what the limits of 3dsmax is, and then avoiding them.

About TurboSmooth:

  • TurboSmooth and PolySpeed I expect to be a happy marriage. I mean, can we really get enough speed? TurboSmooth and PolySpeed will not be competing but working together. I will implement TurboSmooth (if possible, and I would be very surprised if it wasn’t) the second I get max7. TurboSmooh seems to be just meshsmooth but much faster. I think it’s a few times faster than the internal meshsmooth of editable_poly that i’m using (this is faster than the meshsmooth modifier, this is why I never use the mesmsmooth modifier unless i have to). I don’t think that TurboSmooth will use caching, I haven’t seen that mentioned anywhere, but it would be great to have some kind of confirmation, I will contact Discreet about this.

  • PolySpeed speeds up the editable_polygons alot as well. TurboSmooth won’t help anything here. Have you ever tried opening a 500k polygon and just try to move a vertex?

  • PolySpeed speeds up the viewports alot, I don’t think max7 will speed up the viewports that much. The culling technology they use seems pretty simple, but I haven’t seen the beta myself.

About PolySpeed internally:
I don’t use any modifers at all, no filling the stack with crapp etc. At this very moment the workflow is very simple, you have an editable_poly with no modifers on the stack. When you go into detail mode alot of things happens, but at it’s core I detach everything except the detail area, then I change the detail settings for the detail area so that it’s high. I also convert the detach area to mesh and update it’s detail level, this means the viewports will be very fast. I also zoom in on the detail area (optional) and perhaps make the detach area transparent. I will soon add the support for “detail layers” as well. This means that you can save as many detail areas as you like and instantly jump back and forth between them (the viewport will automatically zoom in on the layer you have choosen). This should save an enormous amount of time, when you need to jump back and forth between often used areas like the nose, the fingers, the gun etc.

With max7 the editable_poly modifers comes along, this should further improve polyspeed, since you will be able to use it on any objects, even nurbs if you like.

Basically, I think PolySpeed will be even stronger in max7.

Yes, it will sure be interesting to see. I don’t want to be hmm negative, but I have found that I’m often disapointed by the optimization efforts by Discreet. I believe turboSmooth will be great though, the rest i’m not so sure about though.

Please keep the ideas, concerns problems comming, it will really make the tool more powerful :slight_smile:

/Andreas Öberg


#20

Ok, the movies have been recompiled and are now 5 times smaller.
Also worth mentioning. The workflow is much faster that what I show in the movie. You normally need far less clicks and less menu scrolling etc. The movie is extra clear to show how it works and create less confusion. I’m working on adding keyboard commands right now, that should speed up a ton.
/Andreas