Effects shader

This shader was developed to enable a 3D object in a Unity scene to do several effects. Opacity allows for it to turn transparent via a value. Desaturate removes RGB values and leaves a grayscale, brightness and darkness are input values that allow control of the RGB levels. There is also a ramp and color that can be applied over the top of the UV space. In this case, it allows for a red “ring” to appear around the edge. Built in Shader Forge for Unity.

desaturate

Atlas composite shader

This shader was developed to allow for multi-level compositing of cards from a single atlas file. It also allows for background color tinting, image opacity levels over the background, and a choice of boarder types. There are 18 different combinations of cards that are created for the game. It was built in Shader Forge for Unity development.

The base atlas consists of a background grayscale image plus boarders and overlays in each atlas location. Numbering starts at 0 in the bottom left, and goes to the right, then up a row and continues. It has 4 rows and 6 columns. The shader allows input in each of these fields so it can be any size atlas, provided they are equal in size.

atlas_01

This is an example of the resultant image applied to geometry, and the settings on the shader in Unity. The tiling x,y settings allow adjustments of the UV coordinates of the base tile. Once set, these don’t need to be adjusted. The background colors allow for a single color if both slots are the same. If an alternate color is put in one slot, it will do a linear gradient blend between the 2 colors. Color fill allows for pushing the saturation of the color past the default RGB colors – so it’s used to tune the colors. Image Tile # allows you to choose which image to be the base image inside the boarder. Image Opacity effects the Image Tile. Back of card on/off is an override to turn the entire card into the back of the card image. Boarder allows you to select the type of boarder – leafy, plain or off.

atlas_04

atlas_03

atlas_02

Node tree

atlas_shader_node_tree

Troll Zsculpt

zbrush_WIP

troll_sides_wip

Been working on a troll sculpt for an online magazine cover.  Here’s the work in progress.

Mace

Bas Relief from photo

This is a test to see how well I can extrapolate 3d information from a single photo.  This first pass is with a straight diffuse, taken into ndo2 and extrapolating the normal and displacement information.  Then, it was put into zbrush and the displacement was applied to a 1+M poly plane.  That was saved out and xNormal was used to extract a more accurate normal out of the high poly mesh so that it could be used on a low resolution 2 poly mesh, similar to an in-game asset.  xNormal was also used to generate an additional AO map from the high poly mesh.  The results were then set up in Marmoset.  The low poly plane was added, and the diffuse (albedo), normal, AO and displacement maps were set up in a simple material & adjusted.

bas_relief_diff_norm_disp
This is the diffuse, normal & displacement map pulled from the original image, plus the output from xnormal.

Frm_Marmoset2
This is the render from Marmoset Toolbag 2.

Next test will involve more work at shadow removal before pulling the displacement map.  Also, ndo2 has quite a few variation presets.  I’ll check those out to see if any of them yield a better result.

Book cover concepts

This project involved redesigning the front, spine and back of several book covers.

Disease_web_layout

Render_web_render_01

viking_web_layout

viking_web_render_01

Character Concepts

Character ideas for a prototype casual game design.

LabRats_base_1200

Some sketches and colorized concepts.

World Machine & Splatmaps

World Machine is a very powerful node-based editor that allows for the creation of very complex and realistic landscapes and terrain.  One of the recent features it has is called a splat map, which can also be known as a weight map.  These are black and white masks that match the terrain, and break out areas by height, slope angle and other parameters.  When set up properly in an engine like Unity, it allows different textures masking in a very realistic manner, that follows the height map information closely.  Below is the height map information displayed in World Machine, with colorization done by slope & height masking.

Island_wip_01

Below is the same file, with a pass at the splat map breakout.  Each channel (R,G,B, A) has a specific slope or height data.  The combined file is set up in Unity, then the terrain textures are fed into each channel of the splat map.

splat_capture1

The Photogrammetry of Frankenstein…

I did this awhile back, with software that has since been updated. I created a 3.5″ tall sculpt using Sculpey applied over an aluminum foil armature of the head & shoulders. It was detailed and then fired in the oven to harden it.

image_sheet-1To generate the 3d mesh, I used 123D Catch by Autodesk. I placed the head on a printed paper with reference marks, then photographed it from various angles. One thing I found I did wrong was not set the depth of field deep enough, so I got blurring on my reference images. After I created 30ish images, they were fed into 123D Catch where it generated a point cloud of data points. It then created an averaged mesh from the cloud.  Odd thing is you have to upload your mesh, wait for their servers to build it and then they can post it on their site.  I’m not really a fan of that workflow.  It brings into question ownership.

cap_01 I fed that file into 3DS Max and cleaned up holes and a few anomalies as well as capping off the base. The file was then imported into Zbrush where it was re-topologized. Max_fileI added eyes and a simple metal electrode to the neck. Using Dynamesh, I was able to reset the topology distribution and flesh out a bit more of the details. It still has some work to do, but the process worked reasonably well to block in a mesh from photographic source.    zbrush_details