What features would you like to see in a modeler?

Member
Posts: 353
Joined: 2002.04
Post: #1
In another thread we've started discussing the feasibility of working on a modeler directed towards creating low-polygon count models for use in real-time 3D games. In order to further assess the possibility of starting such a project, I'm interested in hearing what features people would like to see in such an application.

Rather than turn this thread into a wish-list for Meshwork, I'd rather hear what people would want from a modeler built from the ground up, i.e comments on the design/layout of the app are very welcome.

I'd also like to know if people would be interested in using the modeler's own file format in their games. In other words, the loading code could be made available so that users can load their models directly.

Remember, this is all hypothetical at the moment, so far no one has decided to take this on.
Quote this message in a reply
macboy
Unregistered
 
Post: #2
I, for one, would like it to be very easy-to-use. Most modelers are too steep a learning curve for a newbie to 3D stuff, like me. Blush Maybe you could have two different settings: "Beginner" and "Expert" Smile
Quote this message in a reply
Member
Posts: 164
Joined: 2002.04
Post: #3
Features:
A) Groupable vertices
B) Can automatically fix inverted faces, i.e. shoot two rays out from the center of a poly in the normal and opposite normal direction and if one side collides with something and the other goes to infinity, make it face the direction that goes to infinity.
C) Can be used to assign texture UV's by taking a model and spreading it out flat and mapping a texture onto that.
D) Standard features like translation, rotation (about x,y,z or the camera axis), extrusion, lathe and primitives
E) 100x undo
F) Subdivision, simplification algorithms
G) Save-able camera views
H) Preview with wireframe, polygon, or smooth-shaded (vertex normals).
I) Shaders?
J) Integrated skeletal animation, with ragdoll physics and constraints Grin
K) Saves the vertices in the same order every time, i.e. so I could take a model and morph the vertices and then load the two models and have it interpolate correctly
L) Can assign and save arbitrary values to vertices, i.e. so in a game I could load a model and add fur to vertices with a certain value, or make some appear only when damaged, or whatever
M) Import/export 3dmf, 3ds, and user-customizable formats.

Ok that's about all I can think of off the top of my head.

Didn't someone already make a 3d modeller GUI? I could probably write some features like J, F, B.

If we made a modeller like this and released it for free it would be one of those things mac users could brag about Smile
Quote this message in a reply
Luminary
Posts: 5,143
Joined: 2002.04
Post: #4
I think there are two markets here -- the programmers making their programmer art, and the modelers coming through and replacing the art when Ambrosia agrees to publish Wink

The two markets probably have quite different needs. For the programmer, something triangle-centric like Meshwork is probably easiest (I've been able to create some cool stuff in Meshwork where I've failed in every other 3D program). For the artist a more "professional" approach (like NURBS modeling or whatever) would probably be more appropriate.

For this to be useful for games, some way to specify bones is a must. I suggest we leave poses/animations up to the programmer, at least to begin with!

For texturing, I think we need a useful UV (ST?) mapper, but only reference textures by name in the file format. That way it's up to the application developer whether they want to use simple textures, their own shaders, or whatever.

I think we want this program to be good for two things -- one is designing characters and objects for the game, the other is designing levels. Are these goals mutually exclusive? Are we going to try and build in portal/BSP helpers, or leave that up to an export plugin or whatever? If we're doing levels, I guess we have to allow for light sources?

Whatever the program, I think the idea of an accompanying SDK containing C, ObjC and C++ classes for dealing with the file format is a very good one.

I suspect that the best thing to do will be to have two "proprietary" file formats for the program -- a workfile format which preserves things like NURBS and geometric primitives, and a format which is essentially just a triangle mesh that the SDK can load.

I think having a plugin interface for third-party import and export plugins is also going to be necessary.

It would be good if UI tools could be created in a scripting language -- that would allow some non-hardcore-programmer modifications to the program and help the user community.

I think it should either be a proper Mac OS X Cocoa application, well-integrated into the Mac OS X user experience, or it should be a full-screen GLUT or SDL application written for portability. If we can get some of the Linux community on board, that would be a huge advantage.

Further thoughts as I think 'em Blush
Quote this message in a reply
Member
Posts: 164
Joined: 2002.04
Post: #5
I think the map editor multipurposeness could be handled by my arbitrary vertex tag idea thingy, i.e. if you wanted you could just make a vertex and give it the tags 1,200,200,10 which would mean it's a light (1) with a yellowish color (200,200,10), or you could give it the tag 2,14 meaning it's an assault rifle with 14 shots, or whatever. This way the programmer could do whatever he wants, designate spawn points, animation paths, etc. without being constrained by the program.

It would also be useful for models because you could designate a point where the hand and a gun model should be connected, where bullets should spawn, etc.

Or where the start and end point of a sword trail should be on a sword.

Or whether a part of a rabbit's head should be rigid or flexible Rasp

Sorry I'm getting a bit carried away Smile
Quote this message in a reply
Luminary
Posts: 5,143
Joined: 2002.04
Post: #6
I like the arbitrary metadata idea a lot.

I think the most important thing here is to designate what the modeler does and what it doesn't. We don't want to end up like Blender with a complete (and completely useless) game engine...

I think there's probably scope for a suite of tools, though. Like a base modeler, an animator and poser (bone-based), an animator and poser (frame-based), maybe even a separate UV mapper or texture painter...
Quote this message in a reply
Luminary
Posts: 5,143
Joined: 2002.04
Post: #7
Quote:F) Subdivision, simplification algorithms

I think this belongs in an export plugin or a separate application

Quote:G) Save-able camera views

I think this can be handled by the metadata suggestion (store a flag saying this vertex is a camera, and four floats representing an orientation quaternion)

Quote:I) Shaders?

Definitely not. Maybe an associated app/format/SDK, but not something we should be trying to put into the modeler.

Quote:J) Integrated skeletal animation, with ragdoll physics and constraints

I think you were joking here... see my earlier comments about game engines. It might be useful to have features like this in an animator though I guess...

Quote:K) Saves the vertices in the same order every time, i.e. so I could take a model and morph the vertices and then load the two models and have it interpolate correctly

I think this would be very difficult to do, and I think it would be soluble by having a separate frame-based animation app which copes with the morphing and the keeping-in-order.
Quote this message in a reply
Feanor
Unregistered
 
Post: #8
I have been thinking about modellers a lot lately, especially since my (incomplete, broken) attempt with StormCloud.

When I have used a modeller, mostly I was annoyed by noisy, confusing interfaces that never gave enough feedback. It was often hard to tell exactly where I was positioning primitives. Often, the input methods are simply completely non-intuitive. Maya is a pain, Wings 3d is a pain, and I can't make any sense out of Meshwork. It should be obvious how to add a shape, resize and re-locate it, cut and otherwise mutilate it, copy it, texture map it, set material qualities and the like. Usually this stuff is impossible to figure out just by looking at the interface. Using a modeller should be roughly like carving things out of materials and painting them, and then assembling them.

I think it will be difficult, but not impossible, to combine a scene design feature set (level editor) with a mesh editor (modeller proper). You would just need some kind of mode switch. However the two are pretty different. I think animation and modelling go together well, but that scene design, lighting, and scene animation (as opposed to figure animation) are separate. It would definitely be interesting to see both together in one app, if it provided any kind of code, memory, and/or file management savings, but I would not expect any.

One thing I would dearly love in 3D tools is the ability to turn collision detection on and off, so that you could let the tool determine if two objects were flush -- equivalent of "snap". Also, other alignment tools, which should be as simple to use as those in a layout program. You should be able to put down guides of any shape and size, including lines, planes, and polyhedra, to which you could snap your primitives in plan, elevation and perspective views.

There are countless improvements which could be made to 3D tools.
Quote this message in a reply
Member
Posts: 353
Joined: 2002.04
Post: #9
While animation will definitely make this app more complete, right now I'm trying to think of what would make a good modeler at the modeling (rather than animating) stage.

Quote:A) Groupable vertices

Yes, others obviously want this too, and probably simple to implement.

Quote:B) Can automatically fix inverted faces, i.e. shoot two rays out from the center of a poly in the normal and opposite normal direction and if one side collides with something and the other goes to infinity, make it face the direction that goes to infinity.

Yup, this is very useful especially if aiming for backface removal.

Quote:I think there are two markets here...

I was thinking more towards the triangle-based modeler. A nurbs modeler would be awesome fun, but I think artists will also find a triangle-based modeler useful as long as they have a good visual reference.

Quote:For this to be useful for games, some way to specify bones is a must. I suggest we leave poses/animations up to the programmer, at least to begin with!

Bones is something we could do at the early stage, as long as we don't have to worry about animating them right away then they are just like another form of modeling. And yes, the programmer can write their own animation functions which use them. Obviously they would store inheritance info.

Quote:For texturing, I think we need a useful UV (ST?) mapper, but only reference textures by name in the file format. That way it's up to the application developer whether they want to use simple textures, their own shaders, or whatever.

A good UV mapper is crucial. When you say referencing textures by name do you mean the texture will remain a seperate file (.tga, .png etc) and not be saved with the model? I think this is a good idea because it means textures can be changed with no re-modeling or re-compiling.

Quote:I think we want this program to be good for two things -- one is designing characters and objects for the game, the other is designing levels. Are these goals mutually exclusive? Are we going to try and build in portal/BSP helpers, or leave that up to an export plugin or whatever? If we're doing levels, I guess we have to allow for light sources?

I hadn't thought of this side to it, my original thinking was to have it as an object/character designer and not a level designer. David's vertex data idea is great for the level-design side to it, but the app needs more thought on ways to easily model the geometry when it could be a very complicated file.

Showing and hiding groups might help with this.

Perhaps some way to load other objects which remain references to a file, rather than actually loading the geometric data into the level object. e.g if you were building some terrain and wanted some trees you would want to build a tree as one file that is then repeated from a single object on the terrain.

Quote:I suspect that the best thing to do will be to have two "proprietary" file formats for the program -- a workfile format which preserves things like NURBS and geometric primitives, and a format which is essentially just a triangle mesh that the SDK can load.

I was thinking about that too. Would it be appropriate to save as text files? The Meshwork format is text based isn't it?

Quote:I think it should either be a proper Mac OS X Cocoa application, well-integrated into the Mac OS X user experience, or it should be a full-screen GLUT or SDL application written for portability. If we can get some of the Linux community on board, that would be a huge advantage.

I was thinking a proper Mac OSX application, but not being a Cocoa programmer myself maybe I wouldn't be able to help as much! Perhaps portability would be more appropriate. GLUT would make creating primitives simpler.
Quote this message in a reply
Moderator
Posts: 916
Joined: 2002.10
Post: #10
I would like to see a snap feature... so a person could "snap" together triangles and quads... sorta like legos but with vertices and such. I would drag a triangle close to a quads vertives on one side and it would snap the two together, of course the featuer should be togglable and such.
Quote this message in a reply
Founder
Posts: 1,138
Joined: 2002.04
Post: #11
You might want to examine these modelers:

http://www.povray.org/resources/links/3D..._Programs/

One cool modeler is called Hexa. There use to be a freeware version floating around called "Roku" something. (http://www.shusaku.co.jp/www/product_free.html)

You can look at v2 for English here:
http://www.shusaku.co.jp/hexa/

(There is a version to flatten the models and make paper models, very neat:
http://www.e-cardmodel.com/pepakura/)

v3, which is the latest is Japanese only. Still, check this out:
http://www.shusaku.co.jp/www/product05.html

Why do I bring it up? Because it has an interesting way to model. In a nutshell, you draw the outlines of the model. [image]http://www.shusaku.co.jp/www/images/jintai.jpg[/image]
See how they outlined the woman? Then she gets turned into a model, pretty easy stuff. The model is low-count polygon -- perfect for games. Easy to grab her clothes (I like that) and turn them into textures too. The program also supports bones, and other animation features.

Anyhow, my thoughts....
When posting what we think is needed, we should re-read what monteboyd has proposed:
a low-polygon count modeler for use in real-time 3D games
Hopefully that will keep people from trying to requests features beyond the scope of such an app. (And within the means of people here.)

I think what we are looking for is the ability to (1)make a character or object, (2)view it (easily and quickly!), (3)perhaps pose it (ie IK, bones, animation, etc), (4)texture it, and (5)save it.

One approach which would be interesting is to make it like the old app "3Dworld." Remember that? It died when 3dmf died (its dead, right Wink ) What made this app interesting is that the basic application could do various things. It was a small app. Everything extra was done via plug-ins. From rendering to extra modeling features. I think this approach might be a good way to go. This way, the basic app is working and in circulation, as well as info on expanding the app. (I'm more than happy to make a sub-domain here for this project.) So, if someone needs the ability to import LWO models, the whole app isn't held up while you all try to figure that out. Instead, people go off and make a plug-in and then upload it. Someone mentioned "the app must be easy..... two versions..." This is a good way to scale the app to meet the needs of various people. (ie allowing the user to load in only what they need/want) I hope I made sense. In addition, if the main app is simple and the code viewable, it makes it easier for others to join in and make it better/fix bugs. If it is feature-rich, then the code only gets longer to read, and the to-do list goes on forever...

Back to modeling....
I mentioned above that it is neat to create models based on using outlines. Even if you don't use this system, you should allow for the background to be set as a reference image (say a car), so you can make sure your car's parts are to scale.

Another interesting way is the lego method. Anyone can play with legos! I recall an old app that worked like this for 3d. Another way to think of this is as "Connect 4/Tetris" Move a shape, and you see a shadow for where it will "fall". Put it in place and drop it. You can drop any primitive and once it is "dropped", rotate/transform it. Once done, select the primitives and your magical formula removes overlapping/in-efficient verticles. Of course you can go in with a little knife and cut (or add, weld) in where your algo didn't work so great. To make a human shape, this method would be very quick IMHO. (It like the collision detection idea.) Anyhow, I'm trying to provide ideas for easier modeling.

As for the GUI, please make it so you can enter data to be precise, or simply use the mouse to do actions. For example, transformations. If I recall, in Meshwerk, all that stuff must be entered by hand.

other....
* move camera to selected object with one click
* move camera to view entire model with one click
* ability to hide/ghost/make shy objects with one click
* name the object group(s)
* make ground solid (so when placing objects, you are able to align them well)
* "handles" on objects, which allow for easy scaling, rotating, etc
* good and easy to use extrude
* ability to output the entire model to one file or each object to its own file
* perhaps have "guidelines" which help you to align objects/snap them, but don't get saved with the final exported model. (a bit like Photoshop/Illustrator)

If you do have animation at some point, it would be nice to be able to save the animation to separate files, and then be able to assign them to other objects. For example, if you have a fighter animation that swings a sword, you can easily assign that animation to an orc swinging a sword. A bit like Hash A:M. Isn't there a file format for this already, B?? (Might be hard to do off the bat but it would be super nice. Maybe I could finally make all the sports games I have wanted to make.) Smile

Last thought. I think everyone is working on various projects. Many of these require 3d. Although it means spending less time with your own project, by getting this modeler up and going, you could be saving much time in the future. (Especially around uDevGame 2003 8) )

Carlos A. Camacho,
Founder
iDevGames
Quote this message in a reply
DoG
Moderator
Posts: 869
Joined: 2003.01
Post: #12
I would rather like to see a neat file format, easily loadable, with an extensible feature set, which can be used in practically any game engine, or can be customized in such a way that makes it possible to be used nearly everywhere.

I am quite content with what can be done with modellers like Amapi and C4D. No brand new modeller would beat those anytime soon. If there was only a real convenient way of exporting things like animation, etc. I have long thought about writing some file format plugins for C4D, but I could push it back until now.
Quote this message in a reply
Member
Posts: 269
Joined: 2005.04
Post: #13
Random thoughts (a lot of them already said):

- I'm a big fan of spline-based modelling. It's just more intuitive to me than other forms of modelling. What about a way that combines the standard triangle-based with spline-based? You drag out separate triangles, and then weld the various vertices together. Sort of like Skyhawk's idea.

- Add in extrude and lathe and that's all I'd ever need to model. Well, and maybe some primitives too.

- Skeletons are a must. Not worth using without skeletons.

- Definitely needs a good way to do U/V mapping. Maybe user-defineable seams that rip open and flatten out?

- Definitely need a way to switch facing. Let me easily see all the normals and just click a triangle to switch back/front.

- Standard camera modes (front, back, left, right, up, down), plus free rotation using the mouse. Orthographic and perspective modes.

- Standard Mac interface is a must. I don't want Poser, or Bryce, or Animation Master, or whatever. As close as humanly possible to Apple's standard guidelines.

- Text-based file format. Something easy to read like .obj.

- As many textures as I want per object.

- Every command/tool/etc should have a user-defineable key combo.

- Plug-ins, that let me do anything I can't normally do. File formats, custom tools, the works. All with a neatly documented SDK.

- Anything that isn't strictly necessary should be left out or relegated to a plug-in. Just give me a blank canvas and a few simple tools. Leave the giant interface with its hundreds of options out of it.

- Things like the color of the modeling window, grids, rules, etc should all be user-defineable.

- Multiple modelling windows. As many as I want. If I have 3 1600x1200 monitors and want 20 windows all with different views, let me have it. They should all update in real-time whenever I change something in one.

- Vertex grouping, vertex hiding, wireframe mode, hidden-line removal. The usual.

- Let me click the edge of a triangle to automatically split it.

- Special markers that when loaded by the game can be replaced by other objects. Guns for characters. Lights for maps. Etc. These could have values (light intensity, etc) that save with the marker in the file. All user-defineable of course.

- Multiple LODs in one model file?

- If there's an animator, how about saving the animations as quaternions?

Man, I'm really demanding. Smile
Quote this message in a reply
AJ Infinity
Unregistered
 
Post: #14
NURBS modelling...like in Maya, Amapi, and Cinema. Well, I use LightWave, so if you can make a subdivision surfaces modeler as good as that... Grin

really, though, is a modeler needed? We have Maya, LightWave, Universe, 3ds max, Cinema, Amapi, truspace, etc. on the market already.

As you can tell, I'm not supporting this. period. (mainly because I have LightWave and Cinema)

Pro game developers use Maya or 3ds max. now if you want to make a Mac only modeler (there are many PC only ones) I'll be supporting this and if it's good I'll use it.
Quote this message in a reply
AJ Infinity
Unregistered
 
Post: #15
Quote:Originally posted by skyhawk
I would like to see a snap feature... so a person could "snap" together triangles and quads... sorta like legos but with vertices and such. I would drag a triangle close to a quads vertives on one side and it would snap the two together, of course the featuer should be togglable and such.


There's a lego modeler on the PC called MLCad (http://www.lm-software.com/mlcad)
Quote this message in a reply
Post Reply 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  Project Messiah 3D modeler gong incredibly cheap backslash 1 6,558 Feb 18, 2011 05:55 AM
Last Post: toonbit
  Help tracking down lost 3D Modeler Jones 2 4,451 Nov 8, 2006 10:45 PM
Last Post: Jones
  Another 3D Modeler to play with Leisure Suit Lurie 0 3,763 Dec 11, 2005 11:50 AM
Last Post: Leisure Suit Lurie
  Anyone use "Silo" (a low-cost 3D modeler)? Carlos Camacho 5 6,964 Aug 19, 2005 06:52 PM
Last Post: Carlos Camacho
  Lightwave modeler LongJumper 3 5,230 Sep 22, 2004 12:34 AM
Last Post: skyhawk