These images are from a set of interior furniture models (mostly wood) for realtime render. Made for Rob Tuytel – Model Earth.
The goal with this set was to make efficient models: mostly in the use of textures, and for reuse and expansions of the set: this sort of elements are the basic decorations in interior spaces : chairs, tables, ceilings and wall paneling, they’re everywhere and need variation, but also most parts are basically sticks and panels of wood .. Still, there’s a big difference between just applying a tileable over a more or less refined model of a chair leg , and having a fully modelled hipoly baked and unique textures, with discolorations, dirts and edge effects.
But again it’s .. lots of wood sticks, so i .e. think 1 table : it’s simple, but if you expand the set to 5 types of tables, and armories, etc.. suddenly you realize you’ve dedicated unique texture space to dozens of very similar simple pieces.
I used 2 standard solutions : organizing and breaking down models into small parts, reusing them, keeping track of which are ‘original’ and having hi-polies for them, and making what’s possible modular in size (so a panel can be used both for walls waistcoting and as armory door panel)
This makes every single asset into a bunch of separated objects in Blender, but i keep working on my scripts so i can batch export them as a single mesh to Unity (welding, preparing uvs on 2nd channel for lightmap, keeping moving parts like drawers separate)
The 2nd solution is the use of a base map for dirts and shape-specific effects, and a tileable for the wood grain (possible in standard unity shader, like in the Blacksmith demo)
That also means the base map can use less texture space for some objects (i.e. a large flat wood panel ) and more for others (a detailed capitel with normal map details) While a 2nd uv has constant scale for mapping correctly a tileable wood grain and veineer.
The tileables were made from photo textures, but using also Substance : it was quicker for me to start from photo than procedural for nice wood veins patterns, but ‘packaging’ them as .sbs i could have 3 base types prepared , and in Unity, being able on the fly to still change colors, normal intensity, mixing flat and rough wood patterns.
So in the end you could have a table using the same leg model as a chair , but scaled and with a different tileable wood, making it look completely different, or if something special like a pendulum clock is needed, all the parts in common with a cupboard can be reused (maybe with a different tileable to hide the ‘modularity’ )
Here’s some images of collaborations with Realer ( www.realer.io ) making interactive VR experiences (i worked on the art/assets part).
The 1st is an iceberg model for a vr simulation, walking on a slackline over an iceberg crevasse. The 2nd project is a VR showcase of the architecture and constructive details of an energy-saving building.
As usual modelled in Blender (sculpt from photo refs), textured in substance, lighting in Unity 5, both for use with HTC Vive desktop headset, so for me it was largely the same workflow of usual games and non-stereo render, with some more attention to fps (but only screen-space reflection was in doubt because of its render cost, and about AA, the most recent postfx for unity did a good job, so at least for these projects, i didn’t have to switch to forward render for better AA.
More about the VR interaction on Realer’s site : www.realer.io
Some new assets, done in the past months, for Modular Assault Vehicle by Bombdog Studios.
Lots more to post as soon as they’re released 😀
Modeled in Blender, textures in Substance, rendered in Unity 5, At this point i prefer results in Unity vs. Marmoset (2, at least) maybe a little less metallic and shiny as i have it set up, but overall pbr reliability and just the easy of shading and lighting in unity 5 (since 5.3-5.6) is great. The actual game is unity 4 and not pbr shaded, but i have started doing some env. / maps work, and that allows to setup reflection maps and lamps to work better for the mechs’ shading too (and luckily the big open spaces in the game mean that light conditions are much more consistent than in i.e. a human scale city level with interiors, so it’s not too time consuming to expose correctly without pbr, hdr, tonemappers and all the fancy stuff) .
Heavy2 cockpit :
Thermal systems (mech parts) :
Ice environment assets :
I’m working on a personal project! a small realtime env. (Blender, Substance, Unity)
This was long overdue: some things you only learn on actual projects, working for and with other people, and with budget and time constraints, but after a while i had also a pile of things you don’t get to solve properly in that context.
The updates and info on the scene are on polycount :
And in particular , in the last year, i’ve been working on some export and workflow tools of my own (i call them ‘python on post-its’ ) : It’s some batch tools for quicker common tasks of organization and cleanup when creating game assets and environments.
These tools started as a few macros to rename object pairs for hipoly-lowpoly and quickly going from Blender to Substance, then expanded with some macros for export to Unity (joining objects preserving custom normals, repacking uvs for use as lightmaps .. and few more boring but useful speed ups)
After a while, i had all these snippets lying around , customized with ‘hardcoded’ changes for each project, and at least i want to polish them as ‘internal tool’, organize them so they don’t get lost, but i also want to make them as usable/useful as possible for the community.
I think it’s great how Blender allows artists to make their own tools easily (i’m not a dev or a proper technical artist either) and it has surely saved me time on daily env-art work! But this also means, my addons will never be good code or polished, still this thing will serve its purpose even if it only creates a bit of online discussion about game art tools in Blender, or later a talk at BConf and eventually the best ideas being picked up by proper devs.
Click on ‘read more’ to continue on this topic :
This is a set of assets for realtime/VR for the project Almighty window by Rob Tuytel / Model Earth.
These were modelled, and sculpted, in Blender, textured in Substance (painter for most, Designer for the tileable sandstone blocks detail) Rendered in Unity 5.
This was an interesting project for the level of detail of models, higher than usual because it’s for 1st person / VR, and in particular a game that will be mostly in confined interior spaces.
I’m a big fan of sculpting for architectural details, even when it’s just chipped edges and scratches, but it is time consuming and so procedural workflows is also something i will try to use more and more (i.e. the inner pillars at the sides of the door are sculpted, the outer ones have a tileable procedural texture, where even normal map is fully in substance)
I used spec-gloss pbr model becaus, while still trying to be pbr accurate, i like to have a bit of freedom vs. the metalness model forcing anything non-metallic to have same spec. level.I also made some simple custom shaders in shaderforge to be able to mix detail maps using : 1- a blend mode that doe not add saturation (mix or color dodge depending on cases) 2-adding spec-gloss texture for the detail too (to get nice and detailed spec on wood veneer)
In the images below : the 4 tall pillars are actually the same 2 : left has detail map of sandstone bricks, right has a simpler grainy concrete. The curtains were made by cloth sim in Blender, realtime model made simply by un-subdividing the detailed mesh 3-4 times (to under 1k tris each) + normal map.
In the last row : sculpt detail, hipoly full view (23 million polys between all sculpted pieces and still a workable scene) with material colors corresponding to Substance mat-id key map, and right picture shows lowpoly (material color correspond to texture sheets in unity) with uv view of one of the 4 sheets.
These are the 3rd and 4th environments i made recently for the indie pc game Metris Street Football, by Metris code : Venice Rialto bridge and Thai village.
Specs are same as previously: Unity 5, PC game, current gen level of detail, 1 month of work time each env, modeled in Blender, textured in Substance. With the addition of using Shader Forge for the water and colored buildings in Thai village.
These levels are a bit bigger than previous ones, and the main challenge was to be selective on what assets to make to fill them and have variation, without loosing too much detail on the single item, but of course, luckily, the fixed point of view of a sport arena game does allow to keep props simple, quick and dirty (compared to an fps asset that is !) and still get a good ‘ensemble’ view.
Strictly speaking there’s no LODs in these, but Venice and size of the view of Canal Grande required that the further buildings be less detailed than those just behind the goals, it turned out very quick and effective to put the models of the detailed/hero lowpoly ones in a Blender scene (diffuse textures only in a Cycles material), render front views of 2 canal sides and then retrace low(er) poly shapes over the rendered 2d card. (in gallery you can see also an attempt to use a curved skybox type plane with a rendered background, but the camera has be able to go 1-2 floors high in a sport game replays, so that wouldn’t work at all)
The other thing about the buidlings is visible in left image of gallery: showing the final diffuse, using a brick tiled detail and base diffuse color (unique unwrap) . That’s something i like to work with : seems a straightforward technical thing to overlay a detail on a base, but actually involves a fair bit of painter/photograph eye to pick each time the right blend mode, color and saturation of both maps to combine and whether to use a mask to refine the mix (all of course bound by limits of realtime, even when something like ShaderForge makes it very intuitive to do with its nodes)
The last image in gallery above shows the baked light : static on the left , realtime on the right. There wasn’t a strict need to use dynamic GI for this kind of game, but i think unity’s approach makes a lot of sense in general, blending an advanced and dynamic solution that has low resolution and a simpler, static one that has detail, like soft shadows and contact bounces. This was done just before Unity added an option to add direct light AO to static bake ..which just goes in that direction , but the result is similar (contact shadows here are from a soft baked sun and sky)
Above some of the models : classic Venice boats, a load of windows doors and other facade details used on the buildings, and the Rialto model : the substance painter view is ..full of holes 🙂 because i didn’t export parts/modules that could reuse textures from other parts But it includes mirrored objects.. never got baking errors from those, and i guess i could setup Painter to show everything but only bake some, but this works fine, only requiring sometimes to do an exploded placement to get better ao (as usual i bake normal in small separate chunks by matching hi/lo poly objects names, but bake ao from everything to give more ‘food’ to procedural materials to make their effects)
Below more screenshots of finished level :
And the other level is Thai village : Venice was done just after and reused the water shader (though changed ..much muddier) This level has a bit less architecture, but also a lot of natural landscape, requiring some special attention to light and shading .
The water shader is technically simple , just some more nodes than a standard material: a base, a single detail reused in 2 scales to get resolution without repetition, a static mask for foam around objects (all animated with texture panning) and a planar reflection from stock unity effects.
It’s always risky to start adding nodes to a realtime material, before you know there’s a ton of them ! but afaik this should be still a simpler solution than SSR or transparency effects.
The atmospheric scattering plugin (from Blacksmith demo, at low settings) does add a lot in these types of landscapes : yes.. it’s a fog, but one that takes light direction into account, and a lot more natural looking than a simple fade to flat color.
Something that proved important here : limiting the work to the camera angles actually used in game. This level is based on a real world location, something amazing about the photos of this floating Thai village is the variety of roofs .. but those are hardly visible in game and anyway not so important to need many variations.
he houses on the waterfront, in reality, also are each very different, so i made a few models, then added a shader with a color mask for wall paint areas and a vertex color channel to get unique colors on the foreground buildings.
Below images of the individual assets in substance and more screenshots :
M.A.V. : Modular Assault Vechicle is a indie PC game where you can build your mech and fight other pilots, developed by Bombdog Studios.
I worked on unwrapping, making hipoly detail models and texturing all the mech parts in the library, and modelled lowpolys for some.
Credits for the base design and lowpoly modelling goes to the main dev of the game Chad Mauldin (http://bombdogstudios.com/) and Valerio Fissolo collaborated on modelling hi and low poly for the heavy weapon set.
Image below is the full set of pieces done in the 1st round, but more mech parts and env. assets are coming.
That’s quite a library of pieces, but also quite consistent set of materials, and hipoly detail types, so a big part of the job was a good workflow, for the texturing the key was the standard Substance workflow of setting material ids on hipoly pieces, then applying to all sets a single smart material with color keys for the mat ids (approx. 30 materials in total), combinations of plastic, metal, rubber in 3 shades (light, mid , dark) and dull or shiny versions . The camo you see is dynamic, applied in game.
The overview screenshot is in the game engine, Unity 4, with a custom hardsurface shader. The assembled mech pictures on top and below are Marmoset viewer renders (using same spec/gloss maps as in game but with full pbr shading)
Below screenshots of various parts in Substance painter , with test camo patterns. Turns out, pink camo is the best way to judge if the mask is good 🙂 and how much camo paint the mech will acutally get.
The exploded placement is there to get correct occlusion while baking hipolys, and models were split in even smaller parts and named to get clean normal map bakes .. all then put back toghether and in place with some python script/macros to handle the repetitive bits.
The medals are game achievements i modelled and rendered as images.
The last screenshot is inside Blender showing a bit of the workflow.. mat id list, some low and hi poly pieces, the list of named (-hipo or -lopo) pieces and script with buttons to quickly export to substance or to final fbxs for unity .
This 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.
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.
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 :