Bohdan Lvov shared the process of creating the Doctor Who-inspired Marconi Mk III TV camera, discussed telling a story through textures, and showed the rendering approach.
Hello there! My name is Bohdan Lvov, I’m a 3D artist from Ukraine, Zaporizhzhia, and today I will tell you about my adventure through space and time while making a model of Marconi Mk 3 camera – a gorgeous piece of television equipment from the 50s.
But first, a little bit about my humble self. 3D graphics is my passion and has been for every day for the past 15 years. I’ve always wondered how the magic behind the lens is done in cinema and TV, and when the wheel of history turned around far enough, the time of real-time graphics has come. Turns out, I’m a very lucky and privileged person to live in the dawn of real-time art, see history in its making, and have a chance to play with amazing tools and ever-changing concepts of building digital worlds. All those years of practicing, learning, and discoveries led to this article, the main goal of which is to deliver you the best stuff I’ve accumulated in a decade-and-a-half-long voyage through digital realms. In a very flamboyant writing style, of course.
One of my dreams after reading 80 Level for years was to contribute to this iconic publishing network, so I’m really happy that now I have the opportunity and honor to do it!
The Lighting Bolt of Inspiration
Every project for me is a thrill and a kick. I know for certain that I should pursue this interest when the idea of making it is electrifying and joyous on its own. The same was true for this project.
As an avid Doctor Who fan, I was always mesmerized and fascinated by its world of scary monsters, space Vikings, angelic timey-wimey assassins, and brave knights in space armor. It has always been a story about everything, everywhere, all at once and that’s why I love it. On the other hand, as a person interested in backstage processes I was also fascinated by the otherworldly experiences the production team was able to pull off with a budget close to none. You see, in the early days of the now iconic sci-fi show resources were extremely scarce: the overall budget of the first episodes was something like 2000 quid each, which is absolutely insane to think about since production of the prop I’m talking about did cost more than that. And yet, monochrome flickering shapes on the screen were more than enough to transport the viewer to the fantastic worlds and alien planets because it was done by talented people who weren’t afraid of any hardships and troubles that destiny was throwing at them. Fast forward 50 years – and we, as CG artists, transform zeroes and ones into vibrant digital worlds, letting the players roam wild within them.
So where was I, – oh yes, the production process. There’s a docudrama about the history of the show called “An Adventure in Space and Time”. It’s a brilliant movie on its own, let alone in the context of the show, you definitely should check that one out. My eye caught a particular camera that looked absolutely wild, almost like a device from the far, possibly apocalyptic, future:
With all of that crested design and signature silhouette, I couldn’t deny myself making a model of it. Besides, the Science Museum in the UK had a marvelous item in their collection which looked exactly like what I needed.
And I’m not talking about the camera itself – the level of weariness and the footprint of years of use it took turned out to be a perfect opportunity and inspiration to embark on the journey of making this asset vibrant and interesting. I mean, literally, people in the comments couldn’t believe the state of the item, thinking it was exaggerated by me. Life is the greatest artist of them all, I’m just letting it inspire me.
Sure, with an item like this, there are no blueprints, no photogrammetry, all I had was a bunch of low-res blurry photos. That’s where neural networks really aided me and helped to enhance the quality of my work. I’m using Real-ESRGAN for upscaling tiny references and it works marvelously.
Sure, it’s a crude approximation with a ton of issues, but the main goal of this process is to get me a better understanding of the general shape of the asset. There’s always a danger of falling for nightmarish hallucinations the neural network is generating, but overall it’s a great use case when AI is used for good and not for evil.
Getting Flexible with Plasticity
As a CG enthusiast and someone who’s truly fascinated by the amalgamation of art and science which goes into every single piece of CG art, I’m always discovering new things, exploring the industry, and looking for ways to enhance my workflow. After a decade and a half of bending polygons with my bare hands, I grew weary of bad topology wielding evil upon us. And then, regularly, almost religiously, reading 80 Level I stumbled upon the article “Plasticity: An Upcoming Modeling Tool by Nick Kallen”. Fast forward a year, I was able to get my grabby hands on the alpha version of this tool, and it turned out to be absolutely awesome!
In the past, I had some experience with Fusion 360, MoI, and even AutoCAD, but none of them stuck with me because of a trillion buttons and functions hanging from every window, shelf, and tiny cupboard in the kitchen. More than that, the process of working in them seemed a bit tedious and complicated to me, especially when I became good at polymodeling, there was just no point in taking time to find my peace with the workflow if the same could be done with polygons much faster. Fortunately, it changed with Plasticity, because apparently it was designed around the experience itself.
Blender users will be at home here right away with the default cube waiting to be deleted.
Imagine using booleans, bevels, and all of that stuff caring only about the shape and not about topology at all -– that’s what it feels like to use Plasticity. Initially, I thought it would feel more like sculpting, just for hard surface designs, but it turned out to be much better. You see, when sculpting, even using DynaMesh, the user is still bound and dragged down by the topology, which is not the case here. CAD modeling is surprisingly liberating in this form, and while recording demos for this article I found myself to be dragged by it so much that I’ve been playing with it just for fun that I’ve done what I initially intended to do. It just feels good to have the software performing what you want it to without any issues, neverending problems and hacks present in the poly workflow.
It's clear how Plasticity’s developers are aware of how limited their resources are and use this knowledge with a laser-focused effort to fill the specific niche they’re aiming for. A great example of it is snapping, of all things: it’s really easy for the user to choose where to snap to specifically, instead of EVERY vertex and point suggested, as it often happens with poly modeling.
It’s as if this software knows exactly by the gestures I’m making where I need to snap it and doesn’t show every possible option here at once, filtering only the relevant areas. It speeds up the process greatly and makes it possible to create some sophisticated geometry literally in seconds. Take a look at this thumb screw-like thingy I made:
And it took just a bit over a minute! The video isn’t sped up or anything – it’s just a usual working speed in this package. Keep in mind that I’m still a novice in it and have been using it just for a couple of weeks on an irregular basis. No way I’d be able to reproduce this quality and precision with the polymodeling or even a subdivision workflow, despite the fact I’ve been doing it for well over a decade. A few minutes later I have this geometry in Adobe Substance 3D Painter already processed, having absolutely perfect bakes to work with. Without any issues with shading or normals pointing to some undesirable direction.
And all that in an extremely short period of time with minimal effort, which allowed me to focus on the creative side of the project instead of drowning in the technicalities.
The Deadly Vengeance of Monstrous Eyeballing
With the benefit of hindsight, I’m really happy to have a CAD approach in this project because despite all the fancy tools the core problem is as present as 10 years ago: the lack of references is still a lack of references, which could lead to disastrous results just because there’s not enough information to build upon.
Fortunately, over the years I gained a lot of experience and became a certified professional in eyeballing, which allows me to model almost everything without proper references. Sure, it’s much easier and better when the information does suffice, but we’re living in a real world where it rarely happens. Recently, I completed a model of Sebring-Vanguard Citicar, and apparently, became so good at eyeballing that people started to ask permission to make a blueprint out of this model. It takes quite an effort to convince them not to do so because although it looks like it should, it is not nearly as precise as it should be to become a blueprint material. And let me tell you, Citicar enthusiasts are very persuasive, dedicated, and ready to take their time and effort to get what they need!
So, back to the camera then. As with any modeling approach, CAD or not, it always starts from reference planes with sort of okay-looking photos of the object from the main angles:
If you are familiar with CAD modeling, you may have noticed that there are no splines from which the main forms are built. That would be quite a fair observation because this is exactly how it is. I like to go raw with this kind of stuff with the perspective camera being my primary point of view. Very often I see people blindly following the blueprints losing sight of the third dimension and this approach is allowing me to avoid mistakes as such. By introducing the increased probability to miss out on the important measured parts, of course, so it should be used very carefully and wisely.
Fortunately, with Plasticity, it’s really easy to tweak things even when there are layers of bevels, booleans, and other enhancements already.
Of course, a new workflow in the new paradigm of modeling takes some time and effort to grasp. For example, I needed to model a hexagonal bolt and couldn’t think how to do so – normally I would wield a 6-sided cylinder and bend it to the desired form. Obviously, it was not the case in this workflow, and my mind was too poisoned by memories of ProBoolean in 3ds Max from the mid-2000s to even consider similar functionality for this task. Fortunately, it didn’t take long for the things to click in place and allow my brain to handle this modeling challenge properly:
It’s 100% speed. As you can see, even when the model is complete and beveled, it still has all the flexibility for tweaking and changing literally anything about it. That is quite a luxury by poly modeling standards, let me tell you. Once in a while, it just feels good to use modeling tools without any quirks, issues, and unexpected shading errors popping up here and there. It’s nice to feel the tool behaving exactly how it is expected to and dive into the creative process instead of solving all the little issues forming like rust on the old piece of metal. Anyways, during the production of these assets, I made a bunch of nuts and bolts, which I’m happily sharing on my Gumroad.
A very persuasive user might ask a question – does Plasticity have a very limited set of tools? Not at all. This is the case of the “easy to learn, hard to master” solution because there are like a bajillion functions, subtools, and switches to flick, I’m using just a handful of them in those videos. Just look at it!
Although they’ve never thrown it in users' faces all at once, which makes the experience with this package the most satisfying I had in quite a while. I haven't been so excited about a piece of software since discovering TurboSmooth in 3ds Max 6!
The Texel Menace
With all the awesome tools we now have, it’s important to remember the limitations and the purpose of the final product. As you can see, the parts encircled in red don’t have any fine detail in them and it’s not a coincidence. Initially, I was aiming for 2k textures so it wasn't clear if details of that size would be readable on the baked normal map, the idea was to add them in Adobe Substance 3D Painter making a decision based on the texture density available. In the second image, it’s visible how the grip on the lens becomes invisible due to insufficient resolution. It’s really easy to fix just by making threads bigger, although later on, I decided in favor of 4k textures to make macro details visible so it all got sorted out by itself.
It’s also crucial to plan your UVs in advance. It shouldn’t be a burden but rather another tool in your creative tool belt. It will make your workflow faster, stronger, and more optimized. And since texture space is limited, it will keep you from drawing the tiniest specs of dust on the tardigrade scale, because this stuff is all-consuming and sometimes it’s getting really hard to stop. Trust me, it’s getting nasty. Especially when all of the awesome details become less than a pixel wide in the final render; in this case, it also becomes an absolutely useless waste of time.
What I like to do is to mirror some chunks but leave a specific area unique so they would blur the perception of mirrored UVs a bit better.
In this image, you can see how most of the frontal panel is mirrored (highlighted in blue) but there are a few very visible areas like a huge red panel at the bottom left and a pair of screws on the top right part of this area. Thanks to their presence a certain sense of asymmetry is added which is helping me to get away with the huge amounts of reused textures.
A good practice is to put something clearly non-mirrored exactly where the seams meet. In this case, it’s the black cap in the middle of the cross.
Sure, the geometry of it may be symmetrical, although some slightly washed dirt is getting rid of this effect, making it look like it’s a unique part. Well, it literally is, unlike the rest of this area.
Every Case Is Special
People in the comments started to ask questions about the topology of the aforementioned model, especially about the side panels with that horrible stretch to the circle at the center of it. Well, I was actually glad it was brought up because this part allowed me to bump texture density a notch while keeping a kinda unique look on both sides. You may say that every poly should contribute to a silhouette in a low poly workflow, and you will be absolutely right, except you're not. At least in this particular case.
See the Marconi logo in the middle? It would be quite wild if it was flipped and unreadable on the other side of the model. Sure, I could’ve used decals to fix this issue, but since this particular project did involve shaders without opacity, this was not an option for me. But the ability to flip UV island on the other side still presented itself so that’s the route I went for.
As apparent from this image, the bottom part of both side panels also is unique, giving an awesome opportunity to model a duct in the left one and leave the right one just flat. And all of that saves a ton of UV space by reusing the big chunk of something without bringing any visible seams to the texture. I think it’s worth a few additional polys.
Pushing It to the Mathematical Impossibility
Speaking of cramming UVs together and overlapping the hell out of it, it’s always a great idea to spend your time packing UVs even tighter, squeezing juicy texel numbers from them.
“Selected islands area 1.750” means I’m covering 175% of the given area by UVs, which sounds almost mathematically impossible, although this is exactly what overlapping is for. Some parts are reused 2 times, others, like thumb screws, are closer to a dozen. Non-overlapping part is covering about 85% of UV space – some of it has to be left out for padding. So 175% is pretty good considering the non-overlapping number. It also means that I have 175% of the sharpness of texture maps and that’s the best news of the day!
Spin Me Round Like a Record
Another little trick I learned throughout the years is that UV islands shouldn’t be always just flipped by the axis. Sometimes it’s possible to do it without actually flipping anything, just by rotating UVs. Take a look that this light with a number:
It has an absolutely identical texture repeating 3 times around geometry, but thanks to the advantages of PBR rendering it looks how it is supposed to, effectively making it possible to make this particular part three times crisper.
This is a really useful approach in a range of circumstances. Take a look at the example model:
The right one has the geometry flipper over X and the left one has it rotated by 180 degrees. Sure, the design of the object takes its toll in the approach to such technicalities, although the aim in this example is this part:
Still, a design like this is not a reason to make it non-overlapping. But the advantages of rotation become even more apparent when smart material is applied.
The first and probably the most obvious part is that circular striped part which is just impossible to make right in the case of overlapping across the axis. More than that, any text put in this area would be flipped horizontally becoming completely unreadable, which is not happening when the geometry is rotated. Possibly the biggest advantage is that the dents and unique spots don’t look mirrored because, well, they aren’t. It really helps to mask the overlapping and sell the illusion of the object being a single unique piece.
This same trick does also work with squares and any other surfaces. This is exactly how I faked a glass wipe on my Video Capsule JVC 3100R.
It looks like a continuous wipe across the glass, but in reality, it’s anything but. Plus it saves a lot of UV space which makes it a perfect solution for bringing the best out of both worlds.
Fake It 'Till You Make It
What I like to do even more than Doctor Who likes faking his deaths is faking different physical phenomena, like anisotropy. It’s a natural phenomenon occurring usually on polished surfaces, like on the bottom of a pot. Have you ever seen a long highlight across the circular bottom there? That was it. In this camera, the most apparent area for anisotropy was the heads of thumb screws.
Why is it fake though? Glad you asked! It’s because the shader I used for this project didn’t support anisotropy and for my purposes, it wasn’t as crucial. That’s why the solution came as a radial anisotropy gradient placed on the Roughness channel.
Naturally, it won’t give as much sheen and slickness as a proper shader would, but for my purposes, it turned out to be more than enough. It also aided greatly with the uniques, because I have a single instance of those thumb screws throughout the whole model, they are just rotated differently.
Icing on the Cake
For texturing, it’s always a good idea to think about materials in three dimensions. Yes, they exist only in two, and that’s the point – to sell the feeling of volume in them when there’s none. Adobe Substance 3D Painter has a great workflow fitting exactly this purpose. Andrii Mykhailov made a great tutorial on anchors, check it out:
As you can see from the video, the main rule is to be fabulous and generous with your peers sharing otherworldly techniques and approaches. Keeping this in mind, I devised a complicated and unnecessarily convoluted material, which is driven by the brightness of alpha matte:
It looks complicated and hard to grasp, but in reality, there’s absolutely nothing complex about it: there’s a base white material to represent the thickness of paint, a layer of rust, and a shiny metallic finish.
Each of them has its own mask controlled by Levels, so it would be super-easy to stack them on top of each other.
The History of Everything Everywhere All at Once
People often say that every texture, every crevice should tell the story and have its narrative function. While it’s definitely true, this statement raises another huge problem: to tell the story, the storyteller has to understand it in the first place. Just throwing in scratches and bumps and cracks and dents wouldn’t do, because the story would be messed up like a stirred alphabet soup. Of course, gastronomically it could be a great meal, but as a story it’s unfit. That’s what I think is the greatest tool of 3D artists of them all – neither any fancy software nor technical excellence – the main and fundamental characteristic should be observance and sharpness of perception.
People often say that I work in a realistic style, even referring to this particular camera. Well, it’s not entirely true: while my take on it does have some realistic aspects to it, the ultimate goal was to tell the story of the asset, not necessarily making photogrammetrically correct version of it. In one of the previous chapters I referred to my process as ‘eyeballing’ – and it wasn’t a coincidence – my main goal was to make it look good in the eyes of the viewer. Sure, it’s nice to have it geometrically correct, but the feeling of the object is what I am looking for. After all, none of this is real, it’s just math making tiny lights in digital displays spark in different colors, awakening certain patterns in our minds, so we can experience a collective hallucination of perceiving an image on a flat screen as something tridimensional. So we, as artists, are free to do anything in this dimension. Even when depicting real things nothing could stop us from making them better, more real than it is in real life. Of course, it's important to know one’s limits and not overdo it, albeit this philosophy applies literally to anything, because too many cookies are still too many.
So, to make the asset more believable and true to life I had to ask myself a series of questions: "Whose greasy face touched the rubber of this viewfinder? What kind of breath did it feel on its back in the long-gone glory days? Whose grabby fingers touched its body of work leaving a mark for the next 50 years? Maybe the mold formed from badly wiped parts of lunch that got onto these handles?"
How does it feel to be a star of the show literally filming every episode in existence and then be put into a storage unit for decades? What is going on and where am I anyways? As Mary Duhon once said, “to understand Viewfinder you have to think like Viewfinder, embody it, and allow yourself to dissipate in it.”
In other words, everything needs to have its own useful purpose. Like these radial threads on the sides, they weren’t as prominent on references, but I figured they could have been, thus such ferocity and depth of damage done by tilting.
Show Me the Money
It’s all been leading to this – hundreds of hours in preparation were invested for a single purpose: to make this model fly during rendering. A lot of people are throwing HDRI and calling it a day coming to this stage being pretty tired of the project.
Personally, I think that’s a shame because all of that work and effort deserve to shine in the brightest and the best light possible. What I started to do recently is add turntables, especially the ones that have light rotating around the model.
For that I’m using Blender’s driver system, connecting the Z rotation of HDRI to the Z rotation of the empty. All of the lights in the scene are parented to this empty object as well which gives me the flexibility to move everything at once changing just a single attribute!
Considering the scene, it’s a bit of an archaic approach, but I prefer the word “classic” – it’s a shiny beveled cornered plane with the Roughness set to some low value like 0.275. This gives me some nice wet floor effect when the bottom of the model is still reflecting in the plane at the same time giving it a nice falloff. It’s also solving the issues with choosing a background since this approach gives some abstract soft bursts of color brought from HDRI.
As for the render engine, I use Eevee for animation and Cycles for the static images. Their implementation is so good, switching between the engines is super easy, barely an inconvenience, and could be done in one flick.
Another little trick I use extensively is dividing the composition into three layers: foreground, middle ground, and background. This approach helps deepen the picture and do away with its sterile and perfect look. It’s very easy to do with a hard surface by just cutting off some parts like bolts and screws and scattering them around. DOF is a nice touch in this instance because it helps with the feeling of the lens being real without obstructing the view of the model itself. After all, it is the main star of the show, not the lens.
Save Me, Obi-Wan Kenobi
All the effort in the world would have gone to waste if there was no big friendly saving button. What I like to do is to save very frequently, especially after some major changes were introduced: first of all, it will help if the file turns out to be corrupted, but apart from that this approach is presenting the possibility to go back in time and revert earlier version of the project, maybe appending something from them or fixing an issue introduced in later revisions. When I’m saying “I like to save often” I mean REALLY often, so for this camera I had something like 500 gigabytes of backups. There can never be too much of a good thing!
What I was surprised by is the way how Plasticity handles this kind of stuff by saving after every step, that’s quite a nice feature, especially for me being a resident of Zaporizhzhia – sudden power cuts caused by Russian missile attacks rising the chance to lose a lot of progress sky high – but it never happened with Plasticity and everything were left intact. On the other hand, I wasn’t as lucky with Substance 3D Painter’s projects which took a while to be written on the disk. As a result, a few times it led to files being just partially written in time, losing me hours of work but also granting me a bit more grey hair.
All in all, it’s always the same old story: slicing and dicing polygons until the cows come home until something decent will be achieved. I’m pretty happy with how this project turned out to be, but what I’m most happy with is the amount of knowledge it gave me during the production. I really feel how my horizons are broadened now, how my understanding of the workflow is deepened and embroidered with fresh ideas and concepts about digital worlds and ways to interact with them.
I hope this article was useful and interesting for you at least as much as this project was interesting for me. As Edward Hickson said, “if at first you don't succeed, try, try again.” This is exactly what I’ve been doing for all those years, and looks like it worked!
Special thanks to Polina Dobrynchuk for help in writing this article, unwinding wicked cobwebs of my intertwined thoughts!
It was a great deal of fun, an honor, and a privilege to write this article. Thank you, 80 Level, for this opportunity!
You may find these articles interesting