Saturday 2 April 2016

New Sinclair products look sexier... in CG...

Recently Retro-computers in the UK put together a crowd-funding campaign to raise money to create and release a second ZX Spectrum Vega classic gaming device.  This time, unlike the original, it would be portable - with a built in screen, battery and retaining the ability to connect to the TV as well.

It also had something the original didn't - curves - and curves are sexy...



The 1980's is the new "sexy"

I was inspired - I loved the look of this, and it just screamed "model me" - so I did...

Personal touches...

One thing I really didn't feel worked on the concepts for this device was that they slapped a "Vega+" just up on the top-left of the device.


I mean no disrespect to the original designers, but I decided I'd like to redesign that to feel more nostalgic and match the design of the Spectrum.


I shrunk and moved the Sinclair logo to one side, and put the text "VEGA PLUS" below it in white - very much in the same style as the imprint on the top-left of the classic spectrum did.

Speccy-style branding
I felt that it doesn't always hurt when making a fun personal project to put a few of your own touches on things.  I also did the same for the base of the device.  I placed raised logo's and simple text (ie. "Made in the UK"-type stuff) as you'd see on the Spectrum...


It felt like it needed to be there.  Maybe it will be when the physical product is released - and I wanted to try for a realistic 3D render so I guess I jumped ahead the production line virtually...

Software choice

I built, lit and rendered this model using LightWave3D...

However...

I'm definitely not just writing an article primarily aimed at talking up a software package. I've pointed out equivalent tools and terminology found in Maya for those who may be interested.

In all honesty if you know one 3D package its fairly straight forward transferring those skills across to another once you are able to find the equivalent tools.  I use both applications a lot - Maya for almost 7 years now (its my day job) and LightWave for the last 22 years.  In-between I've used a good handful of others - and the up-skill for each was no different.

The process...

For the top of the device, I decided to use LightWave's spline patching.  The process is very much like Maya's Birail 2 Tool, building a skin over 3 or 4 curves (though Lightwave produces polys, not surfaces).  Like NURBS, they are well suited to getting the smooth curvature needed for this model.  I also used the same approach for the rest of the device's bodywork - especially the back as well as the curved game pad buttons.

Spline cage used for one of the game pad buttons
The rest of the controls and details were fairly straightforward using cubes and cylinders, with a healthy dose of rounder to curve corners (what Maya's bevel tool does to edges).

Buttons, etc all round-edged primitives really.  Simple stuff...

Once I'd done my whole spline-cage modeling, I decided to freeze it (your standard mesh smoothing tool in Maya) to get a high poly result.

This was because I had planned to produce an overall detailed model vs. using bumps or normal maps to fake the same things...  Also, cutting in edges and shapes is a lot more reliable (as most know who've used boolean tools in any software) with more geometry.  I didn't actually use booleans, instead opting for LightWave's drill tool which allow for shapes to be 'sliced' onto geometry.  (In Maya, projecting and splitting a mesh using curves does the same thing).  A lot of selecting, extruding and it was mostly there...

Frozen, sliced, diced and extruded...
Once all was constructed, split, modeled, etc it was on to surfacing

Getting it slick 'n shiny

There are some real material nodes that can be used in LightWave for conductor and dielectric type surfaces (if you're a Maya artist, these types of materials are commonly found in Mental ray (mia_materials)).

I had originally considered these but felt the additional 'realism' factor that these offer by being physically accurate calculation-wise was going to take more messing around to get the look I wanted then just slapping a few incidence-driven gradients (Maya ramps (driven by a sampler node's facing ratio value)) and colors on the attributes of the surface.

You can do something similar using Maya's ramp shader
As far as image based textures - simple planar mapping was all I needed for everything (that required an image map, that is - most surfaces were made up of general color).  LightWave benefits from having all the basic projections provided without the need to create UV maps at all.

In Maya this can also be done without UV's using the Projection utility node...  But in most cases. Maya models are UV'd as a default and its not often that you'll see a Maya artist even touching the Projection node apart from perhaps front projection.  That said, Maya can generate camera-based UV maps as well.

To get the rich reflection going on, I used an HDR map for reflectivity as it gives that true intensity needed to obtain realism.  In this case it was one called Old Industrial Hall, available from the HDRLabs website.  I liked this as the location featured plenty of framed windows that play nicely across the surface.

Old Industrial Hall - great windows make great reflections
While I had considered it, I decided to avoid using a low gloss specularity on the matte surfaces and opted to use ray-traced reflection...  I just set the reflectivity crazy-low (0.5% or less) and gave them a healthy amount of reflection blurring.  Interestingly, this didn't really affect render time greatly at all...

Everything reflects - even the Matte surfaces - and check out those windows!

Lighting it up...

I didn't want extreme shadows, and was after that nice soft look to the lighting.

For the ground plane I decided to just use an ambient occlusion shader to fake the shadows beneath the device.  You could do this in Maya, though to be honest its a case of fiddling around in the Hypershade and tweaking Mental Ray options to get a great result.  LightWave has a shader that just plugs straight into the color attribute and does what it needs to.

"No lights were harmed in the making of this shadow"
For the main diffuse light on the device itself, I used a dome light (similar to Maya's directional light, when using ray traced shadows and a small light angle to get some penumbra) to soften the shading.

It really was as simple as that.  Fake ground shadows, one light source and a reflection environment image.

The results...

I am pretty pleased about just how well this project came out.  Yup - pretty darn chuffed...


I want one...  As in a real one - I already have a rendered one... It was cheap
The back was pretty curvaceous...

Can't forget to add those things that make it actually work
I am pretty happy with the project, and as I've not produced an updated show reel for at least 3 years (never really needed one), I figured this is a nice small project that might work out nicely as part of a reel...

Animating it...

While 1-2 minutes for a frame wasn't terrible for still renders, when there were 240 frames of subtle fly-in to produce - and I wanted to add in an ambient occlusion and wire-frame pass - optimization was critical.

Camera angles

Luckily for me, I just wanted a slow pull in of the down-facing camera (same camera used in those stills above)...

Majestic smooth pull in of the camera - all it needs...
Its that more elegant motion that I felt worked best for something of this nature.  What was great about this was that you would never see below the device, and you never really move around the sides either.

Occlusion shaders are naturally slow (well, most of them at least) and especially when higher sample levels are used to get clean and quality renders.  When there are 240 frames of this, we're looking at some loooooong rendering times.

Take it to the kitchen...

By removing the need to calculate occlusion, I could easily improve the rendering times.  To do this, all I needed was to bake out the occlusion render as a single frame right at the start.  By hiding the Vega and rendering a high res still frame of the ground plane, I could remove the shader and instead front-project the rendered image back on...  Super-simple, and way faster to render.

Bake images rather then process expensive shaders...


For the occlusion pass and wire-frame passes of the Vega itself, I did the exact same thing - rendered a still frame at the start and then front-projected it on rather then use a shader for the whole sequence.  It worked a treat and got 1-2 minute render times down to a more manageable 13 seconds (given I could drop the antalias samples a lot)

The final verdict

What a sexy device, and it made for a fun project - something I needed to give me a kick-start to do personal projects after spending most (well, all) my time prepping class exercises.  And what a great looking device as well - big respect has to go to Retro-computers for their efforts in bringing back the 80's nostalgia to a modern world.

I'm pretty sure I'll eventually buy one, though for now I can survive running a speccy emulator on my tablet to keep me amused on the trip to work... (It's cheaper)

To take a quicky look at the rendered sequences cut together, I've uploaded it to my youtube channel. Here's the result below...


0 comments:

Post a Comment