Hey Guys, for the last 3 weekends I have been working on an idea I had for a while, and that is painting an environment entirely by hand on one big texture.
These first tests are proving to work out and I'm now determined to do a little more with it in the form of a little top-down environment with characters and the like running in an engine as some kind of vertical slice for the artstyle of a game.
I'm trying to capture a look for the project that makes the player feel like he's walking around in a painting. The painting style I'm leaning towards has been inspired by Bastion though I wanted to make it a bit more readable. Next to that I'm trying to capture a bit of a pixelart look but instead of using actual unfiltered pixels I'm painting squares by hand.
Today I wanted to polish an area to see the final result I am aiming for and here is a shot of that part from multiple angles:
For the painting and projecting I am using Mudbox and Photoshop, Photshop mostly for the initial projection paintings and mudbox for the cleanup.
I am painting at double the resolution I'm aiming for which is currently 7 2048x2048 textures. The UV's of the indivual pieces are correctly mapped but the layout is very loose so in the end I'll probably end up with something like 5 1024x1024 textures for the same area hopefully. I know this approach will result in a lot of textures so I'm keeping the polycount low and will be using the most basic shaders there are.
The project will be a lot of work because you're basically painting multiple paintings in order to get something working in 3d and there is a limited amount of reuse of assets although I'm thinking of ways to speed up the workflow and reuse.
Here is another shot I posted 2 weeks ago of some grasslands that may appear somewhere in the little realm:
Im only able to paint in the weekends so the project will probably take a while but I'm looking forward to the end result=)
Feel free to ask questions about the workflow
Replies
The only part I'm a little fuzzy on is your use of PS/Mudbox. I am under the assumption that you would use mudbox for it's projection painting capabilities, not cleanup? I picture it as starting in mudbox to use projection mode to PS and paint over it for your base/guide texture, then after that just using PS exclusively to finish it out.
Or are you doing both? starting in PS with rough, going to Mudbox then projecting and 'cleaning up', then finishing out in PS?
Just want to make sure I'm getting it correct. It's a splendid idea, texture heavy, but you wouldn't need much geo at all for this. I can't wait to see more.
OK This post gave me an idea. If you could someone afford more texture space (or make a game using only 256's and 512's), you could have one 'light' version of the texture and one 'shadow' version, and instead of baking lighting in, you could set up point or directional lights and somehow rig it so where the 'shadow' is cast, it shows the second/shadow texture instead.
I have no clue how this would be done or if it would give a better result than simple shadows but I just wanted to share the idea. Could probably use it for anything like dark/light world shifting, special lighting scenarios, etc.
just a thought!
Looking good so far!
Any chance of you doing a animated gif, or a small video, where the camera turns around the piece?
Either way, definatly following this ^^
so its not exactly a megatexture, its a tiled megatexture? can you post what you have as far as textures so far?
what would be the benefit of this? to have more beautiful and artistic shadowed areas. that is an interesting idea
Yeah. Instead of shadows that are just black multiplied over the base texture, you could paint in well saturated contrast that reveal detail, instead of obscure it.
thats pretty awesome actually. i wonder if this would be more performance heavy. i mean it probably would since textures are a huge performance hit
Please, please do The art style is fantastic and you've taken a very cool approach to this!
You could use the Custom lighting node in UDK's material editor.
Everything plugged into the 'Custom Lighting' channel refers to how the object is shaded in the light.
Everything plugged into the 'Custom Lighting Diffuse' channel dictates how the material looks in shadow.
Usually, this would just be the diffuse texture again - but there is nothing stopping you from setting up a separate image and a shading solution that doesn't darken it
- Jeff Parrott:
I guess it's just familiarity yes, been using mudbox for more handpainted stuff and apart from a couple of small things I like how it works. I may look at 3d coat some day to see the actual benefits, only used it for retopo before. I'll definately screengrab some work in progress shots or maybe make a timelapse of a little area although it mostly comes down to pure painting =P
- Bounchfx:
first post:
The cleanup in mudbox is mostly the nooks and cranny's that just don't work that well with projection painting. This is a shot where almost everything is straight from photoshop:
If you compare it to the shots in the first post all the new stuff has been done in mudbox although I could have also done it in Photoshop by using multiple projection angles I just felt like doing it straight in 3d. Photoshop is strong for getting the general colors and values down on a larger scale and then with mudbox I can just colorpick from that base and clean the stuff in 3D. In the end I'll probably take the textures through PS again and do some sharpening and cleaning straight on the texturesheet.
second post/ SirCalalot:
I have also had this idea for a while now. but instead of rigging it to a light I had planned to paint a light and dark version for some grassy fields and have moving clouds mask out the dark version to have some cool lighting effects. Problem with the rigging to the light is that I'm unable to find any resource on how this would work in cast shadows, the node network SirCalalot showed works on the shadowside of objects, not on the shadow they cast. If someone knows a way on how you can lerp between 2 textures using the realtime shadows as mask I'd be very interested.
- Murph:
Would love to test this stuff in Idtech 5 engine with a proper megatexture :P
- Fingus:
Everything you see is handpainted, so the shadows are "baked".
- AimBiZ:
it is supposed to be viewed a little closer than the screenshots in the first post though always from a topdown angle similar to stuff like diablo.
for those of you who requested a video:
[ame="http://www.youtube.com/watch?v=lLD1uiTHnPo&list=HL1347808420&feature=mh_lolz"]Handpainted Environment WIP - YouTube[/ame]
First showing a turnaround with and without wireframe. After that you'll see te current texturesheet I'm using with all the little pieces, the big mess you see if objects that haven't been mapped correctly yet and still need a little work on their topology. Then you'll see an exploded model floating above the proper one that I'm using when I can't reach certain places of my mesh. The UV's of these 2 versions are overlapping so when I paint on either one the other one updates as well.
The setup I currently have basically allows me to add any object I want or change geometry that I can reimport in mudbox and integrate in my environment right away. I really didn't want a workflow where the modelling stage would be set in stone when exported.
Hope I answered most questions=)
Keep it up!
They are in the video @ 0:32
I also attached a UV shot from Maya, each 1x1 grid square represents a unique texture.
Ged, well yes more or less, though you could paint a couple of texture beforehand and throw those models in with the unlit textures already applied and then you'd have to paint in the lighting so that it fits in with the rest.
edit: i thought i read in your first post that you were doing this as a megatexture but i guess not. I guess im still asking are you loading this all at once or are you loading the tiles as separate textures?
I am a big fan of painterly works, as well as hand painted textures.
Perhaps in the foreground area of http://1.bp.blogspot.com/-Wzt4MDHx02M/UDjq0FVmozI/AAAAAAAAAYc/0vb1GkCknWA/s1600/0058_25-08-12_Elementrix.jpg the cliff face has a little bit too much noise / photo look to it, I wish it had more broad strokes like the small rock faces in the background.
Also, I think your cool colors aren't quite cold enough to push that painting look, maybe a bit more exaggeration, especially in what appears to be the start of a nice fantasy envrionment. They just seem to be hovering in the greens, more atmosphere would be pushing more blues
Really nice work so far, keep going
makes sense! I guess I didn't realize how powerful mudbox's 2d painting side was, if you're able to do a bunch within it!
Looking forward to the rest of it, looks killer and I'd love to see a game done this way.
@elementrix
Are you painting on flat uvs in CS or are you painting on the 3D model in CS?
@bounchfx
Mudbux has paint layers that function just like Photoshop (normal, screen, multiply, etc.) And getting your stuff into CS and then updating back and forth is super EZ. I personally still prefer Mudbux for painting over Z.
Aweomse, just made my day. Can't wait for more.
I've been getting stuck on an optimal way to do it that its feasible for production.
It's defintely freeing to just paint the model directly as you please.
For this, the shadowed parts should just be color corrected versions of the lit texture, as lerping between completely different textures might be unsettling due to the different brush strokes. If you're just going to color correct it, you might just want to do it in your material.
For optimization purpose, you could divide your scene in asset with unique textures that you could reuse, and have a special UV on each asset for a lightmap or different maps to blend, that you can paint for each scene.
For blending textures, you can just paint/render alpha maps ?
Did you bake the shadows first or did you paint them in? Although I guess you could bake them first and then paint over to make them more stylised...
How are you using PS to do projection painting? Does the 3d painting actually work that well?
/subscribed
Thanks for making this thread, subscribed!
EDIT: This also makes me think: How are you going to address moving objects? Like that water wheel, or eventual flags or other dynamic objects since the light is baked :P
These are seperate textures that are being loaded within the same material (all at once if neccessary). If you want to be "correct" it isn't a real Megatexture (as in a texture with sizes above 10kx10k) but I presume that even the Megatexture engine used for RAGE cuts up the "Megatexture" into more usable chunks.
-Spiffy664
Yes you are right, those cliff faces are actually photo sourced so that I could use them as a basis for further painting work which I haven't done there yet so consider that part heavy WIP:P
And yeah as you can notice I shifted the painterly style a bit from that grassy piece to the village piece which I did a week later. I'll definitely try to get some nice atmosphere with blues here and there, especially in a forest scene that I may or may not do:P
-Kon Artist
I am painting on the 3D model (screengrab) in CS
- nathdevlin
Yep, in terms of production this isn't really feasible although I think you can make the process faster if you first approach it as a usual environment with textures and then bake everything down to unique UV's and paint all the lighting and stuff. If I'm not mistaken I've also heard they did it like that on the development of RAGE.
Problem is I'm way to impatient to set it up like that and wanted to get my hands dirty quickly xD though now that I see where it can go I may use a better workflow on the next piece. Eventually this technique is always going to be more work than your ordinary modular sets and tiling textures but that's a trade-off you'll have to make.
- TigerGD
can you show a picture of your game and the shading network you're using? I'm interested in getting this stuff "realtime" but the firsts tests I did didn't prove to work the way I wanted it. And yes your correct about the different brushstrokes although you could work off the lit version and make the shadowed version with some kind of general bounce light painted in the texture (Not sure if just multiplying or doing a couple of filters is really going to give me what I want).
- Takkik
Hah, I watched a couple of minutes from that video before but I wasn't able to finish it, will definitely take a look at it! thanks for the suggestion.
Doing lightmaps by hand may also be an option but you'll lose a bit of the freedom you have when doing everything on just one map. Another thing is, those lightmaps will be much lower resolution otherwise it wouldn't really be an optimization:P
- urgaffel
Wow thanks that's saying a lot
I actually just used some realtime shadows originally and exported those with my screengrab to PS where I used them as guidelines for where the shadows would be approximately. Another technique I'm using is positioning the camera so that it looks from the same direction as the lightsource and going around geometry that's blocking the surface I'm painting on, this doesn't make for perfectly equal shadow directions but I like it when it isn't a perfect render.
Mudbox has some very cool projection painting tools (most of the painting tools are pretty awesome), you can export the screen and it'll make a .psd with a couple of layers from mudbox, one of these layers is the layer you have to paint on, once your done you just hit ctrl-s and go back to mudbox where you can re-import that psd and it will project what you've just painting from the same angle on your model. Even better is that you can rotate around with the camera, shut down your computer and the next day paint some more in PS, save it again and re-import it and it will remember all the projection settings.
- ZeroCartin
I'm still using PS CS3 because I think it only went downhill from there:P I tried the 3D features in PS in the past but they just didn't feel right to me, I might give it a second change though but I really doubt if it'll be any better than mudbox's.
Moving objects are indeed going to be an interesting problem to solve, there are a couple of ways, one of them is using local area's that have animated textures (A LOT of work but I think it will really pay off=P) Another one is using realtime shadows on a select amount of objects. And for general lighting on rotating objects I may try something with a light-map although I haven't really gotten to the point of trying out any of these ideas I've definitely been thinking about these issues.
Thanks everyone for the positive comments, I'm blown away.
I'll try to screengrab my process next time but I'm not sure which screenrecording programs are good for long recordings (I tried camtasia but it takes hours to render out those movies, even on captures of a couple of minutes) if anyone has suggestions please share!