I'm in the middle of developing a movie in which there is a car chase. You know me I can't live without a car chase. But this time I'm trying to make the movie properly. By "infiltrating the movie industry" as some people suggested to call it. Which means ( since I live in Israel ) I need to write something that is possible to do in Israel. Getting $40 million to shoot a first feature film in Israel is not something that I can expect to happen. So instead I need to come up with something else.
So a real cinema movie project is being developed, and as explained in my previous article about it I don't have the money to shoot a real chase scene. Instead I gonna use CGI as much as possible, to cut down the costs ( but not my sanity ).
This was a good start. I found a real car I want to mess with, photographed it, and based on those photographs ( in a matter of a few days ) made a good enough model of it inside of Blender.
Since then I produced a few more renders of this car. For example this one:
This one was very easy to do. I simply setup the shot, hit render and did a very basic compositing in blender's compositor to bring it together. And it worked almost out of the box. But not that other one:
This one didn't work so well. With the help of the community I understood that position and scale are stupidly important to make it work. And then I worked my ass off to make the lights be actual models and not textures sourcing the photos of the original car. And that lead me to this version of the same render.
This one I showed to a few people and without knowing that they are looking at a CGI car, they were fooled into thinking it was real. I mean you know that it's CGI and therefor you see flaws in it. And I see them too. But that is very damn close. And I like it.
As you can see here I tried compositing a reflection of the car onto that Mitsubishi SUV and there is also a reflection of the Mitsubishi on the Honda. This was achieved with two hacks.
For the reflections on the Honda I used simple planes with the texture being a part of the original photo. They would have obstructed the car, from the camera view, if not the ability of Cycles Render to filter them out, while still preserving their reflectiveness.
As you can see in the material you can add this Light Path node thing, which has a bunch of black and white outputs. For example Is Shadow Ray will be white everywhere where there is a shadow on the surface of the object, you are using this material for, everything else will be black. So you can do neat tricks like hiding certain things only in the shadow and stuff like that. But for our purposes we need Is Camera Ray. This gives us white if we are looking at the object from the camera. And black if it is reflection or something. So we can now use that to mix between the actual light shader Emission and the nothing shader Transparent BSDF. And from the camera we see nothing, while it is seen in a reflection.
You could probably use this in reverse to render a vampire, so he will be seen by the camera but not rendered in a reflection. In that case you would just need to plug the Transparent shader in the top socket of the mixing node.
But that is not something I can use to add a reflection of the car onto that other car. I need to be more clever.
Technically the shadow catcher ( the object on the bottom that captures the shadow ) can capture certain reflections in blender too. But the problem is, if you put that in front of the Honda to capture the reflections on the SUV, it will block the Honda in that area leaving a spot of mostly transparent pixels. That means I either need to do something about it, or I need to be very precise and model the SUV too, extremely carefully, to capture the reflection.
Instead of course I used a hack. I put something that has the characteristics I need for just this particular reflection. An egg shaped object was enough. And then I separated this object into it's own View Layer.
You can add more than one rendering passes, called "View Layers" in which you can enable and disable different collection in your scene. So for example in the Shadow / Car view-layer, I would have the floor shadow-catcher and the invisible reflection thingies. But I will disable the egg. And then in a Reflection view-layer, I will enable the egg, and disable the other shadow catcher.
Now if you press render, you will see it will render the image twice with 2 configurations. And saving it into OpenEXR Multilayered you will get all of the data ( both renders and other render passes that you might want to enable in the settings ) all neatly organized in one very space-hungry little file that is now useful in compositing.
From there using a simple hand drawn mask I can isolate only the reflection and only where I want them to be visible on the SUV. And calmly overlay them over the image of the SUV to add something you probably can't even see all that well anyway.
I knew from those tests I did that I can indeed model a car ( I mean I made a few short films in Blender, of course I can model ). And I knew that I can render it. About that I wasn't quite sure. My other projects usually were very stylized. But due to those renders being 95% there I felt confident to move to the next step. Animation!
A lot of the CGI fails as soon as it starts to move. It may look stupidly real as a still image. But as soon as there is motion, usually you can immediately tell something isn't right. And I cannot tell you that I have gotten away with it either.
I decided I will rig the car. I used a similar rig to the cars in Moria's Race but now with the risers of individual wheels. So I can raise a wheel up ( say to clear a bump ) and it will automatically pivot the body of the car too.
This wasn't easy by the way. First you need to trick the body to rotate toward the direction of this thing ( while you have 4 of those things ). And then you need to also account for suspension. So the effect of rising the wheel will not be immediate.
Here is a simple version of the same concept that I did to figure it out. You have 4 bones on each side of the plane I want to cause to rotate and one control bone that actually will get this plane rotating.
As you can see the control bone is itself rotated 45 degrees. So it faces each of the 4 corners straight on. This is important. That means I can use Locked Track Constraint for it to basically always face toward one of the corner bones. Locked Track works kind of like Auto-Aim, but only allowing it to spin on one axis of rotation. So I can choose say X for one corner. And Y for another corner. But there is a catch. Each axis now has 2 points to track. One forward facing one backward facing.
For example if I lift the forward right wheel and then also lift the back left wheel, the two motions should cancel each other out and there should be no rotation. For that I can simply add two constraints to the control bone. The second of them set to 50% strength. Making both wheels control the rotation of the bone on the same axis. And the 45 degree rotation makes it so I need to add only 2 constraints for one axis and not all 4, which would be way too complicated.
Then to give it a little suspension play, originally I simply used two Transformation constraints on each of the corner bones. That only operate at a certain range above the threshold of movement. Allowing for the wheel to slightly move on it's own before taking the body of the car with it.
I thought it was enough, so I continued with it. In the end I had to go with a lot more complex system for that. ( Apparently suspension is a spring and therefore there is always some movement of the body, just it is getting stronger the harder you push, which is way more complicated to rig ).
With that I animated this shot. As you can see I spent some time tracking the footage. But because I was shooting from a far with long lens ( a lot of zoom ) I ended up simply using the Tripod option in the solver ( which disables trying to solve 3D movement of the camera ), which did a descent job giving me this camera move.
What was not as easy was to guess how much zoom there was actually in that shot. I tried using fspy ( an app specifically designed for this sort of thing ) but it couldn't give me a good answer, due to how strong the zoom actually was. So I had to basically guess and try a bunch of numbers until I arrived at something that somewhat worked I suppose.
I rendered one version of it, using similar compositing techniques I used on the still shots and it was surprisingly good. I had to of course rotoscope out some of the stuff in front of the car, but it wasn't that hard to do. And then compositing it all together gave me a lot of hope.
To achieve the changing light as the car is passing by the store, I used the footage itself as the light source. I made the shadow catcher actually emit light onto the car, and mapped the footage onto the shadow-catcher. Making it actually surprisingly effective at recreating the lighting conditions ( despite the footage not being HDR ).
Next challenge was to add lights to the car itself. I want to make the chase in the movie I'm making during the night. Which complicates things. At night cars have their headlights turned on, and those illuminate everything. Yet observing the real life at night, I noticed that the illumination is not as strong as might seem at first. And is more like a bright reflection on the surface of the road. So using the same trick with which I did the reflections on that SUV Mitsubishi, this time I captured lights from the headlights ( and the rear lights ) to composite them into the footage.
Yeah, the shot falls apart by the end. I'm not that good at it yet. But the first few seconds of it are very promising. Still I wasn't sure that it would work in a movie. So I came back to the scene of the crime and recorded a few more shots of myself reacting to the Honda driving like and idiot, in hopes that it will all work in the end of the day.
I mean, it somewhat works. Apart from that hump animation in the end ( why did I add it in ? ). And as you can see I got stupidly lucky when making it. At one point when I did takes of my reaction face I saw the same exact fucking Honda doing pretty much the same exact move ( minus the reckless driving ) and I just snapped into "production value" mode and pointed the camera at it, capturing a shot I later ended up using in this stupid test of mine. Yeah, the Honda that passed by there was way cleaner and shinier than the reference Honda. So it does look different. And it seems I messed up the scale a bit. But what a lucky shot that was. OMG.
After all of this I realized that the animation isn't that great. So I went back into the rig. The main issue in the animation happened when the car hoped over that little hump toward the end. And it seems like it is due to the suspension suddenly jumping from no stiffness to full stiffness. That should not happen.
I decided I will redo the controls. Instead of being driven by a Transformation constraint, I could make it be driven by a Driver instead. In Blender almost any value could be Driven by almost any other value with a system called Drivers. Say I want the controller to move up and down ( on Y axis when it comes to rig bones ) by referencing an up and down movement of a wheel. I can right click on that Y coordinate in the object settings and select the option to Add Driver and then via the Driver Editor window, I can change it's characteristics and stuff.
It allows me to take the value I'm referencing, do some math with it, and then apply it to the value I'm controlling. And the coolest part is, I can even use my own custom python functions as parts of the math operation.
So I wrote this little piece of code
# Fuction to rig soft supension of a cardef Soft(var, travel=5, softness=2):# Soft suspension function.# I tried doing it with curves in driver-editor. And using code# was a much better option. LOL absVar = var
if absVar < 0: absVar = -absVar
try: frac =( absVar / travel )if frac < 1: ans = travel *( frac ** softness)else: ans = taver * frac
if var < 0: ans =-ans
except: ans = var
return ans
# Adding this function to the driver's math operations
import bpy
bpy.app.driver_namespace["Soft"] = Soft
This function takes the var, which is the value we are referencing, and then returns the value we want to use in the end of the day. I did a lot of mathy figuring out and came up with a function where you can also control the travel distance before the suspension is stiff to 100%. And the smoothing force. Basically how fast it becomes this stiff.
Here is what it looks like when I make the suspension very soft. It looks rather cool actually. ( In this shot the wheels are glued to the surface of the ground with a Shrink-wrap Constraint. )
I think I need to work on animation separately. Doing simple shots. Simple tests. Trying to figure out how to do everything so it will work in the end of the day. And then do more video compositing shots. Hopefully getting over that fakeness I had in the end of that shot and actually getting to the next step in this journey ( which is to make a fully CGI shot that cuts flawlessly with real footage ).
Imagine being locked up in prison for something that's legal. And not even merely legal. For something that is a human right. There is this very small human right, I don't know if you know about it, it's called the Freedom Of Speech. An ability to express your opinion without being persecuted for it. And it's more than essential. It's the cornerstone of things like Freedom in general. Sometimes though bad people that are trying to persecute you for this anyway - are smart. And they will look for any other way of shutting you up if this one is not available for them. Good example is Julian Assange. Not so good example could potentially be Josiah Mizukami.
Sometimes a programmer might implement a feature designed to undermine the Freedom Of Speech of various people. This Censorship is a malicious feature.
Sir Kenneth Branagh! That's the end of the review. Just kidding. A Haunting In Venice is the new picture directed by Kenneth Branagh and starring Kenneth Branagh which is a kind of a sub-genre of films of it's own. Branagh started his directorial career by directing a movie where he played the main role. And continued directing movies where he played the main roles ever since. Of course sometimes he might make a movie where he plays not the main character, like the 1992's Peter's Friends where Peter is played by Stephen Fry. And Branagh just has a very big role in it. And sometimes he plays in movies where he is not the director. Like in Dunkirk, Tenet and Oppenheimer all directed by Christopher Nolan. Of course lately he got himself directing jobs where he didn't cast himself what so ever. Like in Marvel's Thor ( where the actor was cast by Marvel ) or Disney's Cinderella where for obvious reasons a middle aged man cannot play the main character. But most of the time he plays the main character in the films he directs. It kind of became a meme at this point that if Branagh directs a film, most likely he plays the main character.
A lot of people claim that they need to use proprietary software, either for work or something else. And the question is. Do they consent to it, or the existence of a need makes it some sort of a power dynamic?
Sheiny was walking back and forth anxiously. Mr. Humbert wasn't sure what's wrong with her. For the last few months she was excited about her new movie that is about to be released. Suddenly she isn't excited anymore. She is extremely nervous. In her mind every single flaw, every single mistake, every single little hazard. All of the stuff that she didn't make the way that would be the best for the film. All of this was tormenting her. The movie is about to be released but it isn't perfect. But worst of all was the fact that she might have overdone the movie's shock. She was filming pornography for nearly a year prior to the film-project. And she was afraid that the movie is too sexual, too gruesome, too strange. She was afraid that it was too scandalous for people to like it.