Cheetah3D 4.0

Cheetah3D 5.0

Here's a list of features I'd like implemented in to Cheetah3D in the near future. Please inform me if any of these are already covered. I'll edit this thread whenever they're completed.

• Bugs
Sometimes (in a subdivided box mesh) points above the grid will render below the grid, and
Sometimes (in a subdivided box mesh) points that are farther away will render in front of close points (selected)


• General
Get info on folder works

Fog that receives light
Change the color of ambiant occlusion
Emissive image maps
No limits on anything, such as the number of chain units, subdivision levels, cylinder sections, etc.
Unlimited undo levels
Ability to undo everything correctly (move object into camera, move camera, undo)
'Repeat last' menu item
Always an info/edit section that you can move points with and tells you the coordinates
Cmd+Sft+R shows the render manager
Cmd+Opt+R renders animation
Ability to change the default settings camera for new scenes
• Renderer
Alert when canceling or deleting a render
Ability to pause and resume renders
Ability to save all rendered images to a folder with a base name
Get info on renders to see what the camera settings were
Make the jobs view not in a drawer but in a split view
• Rendering
Solid color that ignores fog
Filled objects, makes area fog, and the ability to see light streams
Motion blur, or shutter speed, depending on fps and shutter speed of the camera
Cartoon rendering, gets edges of objects and distance of two points, etc., and ability to change outline color
Make bump mapping work on phonged?/flat?/subdivided? objects
• Editor
Chains have option to change direction only in (x, y, or z) also

Reorder materials

Opt+drag a tag copies it to the other object, not moves
Apple+Click subracts/adds (uses the other one) in the Vertex Weight tool
Attach anything to a point(s) in a mesh
Ability to change all normals without making editable for all standard objects.
Split view with different cameras
Ability to copy and paste parameters from one object to another
Ability to copy and paste selections into different layers
Copy polygons/lines/points and paste them into the object view to create a new object out of them
Polygon reduction, a slider for phases, whichever phase you like best
Ability to make folders editable, keeps textures and puts lights, etc. inside the created polygon
Phong the boolean, not the object
Booleans retain the materials used in each object
Ability to put more than two objects in a boolean, ex. a+other, a-others, etc.
Ability to change the orientation of the grid
Solid colors display correctly in the editor (full emission?)
Ability to remove a folder without applying the folders parameters to the objects.
Ability to put objects into a folder without applying negative folders parameters to the objects.
Symmetrical editing mode, where it finds the closest point across the axis and moves that one how ever you move the other one; check boxes for what axis's you want it to apply to
• Camera
Ability to walk around your scene, not focus on a specific point
Ability to undo camera movement
• Polygon
Ability to set the squareness of a cylinder, n1
Ability to set the orientation off all objects, including discs, toruses, cylinders, etc.
In the info section, display the volume of the object(s) as cubic feet, cm, mm, oz., gal., etc.
Ability to move points, edges, or polygons in many different objects at the same time
Vertical and horizontal linear subdivide, or x, y, and z
Make object editable, but keep it's children
• Editing
Scalpel doesn't have to start on an edge
Extend, in line mode, like extrude, but without a cover
Editing only applies to selection, ring cut, etc.
Extrude text without triangles, making subdivided text work
No limit of fifteen on polygon selections, a dropdown with "Add Layer..."
Layering two or more textures
No limit on UV layers, a dropdown with "Add Layer..."
UV Mapper applies only to a specific material on the object
Ability to convert a polygon to a spline, like a wireframe
Ability to convert a wireframe spline to a polygon
Show half-way points that scalpel/create polygon can connect to, etc.
Edge slide, like point slide, but for edges
Multiple points can be slid at the same time in point slide
Polygon slide, like point slide, but for polygons
Ability to delete a point without making a hole, by combining all polygons that use that point
Ability to delete an edge without making a hole, by combining polygons; not the same as deleting two points, because it only combines the two polygons on either side of the edge, does not remove any points
Remove polygon, removes a polygon by deleting all the points it uses and creating a new one, filling up the area
• Spline
All modifiers can be applied to splines
• Creator
In sweep, have start and end radius
Creator objects, such as chains, accept folders, light, splines, etc.
Self-boolean, a boolean that applies to it self: union (removes internal polygons), subtract (removes any parts that overlap and covers the holes), intersect (removes any parts that don't intersect and covers the holes, keeps only parts that do), outside (removes any parts that overlap, doesn't add any polygons), inside (removes any parts that don't intersect, keeps only parts that do, doesn't add any polygons)
Ability to not create internal polygons when using sweep
• Modifier
Ability to apply a modifier only to a specific selection on an object
Boxify, like sphereify
Polygonify, drag a polygon into the modifier, tries to make an object look that polygon
Ability to edit a polygon using either side of the symmetry
Have an option in symmetry if you want to remove the center line, but have "locked" points
Boolean doesn't touch the objects where they don't intersect, etc. by triangulating them
Bulge has Y-axis also
• Scripting
Cmd+. stops all script activity
Have a built-in script editor and manager
Do not have to restart Cheetah3D every time a script is added


Thanks Martin.
 
Last edited:
Hi,
wow that looks like a christmas wish list.:wink:

There are many things on your list which are already on my todo list. But there are also some things which will never make it into Cheetah3D.

For example pause/resume a render job. Cheetah3D had this functionality in v1.2 but I removed it since it wasted to much memory. Please consider that every paused render job has to keep a complete copy of the scene in memory.

The same reason for unlimited undo. That might work in a text editor but not in a 3D modeler.

"No limits on everything" will be a sure invitation to out of memory crashes.

"No limit on UV layers" Cheetah3D has two UV layers which is enough for most tasks. But therefore these layers are polygon tool save compared to most other apps which have unlimited UV layers.

But don't worry many points of your list will make it into Cheetah3D.:smile:

Bye,
Martin

P.S. I guess you meant Cheetah3D 5.0.
 
Hi,
could you please send me some example scenes via email which show these rendering bugs.

Bye,
Martin
 
I edited the title right afterwards, but it doesn't change the thread name :(.

All the unlimited stuff and "no limits on anything" can be, like in Compositor, saved to the hard drive. Same thing with the pause/resume renders. Save it to a temporary folder.

I should at least have the choice in preferences. Just because it might crash some computers, doesn't make it unavailable.

It's just that I don't like having to open the jas file in Text Edit, find the chain, and then change the number from 250 to 500. Much easier if I could just do it from within Cheetah3D.

Don't limit Cheetah3D because of memory, please! :p
 
Heres a vote for the "repeat Last" hotkey. And dont forget a toggle key for quickly switching between "adding and subtracting" when vertex painting. Or a shift key to switch. Continuously going back and forth to the project window is a bit awkward.
/2c

AC
 
Interesting list (maybe a bit much for Martin ;-) )

Always an info/edit section that you can move points with and tells you the coordinates
I really like how in 3DS Max you can tab into edit fields and make any operation numeric.

Ability to change the default settings camera for new scenes Why not just add support for stationery? Then you can create new default scenes to your heart's content. (And it's amazingly easy to do.)

Filled objects, makes area fog, and the ability to see light streams Volumetrics in general. A lot to ask for but it would be very nice.

Motion blur, or shutter speed, depending on fps and shutter speed of the camera. Much discussed elsewhere. I'd want a vector-blur and not multiple renderings composited together (which is the cheap way out). The way you implement this is to render motion vectors into a separate set of channels (think of them as vx and vy buffers with motion in terms of screen coordinates) and then use that channel to apply Photoshop-style motion-blur in a post-process pass. That said, if you're going to do this, some kind of node-based pre-/post- pipeline seems like not such a big step... This would really make C3D competitive with a lot of higher end tools (and presumably reflects a lot of engineering time).

So in the end this feature (and also some volumetric effects, such as glows) is the difference between C3D being a nice subdiv modeler with a very well-implemented but simple ray-tracing engine "tacked on" and a very serious 3d rendering engine with all the bells and whistles of the big boys. (On the plus side, adding such a pre- post- processing chain to the rendering engine is probably not THAT much work, and would be a huge new feature.)

Make bump mapping work on phonged?/flat?/subdivided? objects I think you mean displacement mapping. It's already in C3D as an explicit modifier. I imagine that this is quite a difficult feature to add because, again, you're talking about fundamental re-engineering of the rendering pipeline (and this time you're adding a geometry pass). C3D does all its geometry in the editing environment; the rendering engine renders the geometry in the editor. In Renderman, say, the textures can modify the geometry at render-time (so if you take a simple square and apply an ocean texture -- it turns into an animated fractal object with curves, foam, etc. and self-shadowing).

BTW: Renderman has had this functionality (as described) since at least 1996... which is pretty mind-boggling.

Again you're talking about the difference between a $129 product with one programmer and a $10,000 product with 1000+ engineer years of development time. (Pixar has two engineers for every animator. Why? Pixar-level animators are a hell of a lot rarer and more expensive than really good engineers.)

Symmetry editing mode. Yup, add my vote.

Ability to put more than two objects in a boolean. Gee, how about prioritizing? Here's a feature that might save you a few seconds once in a blue moon.

Self booleans
makes no sense. You can achieve the effect by breaking up the object (and thus telling the program which objects you consider to be separate). C3D doesn't know what's "interior" -- this is highly non-trivial. Self booleans might make sense if the program had a completely different internal representation of objects (the way Form*Z does, say), but that's asking Martin to completely rearchitect C3D from being essentially mesh based to maintaining a CSG representation of everything. (Form*Z licensed a third party engine and charged a gigantic upgrade cost when they went that route.)

Ability to apply a modifier only to a specific selection on an object. Once upon a time I had a "conversation" with Martin about the whole "creators versus modifiers" thing. See, 3D Studio Max only has "modifiers" -- which makes everything a bit more intuitive. (If you have a creator outside a mesh outside a modifier ... are you creating the modified mesh, or modifying the created mesh? Etc.) In the end, it basically came down to: yes, you could re-engineer C3D to work that way, and yes, it probably would be better... but everyone who was used to the way things are would complain, there would be bugs, and in the end you've spent a year or so and not added any new features. (Martin should feel free to add his side of the story if he wants to waste the time.) Here's the summary: you're asking for a massive re-engineering of the creator/modifier pipeline (to get this result) which you can already get with a little ingenuity using the existing tools.

Final Remarks

The problem with a long laundry list like this is it has no prioritization. Which of these features is REALLY important to you, versus just nice to have, versus something you just thought of while writing the list? And, on Martin's side, how much of this is easy or hard to do? Which features will make him more money? Which features will cause UI changes that will bug the existing user base?
 
Last edited:
I edited the title right afterwards, but it doesn't change the thread name :(.

All the unlimited stuff and "no limits on anything" can be, like in Compositor, saved to the hard drive. Same thing with the pause/resume renders. Save it to a temporary folder.

I should at least have the choice in preferences. Just because it might crash some computers, doesn't make it unavailable.

It's just that I don't like having to open the jas file in Text Edit, find the chain, and then change the number from 250 to 500. Much easier if I could just do it from within Cheetah3D.

Don't limit Cheetah3D because of memory, please! :p

If I may, I'm against it for the simple reason that if you accidentally type a huge number on a not-so-powerful computer, it's gonna crash and you'll lose your work.
 
It has to test and assume if your computer can handel it (probably a simple calulation), but it can't be restricted for advanced modelers!!!!! That would make them just drop Cheetah3D for another one!
 
Podperson:
Self-Booleans can work because of the polygon normal derection. They would be used for, say you create a sweep that has a spline that crosses itself, if you chose 'Union', then all the interior polygons would be removed.

Bumpmapping: This was a bug that would just ignore the bumpmaps all together. I don't know if this is fixed yet.

Motion Blurring: Right, this is exactly what I was thinking. Opposite of blender. :)

Final Remarks

The problem with a long laundry list like this is it has no prioritization. Which of these features is REALLY important to you, versus just nice to have, versus something you just thought of while writing the list? And, on Martin's side, how much of this is easy or hard to do? Which features will make him more money? Which features will cause UI changes that will bug the existing user base?
This is a just of things I jumbled together for Martin to add as he pleases.

I could easily make a suggestion box where you could add them and set a priority (maybe based on the number of votes a certain feature gets?) and Martin could check them off (or mark them as 'in progress') so we can see the progress; as part of the script archive I made: http://cheetah3d.freeweb7.com
If anyone thinks that would be a good idea.
 
They would be used for, say you create a sweep that has a spline that crosses itself, if you chose 'Union', then all the interior polygons would be removed.
I understand why you want them, I just don't think you know what you're asking for.

Cheetah3D is a mesh modeler. Its internal representation of models is of surfaces not volumes. When performing boolean operations it basically finds the intersections of polygons, cuts them, and then discards polygons based on simple tests -- knowing which polygons belong to which object it started working with. I.e. this polygon is from A, this one is from B. If I cast a ray to infinity, whose polygons do I hit and in what order? Based on this, given polygon is either kept or discarded.

As far as I know, there are two kinds of 3D programs: surface modelers (the vast majority) and solid geometry modelers (a tiny, expensive, specialized minority). The former can't do the kind of thing you're asking for because it requires them to be psychic. The latter don't need this function because it makes no sense (a self-intersecting object is illegal).

Here's a simple cross section of a Klein bottle. You can't make one of these in the real world, but it's perfectly easy to do with a mesh modeler. It has no interior, and no exterior, but it's well formed.

The diagram (produced by Illustrator) shows black -- the border, yellow -- what Illustrator thinks is the outer surface, grey -- what Illustrator thinks is the interior. This is a pretty simple 2D object, and Illustrator is contradicting itself (there's a grey rectangle surrounded by inward facing outer surfaces.

A human can instantly see the problem, but a boolean algorithm? Not so much. Most of the cases you would want your tool to deal with will resemble this.
 

Attachments

  • Picture 19.png
    Picture 19.png
    4.3 KB · Views: 555
Hi,
boolean operations sound quite easy to implement, as podperson already explained, but they are actually the most difficult algorithm in computer graphics. At least if you want to make them bullet proof since there can be many numerical and topological problems.

That's why even big companies like Autodesk licensed the Boolean algorithm form specialized middle ware producers like Integrityware.

http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=6172801

And now the good news for Cheetah3D. I've bought a license of the same boolean algorithm, doing its work in 3DStudio Max, some days ago. With all its glory of self intersection cleanup, non-manifold booleans, multi-object booleans and knifes, Quad meshing for SDS modeling, N-Gons with holes, and so on. :smile:

I'm already very excited. :smile: :smile: :smile:

Bye,
Martin
 
And now the good news for Cheetah3D. I've bought a license of the same boolean algorithm, doing its work in 3DStudio Max, some days ago. With all its glory of self intersection cleanup, non-manifold booleans, multi-object booleans and knifes, Quad meshing for SDS modeling, N-Gons with holes, and so on. :smile:

Great news ! Thank you Martin ! ... :)
 
At minimum, you'll be able to cut meshes with other meshes, and while it may not automagically resolve internal intersections, it can neatly break the object into all the component pieces, allowing you to select and delete the ones you don't want.

Oh and presumably it will cut polygonal faces more cleanly (a la Silo 3D).
 
Last edited:
At minimum, you'll be able to cut meshes with other meshes, and while it may not automagically resolve internal intersections, it can neatly break the object into all the component pieces, allowing you to select and delete the ones you don't want.

I'm sure that it is also possible to irritate the Integrityware Booleans but it will be much more difficult. And heavily self-intersecting object are luckily not the usual case. Nevertheless it seems to have some functions which automatically remove self intersections and transform the object into a manifold. How good these functions are just the time can tell. But considering the customers list of this algorithm I'm 100% sure that these are the best and most robust booleans you can buy for money.

Oh and presumably it will cut polygonal faces more cleanly

For sure.:smile:

Bye,
Martin
 
Hi,
here is just a tiny teaser. Guess which boolean was performed by the new algorithm.:wink:

Bye,
Martin
 

Attachments

  • Cheetah3DSchnappschuss.jpg
    Cheetah3DSchnappschuss.jpg
    54 KB · Views: 494
Back
Top