CG Sketchbook , notes and tutorials

  • Screenshot_2016-03-19_19.01.16
  • trims
  • dehoorn2
  • gavr-ship-render1
  • wlv5
  • bconf2013-shading-21
  • final-difcol
  • tuning18
  • tuning10
  • tuning6fog


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 »

New Still : few more bits and pieces


Can you spot the difference with previous update ? just kidding .. the tweaks are getting smaller , but still, at this point you want to patch up all the small imperfections or unfinished bits.

Some visible changes are to composition, mostly on color grading and exposure,  including changing  brightness of some material to get better overall colors (i.e. the background building bricks are brighter and of a cooler hue  now )

I’ve refined the fog , using the “shaded” mode instead of “shadowed” , it’s slower but more realistic , the godrays are barely visible  but more ‘physically’ plausible.

An interesting bit -even if not very visible- is that i’ve finally painted (photo-based) spec and bumpmaps for the green doors on the right and ‘diamond’ wall (on the left) :  those parts are heavily based on photos (meaning the model is traced over an actual photo of the full wall or door )

Basing the model heavily on a photo of a complete architectural element definitely helps realism .. However i was bothered by the shading which looked a bit more “plain” and flat : it had bump and spec , but derived from the photo in cycles nodes, i spent about 30mins each in gimp with brushes and filters and i think they now integrate better with the rest.

In general , using good , complex photo textures was one of the aims of this still … i always relied more on tileables and complex shaders than good photos,(in the end, here too they’re just a few pieces).

But they have their pros .. like the door in the background : i think i wouldn’t have came up myself with such an interesting pattern in weathering (instead i just found a gorgeous looking hallway door in the city center.. and snapped a photo)




New still : volumetrics



It took some experiments but i finally have fog, with light rays !

It was a long time i wanted to learn volumetrics properly, and get some proper ‘god rays’/ light halos and a ‘physically simulated’ fog  .. not uniform but showing swirls, movement and interaction with the env.

Making smoke simulations in blender is heaps of fun , but somehow also quite frustrating ,  it’s intuitive because it’s all based on physical params (emitters of smoke , wind forces , etc..) but it took quite a few iterations of change-the-sim-rebake-render-tweak and redo .. mostly in order to get an interesting distribution.


Above is a screenshot of the smoke sim scene , using a very simplified geometry loosely matching the scene as obstacle , some smoke emission from the ground , some from vertical planes on the side of the scene and 2 wind forces to push the smoke accross the scene.


Rendering the pass was the tricky part :


The screenshot above is the fog ‘pass’ : i copied the smoke sim result to another scene with the actual geometry , rendered , then partially colorized the smoke  based on depth (in comp) .

“God rays” were though to get .. the trickiest part was figuring out that “shaded” volume mode enables this effect , but only if light cache resolution is high enough (like 512 instead of default 50 )

But i ended up using “shadowed” : it does lightrays too ,  even if less refined (as if these volume shadows where perfectly sharp)  but is also generally faster to render.

Also the shading params aren’t as intuitive as for “solids” (“diffuse or glossy”) : In a Blender volume material  “reflection” is what will respond to external lights , so that must be high , a bit of scattering/trasmission and density  are necessary , but best kept low (quite low , even like 0.0X)  to reduce the  thickness of depth-fog vs. the intensity of the rays. And it’s necessary to have quite strong lights for them to show up as volume rays.

Though i don’t know much of the technical workings of volumes .. it would make an interesting tutorial , i’ll try making something for my YT channel when i’m done with this still.









Get every new post delivered to your Inbox.

Join 33 other followers

%d bloggers like this: