CG Sketchbook , notes and tutorials

  • metris-soccer-beach1
  • metris-soccer-ship3
  • Screenshot_2016-03-19_19.01.16
  • trims
  • dehoorn2
  • gavr-ship-render1
  • wlv5
  • bconf2013-shading-21
  • final-difcol
  • tuning18


Beach Arena

metris-soccer-beach1This is  the 2nd arena from the Metris Street Football project. Like the next ones , this is based on real world locations, not precise ones, but generally popular and cool places where street soccer is played, like a city beach in Brazil.

This also proves i don’t only do postapocalyptic stuff! (and robots and sci-fi and ships…) Incredibly, the next 2 (Thai village and Venice ) even have bright sunny daylight !😀


The view of a city beach has lots of elements, from the natural (sand , rocks and water, for which i used Substance designer for the most important tileables like sand, and for the 1st time Shader Forge for some additional blending and detail masks)  to the architecture.

And the list there could have been nearly infinite, so the challenge was to narrow it down to the minimum (1 umbrella, 1 chair, 1 background tower and ‘sets’ of parts for wood huts and gazebos that allowed some different combinations.




Ship Arena – Metris street football


Lots to post from recent months ! Starting with this: environment art for PC game Metris street football for Metris Code.

“Ship Arena” (inspired by Terry Gilliam’s commercial from some years ago😀 )

Modelled in Blender, textures in Substance, game engine and lighting in Unity.

I’ve done 3 more of these arenas (1 per month) recently, and i’ll be posting also another project i’ve done before that and that’s continuing now .

As for tech specs, it’s a indie pc game,  uses Unity 5, so pbr materials and Enlighten (using a combo of low res realtime and more detailed baked GI ). Polycount was a bit more limited, aiming for 150-200k tris per level.

Textures budget is always a little less clear-cut : generally it’s all done with a 8-12 2k textures (knowing some might need ‘sacrificing’ to 1k) , 1-2 4k textures and 3-4 1k tileables and misc. textures,  which runs fine on a modern pc even at 1440p  but it’s anyway easily scalable for other hardware.

(Edit : 8-12 2k textures .. i mean sets of course ! so actually 3-4 images each , diff+opacity,  pbr spec/gloss, normal and rarely emission or a detail mask )

Workflow has been pretty consistently Blender/Substance/Unity.  The biggest new thing has been the export script i mentioned earlier to batch export quickly from blender to substance for hi-to-low bake and then to Unity for assembling the environment and lighting it.

This script i started  is working ok as an internal tool for my work, but i’d honestly need a meditation week away from everything before it’s worth posting about as a general use tool.  It doesn’t do anything fancy besides joining, renaming, repacking uvs without overlaps, fixing things like flipped normals on joining objects and rearranging ‘named’ uv layers in blender for the ‘numbered’ approach in unity …

But of course behind all the operations there’s a workflow and a logic structure : i.e. how i use object name suffix or parenting or scenes to organize all the copies of assets (for texturing and for in game use)  and that’s very ‘personal’ (to my workflow and projects)

Right now, i have a bit of free time , so i could do that rethink and make sure any more python code i will write is time well spent, and hopefully that will make it more usable for others … Except😀 , the priority is going to learning the Hard Ops modelling tool for Blender, which is going to be very useful for the other project i’ll post soon.



GoldenAge – Buildings details and decor

Models and textures for Rob Tuytel’s Golden Age project, These are hipolys for still rendering of VR panoramas.

I used the same workflow as for realtime game models, just using a bit more detail on the “lowpoly” (or better, in this case, ‘final’ model that is used in the scenes renders)  so a few things like shutter hinges or thin frames are in the final lowpoly, but these aren’t much heavier than what’s used in a modern fps , the hipoly is still used, and baked to textures in Substance.




You can see these used in some amazing stills Rob has published lately on Artstation:

More info below :

Read the rest of this page »


Rewind Env Art




First round of images from my latest work : Environment art for the PC 1st person puzzle game “Rewind”, out on Steam on the 31st of March , by Stubborn Horse Studio,  main dev. Rachel Cordone.

My part was to develop the full env art kit for the game, starting from a white box layout (very important in this case, being the puzzles dependent on the shapes and dimensions of rooms) For look-dev , i had a small kit of assets from the prototype version and guidelines on design and style, but i did concept work for most of these assets,  and that’s a part i always greatly enjoy.

The project was started in 2012  in UDK, so what you see is not PBR shading (even if most in this post is Substance painter screenshots) , all assets were made with spec/gloss textures, but the engine has different calibration than today’s pbr , and the ‘image reflections’ system used is similar, but a precursor of now commonly used probes and ssr.

I also did the full level building of 2 maps out of 7 , of course ‘full’ being relative to env art, but including lightmap, collision and all the practical testing of your assets .. Those not so trivial things like making sure that your super fancy sci-fi corridor with hundred of pieces actually can tile seamlessy around a 90° curve😀.  Kind of important, and just what i needed, since i recently worked more on single assets than levels, but you need to have experience in building levels anyway, to make best possible assets for level builders.

Being an indie game, this approach of making ‘construction blocks’ that could have maximum reuse and flexibility was fundamental, and on the same line, the outdoor natural elements are a perfect subject for that and helped to give some variation.

Check pics description for more info and another post is coming with game screenshots!

PART 2 : Levels Screenshots !


Cape Horn Ships

eendracht1 Ahoy!, I’ve worked on 2 more ships for Rob Tuytel and the Golden Age project.

This time  i got to do them from scratch : including lowpoly model from histrorical references, baking hi to low poly and texturing, all in Blender and Gimp.

The workflow was conceptually the same as previous ship , but this time i didn’t use DDO, just Blender !  i used the same kind of operations and filters based on processing the NM, AO and cavity maps , but all was done in blender nodes.

First step is making a cavity from normal (with compositor nodes) , step 2 is making generic base “dirtmaps” : one similar to ddo’s “acid” effect (for generic discoloration effects) , a classic one for crevices and areas that gather dust or rust , and  similar one but for exposed thin edges (last 2 could be 1 but it’s easier and more accurate this way). I bake this equal for all the model , later use them differently based on the material of the individual piece.

Step 3 is assembling a material in cycles nodes : there i do the remaining blending and mixing to recreate dirt effects (i.e. i take the crevices map , blend it with a tileable rust texture, or add the acid effect mask just picking the right color and opacity for it )   to define different materials for pieces of the same model , i use a color id map (just like ddo workflow) that i baked previously during the hi to low bake (so materials are assigned to hipoly indipendently from lowpoly topology)

Baking was done as usual, relying mostly on splitting the model into many (30-40) pieces to avoid interferences with normals baking  rather than using complex cages.

To manage the process and the many pairs of lo/hi objects i used an addon called “meltdown”  great script ! maybe a bit over-scripted lots of features but very easy to break (if you have multiple scenes it really necessary to make a copy of everything to bake? ) i had just started writing the same on my own when i found it done already ,  and with plenty of features , i’ll need to read the python and investigate.

It’s a great thing about Blender that with such features/addons you have good chances of being able to contact directly the author and discuss it .. too bad i almost never get around to do that ! (on my list besides meltdown and texture atlas , fbx export and normal edits )


Last piece is the island , this is still wip (half day sculpting on a simple basemesh , with another half it could hold up for close ups).

I got the base mesh from Nasa SRTM project ( they have the whole earth as elevation maps for free, with a resolution of about 30m/pixel )  imported into blender (.HGT is a bitmap with georeferencing and height infos) , refined the coastline using open street maps contours, then sculpted the rest from photo.

Another useful tool for this was Meshlab : the quadric edge collapse decimation filter is  better than blender’s (including planar decimation) and comparable to Zbrush decimation master. It got the 3 million tris sculpt down to 60k tris keeping uvs (in screenshot, with normal map)

So the ingame island is a static mesh, not using terrain  system because it’s used for a flyover and background.

This was more efficient and detailed, i guess the rule is: terrain systems are for when you really need to walk on it , in any point with same detail , otherwise it’s easier to manually put detail where needed , in this case about 10x tris density in the front cliff compared to the back of the island)

Note this screenshot and the ones with all boats and the sea are from Unity 5 , the rest are rendered in Marmoset toolbag.

Unity 5 uses PBR too, so it’s about the same .. but i find Marmoset still a bit better, temporal AA is a lifesaver if you have thin stuff like rigging ropes!

In particular, low glossiness materials (like wood) seem to work a bit better in Marmoset .. i get the feeling they still show nice and correct highlights even when gloss and spec values are very low. While in Unity .. they look just diffuse, so you bump the values up a bit but then they risk looking metallic in light setups with strong highlights.


“The Golden Age” ship texturing


Ship texturing for The Golden Age VR :

  • –hipoly sculpting , nm/ao bake to lowpoly in Blender.
  • –dirt baking in DDO legacy.
  • –Base texturing and final editing in Gimp.
  • –Render in Marmoset (diff+spec+nm , constant gloss, pbr shading)

This december, i worked on texturing this ship model for The Golden Age VR (

The project is a VR/museum/reconstruction of a Dutch city in all the splendor of the 17th century .

The lead env. artist for the project is Rob Tuytel (with whom i had the pleasure of working already on Project Mango).

It’s been a great chance to work on an interesting asset (Arrr : it’s a galleon ! how cool is least , until you get to having to  paint each piece of rigging and decor ! ), and technically fascinating too : while the project is -for now- developed in Unity 4, i’ve made spec maps and rendered this asset in Marmoset (and i’m currently digging into the general subject of PBR and next-gen shading)

This slideshow requires JavaScript.

W.I.P images and info (click on images to read descriptions) :

Kenshi : texturing game env assets


Long time without posting ! i know. At least, it’s because of  constant work, and that means i have stuff to show !

(often the delay before being able to show something is up to 1-2 years., too bad but that’s how it works)

Here are screenshots of game environment texturing work i did earlier this year for 3D-Masala (who did modelling and supervision and doing a great job at that : reviewing and pointing me to a cleaner, more polished look )  (makers of the game Kenshi )

W.i.p shot of the dirt and edge wear maps painted in Blender (hand-refined, based on processing a cavity map + grunge tileables)

bench-scratchmaskW.i.p shot of detailing hipoly sculpts : metal plates done in Blender sculpt , baked to normals (as the concrete edges chipping in this case, in others concrete nm was handpainted, processed in gimp and converted to nm)


Branched path tracing and complex node trees tests (BConf13 slides)

Just back from Blender Conf 2013 .. so nice , as usual😀

Below the slides i had prepared for the Tube project talk . Presentation was very short, so i only mentioned the tests i did on render performance of complex node trees in progressive path tracing vs. branched path tracing.

The 1st 10 slides are misc. w.i.p. images from Tube , the last ones show some comparisons between integrators , basically : branched being faster for easier cases (like absence of transmission and sss components and no dof or motion blur which require high AA ) and if setup correctly (trying to keep AA samples as low as possible)

Also the comparison is between complex node trees (= blending dirtmaps and tileables ‘live’ in the cycles material nodes) and ‘baked’ materials (= not lightbake, just ‘flattening’ the node tree to a single image per channel)

And the result is, baked shaders are much faster (circa. 150%) than complex nodetrees in progressive mode , while in branched the difference is only around 10%.

The test should be more extensive , with more data points ..but this seems to be the pattern. That’s relatively good news for shading artists wanting the flexibility and speed of setup of complex nodetrees but worried about their technical rendertime performance.

More to come on the subject, please post if you have any question.

This slideshow requires JavaScript.

EDIT : seems the slideshow gallery type doesn’t allow fullscreen , to see images fullsize (to read rendertimes!)  click below (“more..”) to see expanded gallery with links to fullsize slides.

Read the rest of this page »

Final! (..final1, at least)


This is the final image of my personal still project. after some feedback i got on forums :

it was mentioned adding a character, .. but characters are an issue : being an env artist, that’s what i focus on . When i tried to have chars in my last personal still .. they weren’t at the same level as the hard-surface parts, and i don’t want people to be distracted by a bad skin shader or similar..

So i thought , if not chars .. at least some storytelling element would help , i came up with the idea of the cordon.. (like a crime scene, or a contagion zone .. ) it’s just a minor element but adds some plot , as well as just phyisically filling some space in the road area , and ,as for composition , it mirrors the curve of the arch above.

The other update is i’ve added displacement to the foreground bricks … being those so close up, makes a nice difference to have the detailed silhouette and better shading… (and it wasn’t much work , i just added some subd, a displace modifier an used weight paint to tweak intensity in different areas)

Latest feedback i got -just after publishing as final on BA, argh!🙂 – was a mock-up for better composition and perspective. A great suggestion .. especially considering i’m still bothered that my last big personal project was precisely too simmetrical in composition .  I think i’ll keep it this way and wrap up, but , i’ll remember that , check the mockup at CGS forums, quite interesting :

Diffcol pass and wireframe :

final-wire+AO final-difcol

Video ‘post mortem’ project analysis :


new still : time to wrap

Here’s the latest render of this env still .  It’s time to wrap this up ! but i still want some feedback so i’m posting some material to share on forums :


Slideshow of all test renders from blockout to final tweaks :

This slideshow requires JavaScript.

Below, a screengrab showing which materials are based on dirtmaps (the ones in greyscale ) dirtmaps were 1st baked with the batchbake script , then painted over. The coloured parts are materials based on photos (of a ‘complete’ architectural piece like a wall panel or door) , except the sidewalk tiles based on sculpts  done in Blender (and photos)


And Some passes from the latest render (AO and diff) :



Read the rest of this page »

%d bloggers like this: