UNITY-POWERED RENDERER
Here’s a retrospective entry into my portfolio page.
Back in 2014 I did some artwork for a couple of design agencies. It was a departure from game art, but I quite enjoyed it – and I found the variation in work kind of appealing. But, I constantly ran into the issue of render time. Or rather, the lack of it… While I could model the content quite quickly, lighting and rendering was a long drawn out process. So much so, that I couldn’t really make much profit doing it.
Then someone at a steel rope manufacturing company approached me to see if I was interested in creating some animations for one of their exhibitions. My initial reaction was, no. I wouldn’t have a problem modelling, but I didn’t have the processing grunt to create the animations. But, what I did do, is suggest an alternative: Rather than having videos running on the stand, why not have something interactive? That is, an iPad or PC hooked up to a large screen. Visitors to the stand could then spin and manipulate the products. Or, if nobody was there, the display would show a predefined animation.
So I took a steel rope model that I had already created for the company and wrote an interactive viewer in Unity 4.6. At first, this was a branded viewer that simply let you spin the rope model and ‘explode’ the cores using a slider. A useful, but relatively simple tool for showing the product. The US arm of the company liked the idea, but the UK didn’t want it – which is kind of a shame as I think it would have worked well at an Expo.
However, having seen the potential savings in render times, I decided to expand the viewer with the following features:
- The ability to adjust and control the lighting
- A quick method of changing the reflection maps using presets (this really *does* save time)
- The ability to rotate the camera, or the object.
- Super-high resolution image export of up to 9000 px wide (depending on your PC).
The tool takes advantage of Unity’s ‘Render to Texture’ ability, more commonly used in games to render an image from a camera onto a polygon in the scene (for example, to map an image from a security camera onto a model of a TV). What this tool does, is render to a texture at a very high resolution. But rather than mapping that to a polygon, it saves it out.
One advantage of rendering at such a high resolution, is it ensures anti-aliasing in the final image in nice and clean. Another unexpected feature, is you can render out the alpha channel. So the resulting renders are perfect for placing on a layer in Photoshop. Here a zoomed example:
I had plans on extending the system further with a view to distributing 3D artwork via this tool rather than sending out static renders to clients. But, as is often the case with these things, other work took priority and I wasn’t able to progress it further.
In the year and a half that has passed since I wrote this, Unity has changed massively – with an entirely new rendering engine capable of even better rendered output. So this tool would need a re-write (it’s written in Unity JavaScript too, and I’d need to convert it to C#). But I think this proves that the real-time approach was definitely the way to go for producing content of this kind and I will be revisiting this project at some point in the future.
Unity Image Renderer
- Categories →
- 3D Visualisation
- Illustration (CAD)
- Unity 3D