Environment Base Shader and Dynamic Emssive Material

I was looking forward to doing some modelling tonight, but ended up starting something at lunch today forgetting that work has max 2017 and I have 16 at home – doh! Instead I worked on a base shader for the environment.

I’ve been toying with the idea of a mega-texture, so I’m not sure if I’m going to get an awful lot of use out of this, but it seemed a sensible place to start if I’m not modelling.

The shader has slots for colour, material, normal and ambient occlusion maps, as well as a colour blend overlay and UV tiling option. Using this I can get multiple materials out of less textures, have to create less shaders and won’t have to compile a whole bunch of shaders at runtime. Lovley!


I also created a dynamic instanced emissive shader. This means I can edit it at runtime. Having a button where I can change the glowy colours in my level? Yes please!

I added my door asset to a blueprint and enabled input on it (totally did this first, didn’t forget and wonder why my blueprint was broken…no, never).


I then setup a key press event with a counter and a switch on int for setting the colour using a set vector parameter value on materials node. I reckon there’s a far better implementation for this, if it becomes more than a silly easter egg I’ll improve it.


And here it is! In its .gif-y glory!


Commodore PET Model

I’ve been working on a model based on the commodore PET. This is kind of based on the 2001 environment I started, and hopefully it might come together with it.



I changed the shape of the PET a bit as I wanted a more rounded, sci-fi-ish model.




Started this off with some very basic textures and was a little worried it wasn’t going to come off as at all realistic.


I added corner dirt and general grime to the body and screen textures. It may be a bit overkill but it does lend more realism to it. I may tone it down a bit later. The grime is a bit low res which I’m not super keen on.



Screen Shader

I made a uv shifting shader to do a blinking animation for the ready screen. This was surprisingly difficult – considering I’ve done something like this before I thought it would be quite easy. Clearly need to brush up on my shader math!

The texture is set up with two identical halfs, with the blinking block added to one of them. The shader jumps between the two halfs.




Current Projects

Just a quick update on what I’m working on just now. I don’t have a whole lot to show, but got to keep up with the blogging!

I’m working on two projects, a scripting one and an art one.

Scripting Project – Art Tools Launcher

The aim of this project is to create a standalone python launcher for various art programs. Its very ambitious, but draws on a lot of concepts I’ve been wanting to look at for a while.

Right now, it has a very ugly UI where you can select a project configuration, and a 3DS Max launcher that writes to your max ini file to setup the project location.



I also found out what happens when you break max’s heidi drivers…the configparser module is not in my good books after converting the whole .ini file to lower case!


Art Project – 2001: A Space Odyssey Environment 

I’ve had a lot of scrapped art projects recently, mostly due to the fact that I’ve been focusing more on learning substance pipelines than just creating. I think I needed some time to just get the art flowing again, so decided to make some fanart. 2001 is one of my favorite movies, so it was a go to.

I’m working on this scene.


I’ve done a breakdown of the assets in the scene, but that’s about it so far!




Telecomms Box Asset

Been practicing PBR in photoshop some more. I wanted to do something in a realistic style, so created this asset from a photo I took near my flat.


Had a go with Marmoset Toolbag for rendering, I don’t think I’ve quite got the hang of it yet, but it seems like a great piece of software.







PBR in Photoshop

Spent a couple of hours today testing out a PBR workflow using just photoshop.

The Model

I wanted to make something hard surface, but very simple and quick, so opted for a simple table.



PBR In Photoshop

I used the values from this quixel chart, matching up median luminosity values to the ones in the chart. I used photoshop’s hypergraph to grab this information.

PBR Values

Here’s the albedo, reflective and metalness maps I made using this technique. The photo was grabbed from textures.com. In order to remove lighting information from the photo, I duplicated it, desaturated the duplicate, inverted it, then set its layer mode to soft light.


(Thanks to this awesome tutorial! https://forums.unrealengine.com/showthread.php?52529-PBR-Tutorial-Series)

Material Set Up

I also made a detail normal map, which I added to the material using a DetailTexturing node, something new to me.


End Result

I’m happy with the end result – its pretty boring as there’s not much you can do with a generic pine table – but I think the workflow turned out  well. My only gripe was that I couldn’t import multiple UV sets into Unreal, which meant in order to use AO I had to make all my UVs unique – not how I intended to set up my maps.



As a wee bonus – here’s the difference between this and a similar table I made for my first ever game project!