Hey guys here is something interesting I thought this topic is not covered a lot, so I wrote this tutorial on how to make 3 types of chainmail.
Chainmail Tutorial
Hey everyone. I have been working on the prep for a project where there is lots of chainmails and other middle age stuff and came to the conclusion that there is not that much chain mail knowledge out there. So I started to experiment and develop chainmail which would work with physics and dynamic simulations and will be physically correct in the 3d world. So I decided to write this tutorial to finalize my thoughts and share this with the public.
First I want to demonstrate examples used today and why they are not entirely correct.
I will be using 3ds max 7 to show the tests and results.
To create a chainmail we need to identify the pattern that is used in the chain. To do that just google search the chainmail.
Now we have to identify the pattern on the chainmail as they are sometimes differ and reproduce in 3d.
To mimic this I will create two torus objects and align them to each other in this fashion as above. The chainmail rings are usually tilted about (12) (-15) degrees to form a much tighter gaps.
We can duplicate the rings now to form a chainmail. I did an array on X with offset of 26.0 and on Y with offset of 86.0.
Now the chainmail is physical and it really exists in the world however it will be very hard for any system to simulate this especially if you have multiple chainmails. So here is when people start doing tricks. The most common is displacing the mesh. We will reproduce this effect. Setup your camera from top view to use this chainmail to render a displacement map.
I used a towards/away fall off map on the shader to get the directional fall off on the rings for the displacement. Now that we have the texture we can use it do displace the object which will represent the chainmail. So I have used rendered image as a displacement map and its alpha as a opacity map.
Here is the result.
So this looks not too bad however you can see where the displacement interferes with the each other …lets see how this looks from the back
As you can see the view from the back is not pretty. The displacement happens only one way. The alpha blending is stretched and the rings feather into the opacity which doesn’t produce hard edge and well the objects appear only in positive direction not in negative. So, my conclusion is that this chain mail approach is fine for very small rings and medium res shots. However if you are getting closer to the chainmail and well if you plan on having glossy reflections and other fancy shader materials rest assured that the render times will be huge.
Here is second approach:
To compensate for the 2d flat look on the displacement I am going to use cross planes and procedurals to mimic the 3d shape but still with displacement. For the displacement map I will use gradient ramp in the radial mode, with solid blend. The benefit of this method is that you can control the shape of the ring on the chainmail in 3d software and alter it right there as oppose to rendering a new displacement map every time.
So now that I have reproduced the pattern again we can do some tests. Here is a front view you can see that the chain mail actually displaced but because the planes are turned 15 and -15 the rings displace in the better way then the flat 2d displacement map. However, again from the back view the displacement goes only one way.
Now we go to the third and in my opinion most efficient way of chainmail.
For 3ds max only it will be spline based. So in theory every spline can become a 3d object. And while its not a 3d object in view port it still can be rendered ad a 3d mesh with motion blur and texture map yet will be easy to work with in 3d space and simulation.
Here is the closeup
It looks good from all directions. Render times are much faster then the displaced ones.
Now it’s simulation time.
To simulate the chainmail we will need a very simple two way setup.
1 your chainmail and its initial position is flat (doesn’t matter which axis) as long as its flat. Because our chainmail is made out of splines they will not work with physics so we need a representation object to be used on a simulation. In maya terminology this would be wrap deformer, in max it will be skin wrap which is same thing.
2 we create a chainmail then 2 boxes (on the bottom for the rigid body collisions) and a wrap object around the chainmail to be simulated. The wrap object has a cloth modifier and the chainmail has a skinwrap modifier which is bound to the cloth object. The cloth object is set to reactor cloth collection and the rigid body is set to rigid body collection (without this it will not simulate) Also the skinwrap modifier has face limit set to 6 (default 3) this improves the quality of the deformation. After the simulation is previewed and then the key frames are stored we can render a test. Here is what I got.
You can watch the simulated avi’s here: (need divx and xvid codec)
http://www3.telus.net/public/vinnik8...ials/sim_1.avi
http://www3.telus.net/public/vinnik8...inMail_sim.avi
http://www3.telus.net/public/vinnik8...nMail_anim.avi
Chainmail Tutorial
Hey everyone. I have been working on the prep for a project where there is lots of chainmails and other middle age stuff and came to the conclusion that there is not that much chain mail knowledge out there. So I started to experiment and develop chainmail which would work with physics and dynamic simulations and will be physically correct in the 3d world. So I decided to write this tutorial to finalize my thoughts and share this with the public.
First I want to demonstrate examples used today and why they are not entirely correct.
I will be using 3ds max 7 to show the tests and results.
To create a chainmail we need to identify the pattern that is used in the chain. To do that just google search the chainmail.
Now we have to identify the pattern on the chainmail as they are sometimes differ and reproduce in 3d.
To mimic this I will create two torus objects and align them to each other in this fashion as above. The chainmail rings are usually tilted about (12) (-15) degrees to form a much tighter gaps.
We can duplicate the rings now to form a chainmail. I did an array on X with offset of 26.0 and on Y with offset of 86.0.
Now the chainmail is physical and it really exists in the world however it will be very hard for any system to simulate this especially if you have multiple chainmails. So here is when people start doing tricks. The most common is displacing the mesh. We will reproduce this effect. Setup your camera from top view to use this chainmail to render a displacement map.
I used a towards/away fall off map on the shader to get the directional fall off on the rings for the displacement. Now that we have the texture we can use it do displace the object which will represent the chainmail. So I have used rendered image as a displacement map and its alpha as a opacity map.
Here is the result.
So this looks not too bad however you can see where the displacement interferes with the each other …lets see how this looks from the back
As you can see the view from the back is not pretty. The displacement happens only one way. The alpha blending is stretched and the rings feather into the opacity which doesn’t produce hard edge and well the objects appear only in positive direction not in negative. So, my conclusion is that this chain mail approach is fine for very small rings and medium res shots. However if you are getting closer to the chainmail and well if you plan on having glossy reflections and other fancy shader materials rest assured that the render times will be huge.
Here is second approach:
To compensate for the 2d flat look on the displacement I am going to use cross planes and procedurals to mimic the 3d shape but still with displacement. For the displacement map I will use gradient ramp in the radial mode, with solid blend. The benefit of this method is that you can control the shape of the ring on the chainmail in 3d software and alter it right there as oppose to rendering a new displacement map every time.
So now that I have reproduced the pattern again we can do some tests. Here is a front view you can see that the chain mail actually displaced but because the planes are turned 15 and -15 the rings displace in the better way then the flat 2d displacement map. However, again from the back view the displacement goes only one way.
Now we go to the third and in my opinion most efficient way of chainmail.
For 3ds max only it will be spline based. So in theory every spline can become a 3d object. And while its not a 3d object in view port it still can be rendered ad a 3d mesh with motion blur and texture map yet will be easy to work with in 3d space and simulation.
Here is the closeup
It looks good from all directions. Render times are much faster then the displaced ones.
Now it’s simulation time.
To simulate the chainmail we will need a very simple two way setup.
1 your chainmail and its initial position is flat (doesn’t matter which axis) as long as its flat. Because our chainmail is made out of splines they will not work with physics so we need a representation object to be used on a simulation. In maya terminology this would be wrap deformer, in max it will be skin wrap which is same thing.
2 we create a chainmail then 2 boxes (on the bottom for the rigid body collisions) and a wrap object around the chainmail to be simulated. The wrap object has a cloth modifier and the chainmail has a skinwrap modifier which is bound to the cloth object. The cloth object is set to reactor cloth collection and the rigid body is set to rigid body collection (without this it will not simulate) Also the skinwrap modifier has face limit set to 6 (default 3) this improves the quality of the deformation. After the simulation is previewed and then the key frames are stored we can render a test. Here is what I got.
You can watch the simulated avi’s here: (need divx and xvid codec)
http://www3.telus.net/public/vinnik8...ials/sim_1.avi
http://www3.telus.net/public/vinnik8...inMail_sim.avi
http://www3.telus.net/public/vinnik8...nMail_anim.avi
Comment