Game Development Community

3DS modeling and scale

by Brad MacDonald · in Artist Corner · 05/08/2005 (10:19 am) · 17 replies

I have my units set to 1 meter and it appears Max is having a tough time actually modeling objects to their real-life scale. One of our programmers read somewhere that Max has a difficult time handling 'small' objects and he recommended modeling at 100x scale and then scaling the models back down just before exporting.

If this is the case, it seems like a pretty big deficency in the program. Does anyone know anything about this? Thanks!

#1
05/08/2005 (10:45 am)
Sorry Brad but your programmer somewhat on crack and isn't 100% correct in the information hes spouted off to you. When you create art for Torque, 1 unit of anything in your 3D appication equates to 1 metre (or unit) inside of Torque.

There are reasons why you would want to build something just slightly larger than normal, but this is to correct issues with cameras where objects feel smaller (which exists in all 3D technology as well as photographic technology... its an issue with our most basic theory of cameras and not something you can correct).

It is true that you will have issues if you are building in really tiny units, mostly because its a bitch for artists to move something 0.0001 units. This is why artists initially build their art at whatever size they want for the modeling and UVWs, then scale down (resetting transforms since scales are applied on top of a node data, not specificly to it) before skinning to your rig and lastly export. As for the application itself having issues at a small scale, this is more of a pain in the ass factor for artists than issue with the application (since really any application will have issues working the way you want it to after the 6th digit after the decimal).

In regards to your scale issues, as a general rule of thumb, unless you are doing architectural vizualizations, don't change your display units, leave them as "generic". This is a very common mistake that people make and the problem that lies with doing this is that the units that are displayed to you on the screen are actually a modified value based on a translation between the system units scale and what you are trying to display. Its great if you need to convert between metric and imperial measurements, or go from centimeters, to meters, to millimeters, but it doesn't do jack for what you are doing here in Torque. The reason is because the exporter only looks at actual unit value of models data, not the modified value that is displayed to you.

I hope that helps clear up some questions that you had and sets you on the right track since your programmer seemed incapable of providing you with the correct information.
#2
05/08/2005 (10:58 am)
Good to know, thanks for all of the info. In our programmers defense we're pretty new to the wide world of 3D and all of us are figuring it out as we go. Plus, I may have misinterpreted what he was trying to communicate (a distinct possibility).

If I understand correctly torque is interpreting any unit setting as 1 unit = 1 meter. Aside from adding a layer of unnecessary information is there a negative effect of setting units in 3DS as anything other than 'generic'?
#3
05/08/2005 (11:18 am)
If you like fighting with getting your scale just right, then go ahead and work that way, but I and many others honestly feel that its a big waste of time to use display units set to anything but "generic".
#4
05/08/2005 (11:29 am)
Funny, I'm not fighting to maintain anything. Quite the opposite, I'm new to Max and relatively new to Torque so I'm trying to develop more efficient work habits and your post will help me do just that. I was just curious if, aside from being a waste of time, setting a unit scale in 3DS has any other negative effects.
#5
05/08/2005 (11:40 am)
[soapbox]

IMHO it IS a deficiency of MAX that it is barely useable for modeling at small sizes. Maya does it just fine. In Maya you can type in whatever number you want for your clipping planes, and somehow Maya knows how close you are to something and adjusts the zoom in/out/ factor so that it doesn't jump too far. MAX just has a pair of stupid little sliders to adjust your clip planes, and "jumps" when zooming to the point of me wanting to put a fist through my computer sometimes.

In fact, IMHO this is one of the weakest and most annoying parts of the entire Torque Art Pipeline. Sure, it's easy for the exporter when all it has to do is convert 1 unit to 1 meter. But for us artists it basically amounts to using a program (MAX) in a way that it was not intended to be used (modeling at extremely small sizes). This problem can be slightly averted, as mentioned above, by modeling at a bigger size and then scaling down. But there is no way to scale after rigging, so rigging (which involves very delicate vertex selection, etc) must be done at the super-annoying-face-one-inch-from-the-screen-because-I-can't-see-which-verts-I'm-selecting scale.

Grr. Argh.

[/soapbox]
#6
05/08/2005 (11:42 am)
Funny, I'm not fighting to maintain anything. Quite the opposite, I'm new to Max and relatively new to Torque so I'm trying to develop more efficient work habits and your post will help me do just that. I was just curious if, aside from being a waste of time, setting a unit scale in 3DS has any other negative effects.
#7
05/08/2005 (12:00 pm)
I don't know, but the real question is, does it have any positive effects?
#8
05/08/2005 (12:15 pm)
Funny, I'm not fighting to maintain anything. Quite the opposite, I'm new to Max and relatively new to Torque so I'm trying to develop more efficient work habits and your post will help me do just that. I was just curious if, aside from being a waste of time, setting a unit scale in 3DS has any other negative effects.
#9
05/08/2005 (12:17 pm)
Strange that my last post popped up twice...
#10
05/08/2005 (12:51 pm)
I usually get around the small scale problem in Max by using Field of View adjustments instead of standard zooming. Yes, it's not as fluid as using the mouse wheel to zoom, but I do regain my ability to "zoom" in without the viewport freaking out. There's a FOV tool in the lower right corner set of buttons.

I also set the perspective view's FOV to a smaller number to make the mouse wheel zooms less jumpy. The default value is 45, but I've found values from 15-30 work well. Right-click on the viewport name and choose Configure to make FOV adjustments.

Finally, if I really need to, I will use the Rescale World Units utility in the Utility panel to work around the scale issue. I'll scale up 100 times, so I can do very fine tune movements. I'll then scale back down .01 times to get back to the original size I need. When you use the Rescae World Units utility, make sure you collapse the modifier stack to get rid of any modifiers that use distance thresholds. Otherwise, you'll get some really borked models.
#11
05/08/2005 (1:08 pm)
If I need to do something on a small scale, I usually just highlight the verts Im working with and hit z to focus the view on them.
#12
05/25/2005 (12:34 pm)
Hey, thanks Danny, you're a life-saver! Good call on the FOV, that works like a charm. Now I'm embarassed that I didn't think of it before... but also dismayed that I've searched for a solution more than once and this is the first time I found it. I'm adding this to my list of things to stick on TDN as soon as it goes live... this is the type of information that needs to be spread around. (How to Use MAX with Torque: (1) Set up your units... (2) Change your FOV so you can zoom in on small models... (3)...etc.)

Adam: right, but the problem was that after focusing with "z", the verts in question were clipped by the near clip-plane, making them invisible. Setting the perspective's FOV to a lower angle solves the problem.
#13
05/25/2005 (12:54 pm)
Yeah, the scaling is really a pain. (can't someone write an exporter that automatically scales everything down 100 or 1000 times? =)

I model at whatever scale and then scale it down, but as soon as the skinning is applied to my characters any changes will have to be done in that awful small scale. I've started to use "User" view rather than "Perspective" when I need to get in close, it's easier than messing with the fov and I can go back to normal fov right away to make sure it looks okay.
#14
05/25/2005 (1:19 pm)
Magnus... try it man. Just click the FOV button, click and drag in the viewport to zoom in, then just go back to using the mousewheel as normal. You never have to touch the FOV more than once at the beginning. After that, just zoom with the mousewheel as you normally would and you can get in a lot closer without clipping. I've used the User view when in a bind as well, but it sucks because of how the view rotation works.
#15
05/25/2005 (1:36 pm)
I'm perfectly aware of that I can change the fov, it's just that it's quite dangerous to change it as what you're doing is to change the perspective (with User view you are too of course, or well... you completely turn the perspective off). When you change the perspective you really have no idea how the model will look when you change the fov back (on the other hand, most games use a fov of around 90 so everything will look even more distorted in the game, but at least keeping the fov at 45 gives you a decent idea of what you're doing).

Switching between perspective with default fov and user gives me a decent way of quickly being able to zoom without clipping and seeing how the perspective will distort the model in the game.

I'm not quite sure what you mean with view rotation? Works exactly the same way in user and perspective for me. (I always use "Arc Rotate SubObject" by the way, the one with the yellow circle).

The bottom line is in either case; it would be a whole lot nicer if we could just work at 100x or 1000x scale =).
#16
05/25/2005 (3:22 pm)
Quote:The bottom line is in either case; it would be a whole lot nicer if we could just work at 100x or 1000x scale =).

Very true.

That being said:


I guess since I'm always rotating around the model anyway it doesn't bother me if the FOV is distorted - I can tell what the true 3D shape is... I mean the distortion will change depending on where you're looking at it from (in game) anyway, so I don't really see your point as being valid. although I've only been doing this for a few hours, so maybe it'll catch up to me...

I guess a solution to your problem would be to set up a second perspective in one of your other views with a different FOV, and that way you could switch back and forth with "p". (just tried it and it works)

My problem is that I never use those buttons at the bottom to rotate, because I rotate my view constantly (holding down ALT +MMB) , like 3 times per second (not even exaggerating), and at least once inbetween every selection, move, rotate, etc that I do. Don't know if it's just a quirk I have or what, but going down to click on that icon every time I want to rotate would slow me WAY down. And when you use ALT+MMB in the User view it doesn't work right... well sometimes it does but sometimes not.
#17
05/26/2005 (3:16 am)
The fov definitely bothers me, or well... I always think the models look better without the fov so I miss fixing some of the weirdities you'll see in the game if you're not careful.
When I started using max (around version 2 or so =) I used to use the fov for zooming quite often, but since then I've stayed clear from it.

As for how I switch between user and perspective, I tend to write small scripts and set my own hotkeys/quads for doing these sort of things. With a few minutes or extra work setting up a script you can do things that saves you hours in the long run.

I of course always use alt+mmb too, I only have to change the rotatation to the yellow one once (it's even saved when closing max, so you _really_ only have to do it once). I've never seen any difference in rotating in perspective and user views.