📜 ⬆️ ⬇️

New physics calculation engine in 3ds Max

In the latest edition of today's popular 3ds Max modeling program, 3ds Max 2012, Autodesk departed from the tradition of using the Havok interaction physics calculation engine and introduced a new development MassFX. In the Runet appeared articles about the new initiative Autodesk, but mostly abusive and casual. Scolded mainly for the lack of continuity and lack of functionality, that is, roughly speaking, dampness.

In this article, I would like, so to speak, to introduce the introduction to MassFX for 3ds Max 2012. The text below is unlikely to be a revelation for 3D specialists, but it can be useful for fans to “play around” with 3ds Max, of which I am sure there is a fair amount of Habr's readers.

So let's go.

The main idea behind MassFX is solid modeling. This means that the calculation is made taking into account the fact that the bodies are not deformed in the process of interaction. Also, to calculate the physical interactions, a copy of the geometric surface of the modeled object is created, which in general does not coincide with its original. Those. when visualizing, one object is used, for calculating physics - another, imperceptible when rendering. This is a very important point that you should always keep in mind. For simplicity, we will continue to call the drawn model a graphic body, and a copy for the calculation of physics - a physical body.
')
The second serious simplification is that bodies with concave geometry are not supported. Rather not fully supported. What does this mean in practice? Suppose it is necessary to simulate a scene in which a small ball rolls under the bottom of a car. In this case, the bottom can be considered a concave surface relative to the wheels, and the surface of the calculated body will be flat and at the level of the surface of the tires (roughly speaking, the “cabinet without legs” will be calculated). This means that the virtual ball will rebound from any point of contact with the car, even if it visually hit between the wheels. There is a way to circumvent this limitation using a composite object when a graphic body is represented as a collection of simpler physical bodies, for example, a table can be represented as 4 legs and one tabletop. This "feint ears" allows you to correctly calculate the scene with the same car and ball mentioned above.

To create a physical copy of an object, it is necessary to apply the MassFX Rigid Body modifier from the modifiers stack to the graphic body.

There are three types of physical bodies in MassFX: Dynamic, Kinematic and Static. The first are calculated taking into account its own mass, gravity in the system, as well as friction. The simplest example of such a body is a ball (only it will not be deformed). Kinematic bodies can be animated using animation parameters, gravity does not affect them, they cannot be moved by a Dynamic body, but they themselves can “kick” Dynamic bodies. Convenient for creating objects that must move not according to the laws of physics, but according to the trajectory we have set. Static bodies are the only ones that support concave geometry, like Kinematic bodies, but cannot be animated. Allow to save on calculations. For example, using the Static body, it is convenient to model a fixed cabinet: a Dynamic ball will correctly bounce off such a cabinet.

Going to meet the wishes, I will give a couple of illustrations regarding the differences between graphic and physical objects.

image
image

For the above physical bodies such parameters as density, mass, rest friction, motion friction and elasticity are available. As in the real world, mass depends on density through the volume of the physical body. Thus, the behavior of a football and a bowling ball is calculated correctly. Friction is divided into two parameters, since the usual friction of rest is greater than the friction of motion (which is easier: move the car or maintain its rolling?). Well, elasticity is responsible for the rebound. This is how everything is simple - nothing superfluous.
Also, in the parameters of the MassFX Rigid Body modifier, you can select the body type and how its surface will be represented: primitive, composite object, user, etc. For example, I think it’s clear that to simulate a ball, it’s enough to choose a primitive ball, but a table or chair is best presented as a composite object.

Also, when calculating, one should pay attention to the units in which graphical modeling was performed. Always use real physical dimensions. For example, you can throw a TV from the window of the fifth floor, and you can from the Ostankino tower. The flight time will be, of course, different. But in the virtual world, you can draw a house the height of the Ostankino tower, and the cars under it and pedestrians scale accordingly. But do not forget that MassFX is trying to calculate everything “as in life”, so do not be surprised that in the case of scaling, the TV will fly so much in time, as if falling not from the fifth floor, but from the 85th. By the way, the increase in mass in this case will not help, because ideally the mass does not affect the speed of fall, only the value of gravity.

And in the conclusion of the brief review I would like to note the general trend in the development of solid-state modeling in Max as I see it.

Apparently, Autodesk went the way trodden back in the Maya product. In earlier versions of Max, to create a falling body, a lot of movements had to be done: add gravity, a surface, create a container of solid objects, etc. In MassFX, it is enough to apply one modifier and press the calculation button, and that’s it! Approximately the same can be observed in Autodesk Maya, which certainly reduces the time for modeling. And functionality and performance are already questions a little in other plane.

Source: https://habr.com/ru/post/128907/


All Articles