In conjunction with SIGGRAPH 2021, Nema Safvati, senior special-effects artist at Blizzard Entertainment, was invited to share Houdini’s creations

By Three They Come (2019) Is a CG animated short released By Diablo iv, one of Blizzard entertainment’s most anticipated games.

The realistic painting style and dark visual style of the short film

After watching the Chinese and foreign netizens shout together: Blizzard, to make a movie!

“Drum of Blood”

At the end of the film, the blood and flesh of the three unfortunate souls converge from three ends and snake their way to the center, forming a gateway to new life. Lilith bursts through a cell membrane and makes a bloody entrance.

Internally, the short animation team referred to the triangular ensemble as the “Blood Drum,” which was created by Blizzard Entertainment senior special-effects artist Nema Safvati.

Nema Safvati

Senior Special Effects Artist

Blizzard entertainment

  • He has worked for MPC, The Mill and other well-known visual effects studios

  • Credits: Ant-Man: The Wasp, Avengers: Infinity War, Spider-Man: Homecoming, etc

“Drum of Blood” production analysis

“Drum of Blood” will contain two sections, Formation and Tearing, which we will parse in two as well.

01, composition

Her painting

Nema: The original painting shown in the picture is a compilation of the drum of Blood.

Shoot Growth Solver

Nema: Before starting the simulation, the curve spreads from three vertices, leaving traces of the curve path as it grows inward. The color of the first growth threshold (Generation) is yellow-green and becomes red at higher growth thresholds, with a maximum of 5.

The top of each curve path you can imagine is the Agent node of the Houdini crowd simulation. At each time point, Agent nodes will decide the direction of animation based on different rules. Based on the rules of layer upon layer, we finally get a relatively natural pattern, which seems to be spreading while thinking about the direction, just like the setting of crowd simulation. I used the Boid Flocking algorithm.

We look at the solver from a different Angle, looking only at the apex of each curve, which helps us to analyze the Growth and Branching nodes of the solver.

Growth node – The direction of the curve is set in the first frame, and then it develops different directions according to different rules. First, some noise is used to set the growth direction of the curve from the last frame to the next frame. After that, the Vector decides whether each curve will continue to grow or stop in the subsequent simulation.

Shoot nodes – Branches may grow from an existing curve depending on a number of variables such as Density, points and Agent nodes of the curve.

The fundamental difference in the logic behind growth and branching is that branching not only spreads from the top of a curve, but also from any point within a set range. According to different parameters, such as minimum and maximum point Age parameters, curve Age parameters, and density. As soon as a point passes all the parameters and starts to branch out, it copies itself into a new Agent node, generating a new curve according to the rules.

Growth simulation decomposition

Blood vessels – This is the main blood vessel of the “Blood drum”. The density is set very low in the simulation, so there are not many blood vessels growing, and the direction of growth is relatively uniform. The maximum growth threshold controls the growth rate slightly slower.

The tissue-tissue simulation has a high density value, and there is no limit to the growth threshold. The curve can continue to branch until the maximum density is reached, which appears to be very dense. We chose a higher frequency, and in the growth setting, I also adjusted the way the vertex noise was applied, resulting in a denser network structure.

Cell membrane – The cell membrane part uses the point cloud, the vertex in the tissue simulation will activate the points of the point cloud, the generated points will constantly generate new points. As long as you are close to a curve in the organization, or close to an already generated point, new points continue to be automatically generated. I adjusted the growth rules of the point cloud to avoid looking too similar to the growth of tissue.

Binding – Most of it is curved except that the membrane is a point cloud.

All curves are converted into tubes, the thickness of which is determined by Age and the growth threshold. These tubes are all in the cell membrane, which is transparent, and the vessels and tissues create a convex effect in the plane, but still separate into independent Mesh.

  • The green part is the organization, which is relatively thin. There will be a slight convex effect on the plane, which adds a more interesting material effect.

  • The blue color is the main blood vessel, and the blood vessel stops moving soon after the animation starts, because there are not many blood vessels. But because they are thicker, they tend to bulge more.

  • The yellow parts are fibers, and they were made through programmed animation, not growth simulation, because we wanted a different visual effect, so it’s more obvious in the animation.

  • The fuchsia is all tendrils, which Jamie Pilgrim, my supervisor, made for the previous shot, and it’s got a little bit of a dream catcher pattern, which is really cool.

The light decomposition

Nema: Part of the color change is due to Subsurface Scattering and the different thickness of each area of the surface structure, as well as the shading effect of the internal geometry. Surfacing team created projected materials to add a lot of detail to the work that can’t be achieved with geometry alone.

The “drum of blood” gets thinner near the outer edge, so when the camera moves below the drum of blood, it is more transparent.

As Lilith’s face passes through the “Drum of Blood,” the stretching effect is simulated using Vellum fabric. We used a very simple Proxy Mesh, which was just a 2D plane without thickness at that time. We put the plane into the simulated Proxy Mesh to do Point Deform, including cell membrane and internal geometry. Finally, I used Delta Mush, Point Delta can effectively retain the geometry structure shape and material after stretching deformation.

02,

Her painting

Nema: As you can see in the original painting, the parts are very thin, the simulation needs to be very tense, and there are some disgusting but very complicated materials on the surface.

The original plan was to combine Vellum simulation with OpenCL so that the combination wouldn’t run out of memory. So we decided that the tearing effect of the main elements could be simulated with fabric, but we wanted to add more detail, so in addition to the basic fabric simulation, we added curves inside and outside to create the sticky mesh that we saw.

The test simulation

Early test simulation

Nema: “Drum of Blood” fracture effect implemented — The challenge in this section is where to place the Weld points. The first way is to predispose the torn part to rip the mesh in advance, just like the Destruction Effect. This works, but it doesn’t seem very interesting, because all the tearing is predetermined, and places that don’t have enough tension will have no tearing at all. I wanted a more dynamic tear effect. So I disconnected all the Primitives in the grid. All primitively are just little triangles of cloth that are joined together. Unlike Stretch and Bend, the connection is detachable, and that’s how we achieve the tear effect. The problem with this method is that some triangular pieces of fabric break completely, which doesn’t look good. As long as you don’t connect these Primitive objects with other objects, you can delete these fragments later.

Stretch accuracy – When the cell membrane stretches, the accuracy of the area around the thumb is low. Because the entire cell membrane is pulled a long way from the original topology, the mesh requires high precision to support this action, but it is not worthwhile to stretch the mesh to high precision. Fortunately, the Vellum simulation can handle this situation. I thicken the part of the center that needs to be stretched, leaving the rest with normal accuracy.

We visualized the stretch ratio, and the ratio of the original length of the stressed part and the stretch length determines whether the cohesion part tears. Red means that the cohesion constraint threshold is almost reached and then a tear occurs. For example, if I set the threshold to 2, the connection will tear when the stretch distance is twice the original distance. The force generated by the joining part of the tear will cause more surrounding parts to tear, the effect of the tear continues. In addition, I painted a mask to control the tear threshold of the different parts, so that the high tension is not so strong and there is some tear effect, so it doesn’t look so monotonous.

Strands external to the cell membrane — This part of the simulation is derived from the Scatter Points, which connect adjacent objects. I used the Vellum Hair constraint in the simulation, which supports stretching, bending, and breaking. So I don’t need to add a separate connection.

Going back to the line constraint tearing effect, there’s a line constraint inside the cell membrane and a line constraint outside the cell membrane, and they each have their own independent network. Unlike the cloth simulation, where both constraints are broken, the Pin constraint pins the thread constraint to the cloth; Each point in the curve also has constraints and breaks. They all belong to Vellum, so the working principle is the same. I use the stretching ratio to determine the tearing effect. When the fabric is torn, the wire constraint is also stretched and broken, so the tearing effect of each part is similar, but with its own characteristics, and the visual effect is more dynamic.

In some parts of the cell membrane ruptured, the line constraint is still stretching. After tearing, a lot of debris fell down, like torn fabric, and I manually added part of the debris drop effect.

The light decomposition

This section is similar to the previous lighting setup, using subsurface scattering and casting materials. At this point, the “drum of Blood” component and tear two parts of the production is complete.