I'm only on chapter 13 but loving it so far! I really like all the pirate themed locales and puzzles. I spend as much time checking out art as playing through it.
Hey Andrew, who was responsible for the Epilogue? It is absolutely stunning!
The Epilogue was done by Christian Nakata as environment artist and texturing and I believe Boon Cotter as lighter. I know he had a few helping hands towards the end but really the epilogue and the start house was the same team. Christian Nakata is lead environment artist hence the high standard he is a sick artist while working every now and again I would pop into his level to check it out. Boom also did an amazing job brining these scenes to life with such beautiful lighting. Glad you liked it
Not the cards the foliage clumps/instances. But yes mostly placed by hand. We have some tools that help propagate by using vertex information and you can set layers and percentage of different clump model groups. This is useful for larger areas. But since we wanted direct control in most cases it was not used as much. We could for example set a stone, tree, and grass as clump groups and set them on vertex blend to propagate. Usually using the vertex/material that corresponds with the group of prototypes to propagate. The tool was made and inspired by other tools we saw from Maya in which Andrew made a tool that works with our workflows.
Not the cards the foliage clumps/instances. But yes mostly placed by hand. We have some tools that help propagate by using vertex information and you can set layers and percentage of different clump model groups. This is useful for larger areas. But since we wanted direct control in most cases it was not used as much. We could for example set a stone, tree, and grass as clump groups and set them on vertex blend to propagate. Usually using the vertex/material that corresponds with the group of prototypes to propagate. The tool was made and inspired by other tools we saw from Maya in which Andrew made a tool that works with our workflows.
Yeh even though he said cards in the video, I could tell he mean't like foliage instances. I chuckled picturing him coming from making the "procedural" nature pack, to placing a shit ton cards by hand.
On another note, in the game I noticed on a lot of the climbable rocks and cliff type pieces that the sides and the top had distinct textures, but they blended pretty well together like this.
Is that some sort of angle based blending, or vertex based or something completely different?
Not the cards the foliage clumps/instances. But yes mostly placed by hand. We have some tools that help propagate by using vertex information and you can set layers and percentage of different clump model groups. This is useful for larger areas. But since we wanted direct control in most cases it was not used as much. We could for example set a stone, tree, and grass as clump groups and set them on vertex blend to propagate. Usually using the vertex/material that corresponds with the group of prototypes to propagate. The tool was made and inspired by other tools we saw from Maya in which Andrew made a tool that works with our workflows.
Yeh even though he said cards in the video, I could tell he mean't like foliage instances. I chuckled picturing him coming from making the "procedural" nature pack, to placing a shit ton cards by hand.
On another note, in the game I noticed on a lot of the climbable rocks and cliff type pieces that the sides and the top had distinct textures, but they blended pretty well together like this.
Is that some sort of angle based blending, or vertex based or something completely different?
That can be several things. Easiest is good uving with vertex blends, second could be a secondary uv set with vertex blends, third could be decals to hide the seam, forth but less likely is using 3D texture projection which is expensive shader wise. I am not 100% What was used in this case but I usually just make sure my uvs seam up with the floor especial where players interact.
Not the cards the foliage clumps/instances. But yes mostly placed by hand. We have some tools that help propagate by using vertex information and you can set layers and percentage of different clump model groups. This is useful for larger areas. But since we wanted direct control in most cases it was not used as much. We could for example set a stone, tree, and grass as clump groups and set them on vertex blend to propagate. Usually using the vertex/material that corresponds with the group of prototypes to propagate. The tool was made and inspired by other tools we saw from Maya in which Andrew made a tool that works with our workflows.
Not the cards the foliage clumps/instances. But yes mostly placed by hand. We have some tools that help propagate by using vertex information and you can set layers and percentage of different clump model groups. This is useful for larger areas. But since we wanted direct control in most cases it was not used as much. We could for example set a stone, tree, and grass as clump groups and set them on vertex blend to propagate. Usually using the vertex/material that corresponds with the group of prototypes to propagate. The tool was made and inspired by other tools we saw from Maya in which Andrew made a tool that works with our workflows.
Yeh even though he said cards in the video, I could tell he mean't like foliage instances. I chuckled picturing him coming from making the "procedural" nature pack, to placing a shit ton cards by hand.
On another note, in the game I noticed on a lot of the climbable rocks and cliff type pieces that the sides and the top had distinct textures, but they blended pretty well together like this.
Is that some sort of angle based blending, or vertex based or something completely different?
For that asset, as well as others like it in Madagascar that is simply 2 materials on the same asset that line up with eachother.
Material 1 is texture A and B where A and B heightmap blend together and Material 2 is texture B and C where B and C heightmap blend together.
Since both materials share texture B the two different materials blend together flawlessly. Nothing complex about it, pretty simple to be quite honest. Madagascar was WAY to big to use any thing fancy like decals or 3D projection. Also Genesis Prado, my texture/shader artist for Madagascar is a wizard when it comes to making amazing looking shaders that are also dirt cheap. He is the whole reason Madagascar looks as great as it dose with how big it is and still running at 30FPS
Not the cards the foliage clumps/instances. But yes mostly placed by hand. We have some tools that help propagate by using vertex information and you can set layers and percentage of different clump model groups. This is useful for larger areas. But since we wanted direct control in most cases it was not used as much. We could for example set a stone, tree, and grass as clump groups and set them on vertex blend to propagate. Usually using the vertex/material that corresponds with the group of prototypes to propagate. The tool was made and inspired by other tools we saw from Maya in which Andrew made a tool that works with our workflows.
For Madagascar the vertex color/material tool that was created was never used. It never gave the results I wanted when attempting to use it. But that could be more due to lack of familiarity with the tool being developed late into production.
For Madagascar I placed every grass clump, rock, tree and cliff by hand, as did David Baldwin who worked on a few of the areas of Madagascar along with me. This gave me 100% control over exactly how the level looked but came with the cost of taking a long time. However, doing it so much over so much area it eventually became second nature and would go rather quickly.
The main tool used to place all these assets was a simple dropper tool we made based off some similar ones you can find online. I could pick a few assets and set them as the assets I wanted to place, pick a target mesh (the ground) and with a single click or click and drag the asset would nicely follow the translation of the mesh and place the asset. As well as add some random rotation and scale if you wanted. Simple tool but it got the job done.
Not as great as being able to actually paint assets down with a simple stroke and then erase them with another stroke but it certainly made propagation far easier than the old way we did it of Click asset, Duplicate Asset, Move to desired location, Rotate and Scale as wanted, repeat for every asset haha.
Material 1 is texture A and B where A and B heightmap blend together and Material 2 is texture B and C where B and C heightmap blend together.
Since both materials share texture B the two different materials blend together flawlessly. Nothing complex about it, pretty simple to be quite honest. Madagascar was WAY to big to use any thing fancy like decals or 3D projection. Also Genesis Prado, my texture/shader artist for Madagascar is a wizard when it comes to making amazing looking shaders that are also dirt cheap. He is the whole reason Madagascar looks as great as it dose with how big it is and still running at 30FPS
So would vertex colours be used to mask what area is Material 1 and what Is Material 2 and then use the common heightmap to breakup the edge?
Sort of like this, although i figure a bunch of other stuff is being blended along the cliff face since I didn't really notice it repeating.
I mean, the only place I remember seeing seams on these sorts of pieces were places where the rock would have a sharp crack sort of piece jutting inwards and I assume the heightmap didn't line up because of a UV split.
Since both materials share texture B the two different materials blend together flawlessly. Nothing complex about it, pretty simple to be quite honest. Madagascar was WAY to big to use any thing fancy like decals or 3D projection. Also Genesis Prado, my texture/shader artist for Madagascar is a wizard when it comes to making amazing looking shaders that are also dirt cheap. He is the whole reason Madagascar looks as great as it dose with how big it is and still running at 30FPS
Hey, how are you guys doing shaders? Is it node based like Unreal or do you any other setup?
Material 1 is texture A and B where A and B heightmap blend together and Material 2 is texture B and C where B and C heightmap blend together.
Since both materials share texture B the two different materials blend together flawlessly. Nothing complex about it, pretty simple to be quite honest. Madagascar was WAY to big to use any thing fancy like decals or 3D projection. Also Genesis Prado, my texture/shader artist for Madagascar is a wizard when it comes to making amazing looking shaders that are also dirt cheap. He is the whole reason Madagascar looks as great as it dose with how big it is and still running at 30FPS
So would vertex colours be used to mask what area is Material 1 and what Is Material 2 and then use the common heightmap to breakup the edge?
Sort of like this, although i figure a bunch of other stuff is being blended along the cliff face since I didn't really notice it repeating.
I mean, the only place I remember seeing seams on these sorts of pieces were places where the rock would have a sharp crack sort of piece jutting inwards and I assume the heightmap didn't line up because of a UV split.
Sorry if I'm being annoying
No, not quite. Material 1 and 2 are not being blended together by the heightmap.
The 2 different materials are assigned just per face and this is a simplified example of how some of the Madagascar assets were done.
Material 1 consists of 2 main textures. Texture set A - Grass (controlled by blue vert paint to bring this to the top) Texture set B - Loose Earth (controlled by green vert paint to bring this to the top)
Material 2 consists of 2 main textures. Texture set C - Rock (controlled by blue vert paint to bring this to the top) Texture set B - Loose Earth (controlled by green vert paint to bring this to the top)
In material 1 A and B blend together using a heightmap and is controlled by using vertex colors. Its the same for material 2. Paint in some blue and the grass starts to show up over the loose earth. Paint back some green to get more loose earth in there.
Now you will see in material 1 and 2 that the second texture set in both is B - Loose Earth. Since these textures are the same they can seam up together perfectly while still blending together with Grass for material 1 and rock for material 2. So if you had your asset and flooded it with the vert color green all you would see would be Loose Earth. Blend some blue in there and on the top of the asset grass would show up, and on the side, rock would show up. The seams come from when slight bits of vert colors bleed into where the 2 shaders meet and a bit of grass hits the edge of where its meeting rock.
Some extra notes. 1. We used all 3 colors to control our shaders. It wasn't just black and white. RGB was used where each color controlled something. 2. Our shaders in Madagascar had more than 2 texture sets in them but for demo purposes this is easier to understand how just 2 work. But adding a third set would give you a lot more breakup. 3. We used multiple UV sets to control different scaling of things like how big the rock density was compared to the grass density. 4. We also used multiple color sets. A color set is your vertex color information. Set 1 could be where you paint your grass blending into loose earth. Set 2 would then be a new vertex coloring that would only control an extra layer of sand. You would retain your grass and loose earth blend you already painting but then you could paint in sand ontop of that and not be effected by the heightmap bellow. This also works for blending say smooth rock into broken up rock with a second color set to control the vertical colorizing of the rock that you want to add for more character.
Hope this wasn't too confusing, I'm sure it would be easier with pictures but I dont have any right now to show. Maybe tuesday when I'm back at work.
No, not quite. Material 1 and 2 are not being blended together by the heightmap.
The 2 different materials are assigned just per face and this is a simplified example of how some of the Madagascar assets were done.
Material 1 consists of 2 main textures. Texture set A - Grass (controlled by blue vert paint to bring this to the top) Texture set B - Loose Earth (controlled by green vert paint to bring this to the top)
Material 2 consists of 2 main textures. Texture set C - Rock (controlled by blue vert paint to bring this to the top) Texture set B - Loose Earth (controlled by green vert paint to bring this to the top)
In material 1 A and B blend together using a heightmap and is controlled by using vertex colors. Its the same for material 2. Paint in some blue and the grass starts to show up over the loose earth. Paint back some green to get more loose earth in there.
Now you will see in material 1 and 2 that the second texture set in both is B - Loose Earth. Since these textures are the same they can seam up together perfectly while still blending together with Grass for material 1 and rock for material 2. So if you had your asset and flooded it with the vert color green all you would see would be Loose Earth. Blend some blue in there and on the top of the asset grass would show up, and on the side, rock would show up. The seams come from when slight bits of vert colors bleed into where the 2 shaders meet and a bit of grass hits the edge of where its meeting rock.
Some extra notes. 1. We used all 3 colors to control our shaders. It wasn't just black and white. RGB was used where each color controlled something. 2. Our shaders in Madagascar had more than 2 texture sets in them but for demo purposes this is easier to understand how just 2 work. But adding a third set would give you a lot more breakup. 3. We used multiple UV sets to control different scaling of things like how big the rock density was compared to the grass density. 4. We also used multiple color sets. A color set is your vertex color information. Set 1 could be where you paint your grass blending into loose earth. Set 2 would then be a new vertex coloring that would only control an extra layer of sand. You would retain your grass and loose earth blend you already painting but then you could paint in sand ontop of that and not be effected by the heightmap bellow. This also works for blending say smooth rock into broken up rock with a second color set to control the vertical colorizing of the rock that you want to add for more character.
Hope this wasn't too confusing, I'm sure it would be easier with pictures but I dont have any right now to show. Maybe tuesday when I'm back at work.
Nah man, that was awesome. So would you say having multiple materials in those cases instead of a single one was to get around texture lookup limits, shader complexity, easier workflow or something else completely?
Thanks for the insight on multiple colour and UV sets too.
Nah man, that was awesome. So would you say having multiple materials in those cases instead of a single one was to get around texture lookup limits, shader complexity, easier workflow or something else completely?
Thanks for the insight on multiple colour and UV sets too.
Not sure how much their shaders have changed since Uncharted 2, but maybe this will give you a better idea too? There's a section just on their blend shaders
Material 1 is texture A and B where A and B heightmap blend together and Material 2 is texture B and C where B and C heightmap blend together.
Since both materials share texture B the two different materials blend together flawlessly. Nothing complex about it, pretty simple to be quite honest. Madagascar was WAY to big to use any thing fancy like decals or 3D projection. Also Genesis Prado, my texture/shader artist for Madagascar is a wizard when it comes to making amazing looking shaders that are also dirt cheap. He is the whole reason Madagascar looks as great as it dose with how big it is and still running at 30FPS
So would vertex colours be used to mask what area is Material 1 and what Is Material 2 and then use the common heightmap to breakup the edge?
Sort of like this, although i figure a bunch of other stuff is being blended along the cliff face since I didn't really notice it repeating.
I mean, the only place I remember seeing seams on these sorts of pieces were places where the rock would have a sharp crack sort of piece jutting inwards and I assume the heightmap didn't line up because of a UV split.
Sorry if I'm being annoying
You are pretty much correct. We can get away with several blends so we use rgb channels for vertex information and we also used color sets which we could use even more blends per surface but as those layers compounded it quickly became more expensive. So it is a good idea that per shader placed on geo we keep it within 1-3 blends.
And no no you are not being annoying these are the moments we can almost freely talk about techniques used right after ship so keep on with the questions and I am sure either NaughtyDoggers will comment or add more info
Nah man, that was awesome. So would you say having multiple materials in those cases instead of a single one was to get around texture lookup limits, shader complexity, easier workflow or something else completely?
Thanks for the insight on multiple color and UV sets too.
Performance is always the reason. Reducing shader complexity is huge, HUGE. Its honestly the biggest factor in what will keep your scene in frame rate. We can make some of the craziest, most awesomely single complex shaders but they will destroy performance so its cheaper to cut them up. It does make things a bit more difficult to manage having lots of shaders on an object like say the ground and know exactly where and what colors to blend together to get rid of the seams, but the payoff is worth it.
And yes the lighting in Epilogue is baked, Boon Cooter did a fantastic job lighting that scene. All our levels for the most part used baked lighting with lightmaps/vertex lighting. There are run time lights in every scene but lighting information for the most part is baked.
We also have probe lighting where lighting information is gathered from sphere probes placed in the levels by the lighters to determine the runtime lighting look of particular assets. Like Drake, the Jeep, any physics object, all the grass and small bushes. All these things are probe lit since they can move/be interacted with and need to change lighting depending on the current situation and baked lighting wouldn't work.
And its never a bother, I love talking about this stuff! Just can't talk about it during production otherwise you can get yourself into trouble haha
Nah man, that was awesome. So would you say having multiple materials in those cases instead of a single one was to get around texture lookup limits, shader complexity, easier workflow or something else completely?
Thanks for the insight on multiple color and UV sets too.
Performance is always the reason. Reducing shader complexity is huge, HUGE. Its honestly the biggest factor in what will keep your scene in frame rate. We can make some of the craziest, most awesomely single complex shaders but they will destroy performance so its cheaper to cut them up. It does make things a bit more difficult to manage having lots of shaders on an object like say the ground and know exactly where and what colors to blend together to get rid of the seams, but the payoff is worth it.
And yes the lighting in Epilogue is baked, Boon Cooter did a fantastic job lighting that scene. All our levels for the most part used baked lighting with lightmaps/vertex lighting. There are run time lights in every scene but lighting information for the most part is baked.
We also have probe lighting where lighting information is gathered from sphere probes placed in the levels by the lighters to determine the runtime lighting look of particular assets. Like Drake, the Jeep, any physics object, all the grass and small bushes. All these things are probe lit since they can move/be interacted with and need to change lighting depending on the current situation and baked lighting wouldn't work.
And its never a bother, I love talking about this stuff! Just can't talk about it during production otherwise you can get yourself into trouble haha
Damn, so do most assets have about 2-3 materials blended together in the Madagascar level? I saw a talk with Jacob Norris and I think he said for the Scotland environments there were about 150-200 textures in that scene, how do you guys manage keeping performance in scope for something huge like madagascar? I also saw the wires from your coral reef section, specifically the rocks. Do you decimate those from zbrush, or are those modeled in maya so you can manage the vert count and how they'll blend with the shaders?
Nah man, that was awesome. So would you say having multiple materials in those cases instead of a single one was to get around texture lookup limits, shader complexity, easier workflow or something else completely?
Thanks for the insight on multiple color and UV sets too.
Performance is always the reason. Reducing shader complexity is huge, HUGE. Its honestly the biggest factor in what will keep your scene in frame rate. We can make some of the craziest, most awesomely single complex shaders but they will destroy performance so its cheaper to cut them up. It does make things a bit more difficult to manage having lots of shaders on an object like say the ground and know exactly where and what colors to blend together to get rid of the seams, but the payoff is worth it.
And yes the lighting in Epilogue is baked, Boon Cooter did a fantastic job lighting that scene. All our levels for the most part used baked lighting with lightmaps/vertex lighting. There are run time lights in every scene but lighting information for the most part is baked.
We also have probe lighting where lighting information is gathered from sphere probes placed in the levels by the lighters to determine the runtime lighting look of particular assets. Like Drake, the Jeep, any physics object, all the grass and small bushes. All these things are probe lit since they can move/be interacted with and need to change lighting depending on the current situation and baked lighting wouldn't work.
And its never a bother, I love talking about this stuff! Just can't talk about it during production otherwise you can get yourself into trouble haha
Damn, so do most assets have about 2-3 materials blended together in the Madagascar level? I saw a talk with Jacob Norris and I think he said for the Scotland environments there were about 150-200 textures in that scene, how do you guys manage keeping performance in scope for something huge like madagascar? I also saw the wires from your coral reef section, specifically the rocks. Do you decimate those from zbrush, or are those modeled in maya so you can manage the vert count and how they'll blend with the shaders?
I'll try to answear the blending question a bit more. In most levels the standard was 2-3 blends per material. What that means is a blend between distinct materials each material has albedo,normal,roughness,ambient occlusion, and when blending a height or mask. So you can imagine how one material canuse several blend sets and can amount to many textures being used in one level chunk. We do use texture streaming and other techniques to keep us within memory budget. So yes it is not unlikely to have a single material with 2-3 blend sets. For something as big as the city chase sequence for example we had to be very careful that the textures were being shared throughout the progression of the chase. As an area started to change art looks from city to rural we would start to dump areas with city based textures and instances to open up memory for other sections. In general our debug systems helped a lot to figure out issues but if we had to hone in the more technical artists like Waylon Brink would help out to diagnose areas for memory and performance. Sometimes environments did not need to do anything and it was up to cpu which could be a code issue or a design issue that needed solving to get performance back. So at the end areas had very targeted tweaks to solve performance and or memory. From scripting areas to dump textures that were not needed to artist having to rip out stuff if needed <- thankfully as tools got better this was less the case. By the end of this project we were all very good at general optimization tips and tricks so we ended up building smarter and better.
Are these overlays used as a base to generate distinct materials, or are they actually used as seen on that page but to modulate a higher frequency rock material?
Are these overlays used as a base to generate distinct materials, or are they actually used as seen on that page but to modulate a higher frequency rock material?
Looks like he answered that same question in the comment section on artstation.
"I used these as normal and ao detail blend layers, on top of other blended rock layers. This allowed me to blend in varied low frequency forms at runtime"
Are these overlays used as a base to generate distinct materials, or are they actually used as seen on that page but to modulate a higher frequency rock material?
Looks like he answered that same question in the comment section on artstation.
"I used these as normal and ao detail blend layers, on top of other blended rock layers. This allowed me to blend in varied low frequency forms at runtime"
We have an option to tile textures based on object scale so separating large form from high frequency detail is very handy. That way we just tile the noisy stuff more. It's sort of reverse of a detail map if you will.
Really incredible work from the whole Naughty Dog team! Learning so much going through these art dumps but I have a quick question....
I noticed a lot of the environmental assets have some really nice edge damaging on them. I know the majority of environments were put together using a load of tiling materials and vertex blending, but how did you guys manage to get the more crisp and precise blends like on these edges?
I'm guessing - 1. A separate uv channel with a unique unwrap and a painted mask to blend materials around the corners. (The second example (pillar with sconce) maybe uses this, but the second to last example (the tall white pillar) is a very large asset, and the edge damaging seems to be unique all the way up the mesh with no tiling. I would imagine even a mask texture wouldn't hold up and the blend transition would become either very pixelated or blurry.)
2. Vertex painting with tight edge loops around the corners to get a more precise blend area.
I would guess it's just a decal strip that wraps around corners and the entire environment uses a couple generic edge damage texture strips they can put wherever its needed. pretty common stuff, I remmeber it being well done in MGS4 as well years ago. A good example of the final 10-20% of detailing that can really make a difference most people forget or just cant be assed to do.
Yup there's a few areas where I would swear they were using decal strips, but then there's others where no matter what angle you look at the asset from it never break down (no slight geometry offsets or weirdness at mesh intersections, no texturing seams or skewing around corners, etc) so it got me wondering. Decal strips really are under appreciated though
No these are not decal strips at all. It is simply just a height map blend between 2 textures (whatever the pillar is and whatever the damage is) using vert colors. The vert colors just blend in the damage, simple as that. Nothing too complex about it
Nah man, that was awesome. So would you say having multiple materials in those cases instead of a single one was to get around texture lookup limits, shader complexity, easier workflow or something else completely?
Thanks for the insight on multiple color and UV sets too.
Performance is always the reason. Reducing shader complexity is huge, HUGE. Its honestly the biggest factor in what will keep your scene in frame rate. We can make some of the craziest, most awesomely single complex shaders but they will destroy performance so its cheaper to cut them up. It does make things a bit more difficult to manage having lots of shaders on an object like say the ground and know exactly where and what colors to blend together to get rid of the seams, but the payoff is worth it.
And yes the lighting in Epilogue is baked, Boon Cooter did a fantastic job lighting that scene. All our levels for the most part used baked lighting with lightmaps/vertex lighting. There are run time lights in every scene but lighting information for the most part is baked.
We also have probe lighting where lighting information is gathered from sphere probes placed in the levels by the lighters to determine the runtime lighting look of particular assets. Like Drake, the Jeep, any physics object, all the grass and small bushes. All these things are probe lit since they can move/be interacted with and need to change lighting depending on the current situation and baked lighting wouldn't work.
And its never a bother, I love talking about this stuff! Just can't talk about it during production otherwise you can get yourself into trouble haha
Damn, so do most assets have about 2-3 materials blended together in the Madagascar level? I saw a talk with Jacob Norris and I think he said for the Scotland environments there were about 150-200 textures in that scene, how do you guys manage keeping performance in scope for something huge like madagascar? I also saw the wires from your coral reef section, specifically the rocks. Do you decimate those from zbrush, or are those modeled in maya so you can manage the vert count and how they'll blend with the shaders?
For managing shaders and how many textures are being used for a massive level like Madagascar that was honestly almost all done by my texture artist Genesis Prado. He wrangled and made sure we were always in texture budget and that shader cost was down. Things like texture limits and shader costs fall onto the texture artists plate where things like mesh count and vert limits would fall on my plate. A nice way to share the load of optimization.
For the coral reef rocks, since the reef section was the first section ever made for Uncharted those were all decimated rocks with hand tweks where I needed them. We were trying out everything in Zbrush at the start, in fact one or two of those rocks were retopolgized in like topo gun as I was giving that a test as well. For Madagascar though its a combo of zbrush/decimated rocks for the game meshes and hand modeled rocks. Really just depended on what was needed at the time.
No these are not decal strips at all. It is simply just a height map blend between 2 textures (whatever the pillar is and whatever the damage is) using vert colors. The vert colors just blend in the damage, simple as that. Nothing too complex about it
Cool thanks for clarifying! Appreciate you guys coming in here and sharing that knowledge.
For managing shaders and how many textures are being used for a massive level like Madagascar that was honestly almost all done by my texture artist Genesis Prado. He wrangled and made sure we were always in texture budget and that shader cost was down. Things like texture limits and shader costs fall onto the texture artists plate where things like mesh count and vert limits would fall on my plate. A nice way to share the load of optimization.
For the coral reef rocks, since the reef section was the first section ever made for Uncharted those were all decimated rocks with hand tweks where I needed them. We were trying out everything in Zbrush at the start, in fact one or two of those rocks were retopolgized in like topo gun as I was giving that a test as well. For Madagascar though its a combo of zbrush/decimated rocks for the game meshes and hand modeled rocks. Really just depended on what was needed at the time.
Oh cool, I think a while back you said you guys didn't get copies of Zbrush, so you guys dropped it after the start and just stuck to maya? What were some of the cons of zbrush for environment modelers?
This is probably falls back to a tech artist, but how'd you guys achieve this foamy effect? Went back to check this out. I dig the way it stays on top of the water surface while the water ripples move under it. On top of that it looks like the foam expands and gets smaller too, it looks so good.
Shinigami, yes we do. Specular is still present as an input but is used much more infrequently. xChris, water is handled by our FX team, but high level it is a multilayered shader using flow extensively. You can also do either a greyscale value-based animation for expanding/contracting or a flipbook. Not sure if we did.
Super excited to finally be able to share the multi view timelapse video I created of me building Madagascar from Uncharted 4!
From designer blockmesh of James Cooper to the final look and art that Genesis Prado and I developed, here is a cool sneak peak into what building a level looks like. The majority of all modeling and all of the environment world building was done by myself with Textures, Shaders and Blending by Genesis Prado.
Huge thanks to everyone at ND as there were lots of people who helps in various ways to get one of our biggest levels ever up and running!
Every time I see Uncharted 4 environments again, it makes me sad that there won't be another episode. Fantastic job on this level as in every other in the game. /bow
thats awesome, great window into the world of a game artist.
Also just wanted to say I recently finished Uncharted 4 and I have honestly never been so happy with an ending in a video game, you guys really went the extra mile and I loved it! :chuffed:
Beautiful, beautiful area in a beautiful game. I liked that section because it was sort of like Uncharted became a mini open-world game for a bit while still (very cleverly) keeping you on a linear path. I love seeing how stuff like that gets built up and the iterations you went through. It was really interesting seeing what details stayed in and which got changed or taken away through the iterations. Curious: from blockout to finish, about how long was the process of building that level? Which parts moved the fastest? Slowest? Thanks for sharing this!
Every time I see Uncharted 4 environments again, it makes me sad that there won't be another episode. Fantastic job on this level as in every other in the game. /bow
Yeah, but I gotta say... the epilogue was possibly the single most satisfying conclusion to a series I've ever had the privilege to enjoy.
And who knows, Cassie might get her own story. We can hope, right?
Every time I see Uncharted 4 environments again, it makes me sad that there won't be another episode. Fantastic job on this level as in every other in the game. /bow
Yeah, but I gotta say... the epilogue was possibly the single most satisfying conclusion to a series I've ever had the privilege to enjoy.
And who knows, Cassie might get her own story. We can hope, right?
That is absolutely true. The end of that game is the very definition of closure, and I enjoyed it immensely. As you said, one can hope
That video was awesome, thanks so much for sharing! I have to say, I only got to play this game vicariously through youtube but the environments were some of the best I've seen in a long time. You guys have a lot of talent on that team!
So I have been wondering. This interior is it completely dynamic lighting? If I am not wrong, I think ao was wisely used to simulate the soft shadows. Or is the lighting baked?
Boon Cotter talks all about it in this video in depth. Lotsa baked stuff in uncharted/last of us with a combo of realtime sun lights etc. goldmine of info in this video specifically for that scene above too. https://www.youtube.com/watch?v=avKlUcx3TlE
Replies
Hopefully it'll be up online somewhere for the people that missed it or couldn't get in...
He he, they probably want to follow the initial concept art with pixel perfect precision.
Even the lighting is on point, making it actually look like the original concept.
https://www.youtube.com/watch?v=wDIZa4O3jP4
Not the cards the foliage clumps/instances. But yes mostly placed by hand. We have some tools that help propagate by using vertex information and you can set layers and percentage of different clump model groups. This is useful for larger areas. But since we wanted direct control in most cases it was not used as much. We could for example set a stone, tree, and grass as clump groups and set them on vertex blend to propagate. Usually using the vertex/material that corresponds with the group of prototypes to propagate. The tool was made and inspired by other tools we saw from Maya in which Andrew made a tool that works with our workflows.
On another note, in the game I noticed on a lot of the climbable rocks and cliff type pieces that the sides and the top had distinct textures, but they blended pretty well together like this.
Is that some sort of angle based blending, or vertex based or something completely different?
Material 1 is texture A and B where A and B heightmap blend together and Material 2 is texture B and C where B and C heightmap blend together.
Since both materials share texture B the two different materials blend together flawlessly. Nothing complex about it, pretty simple to be quite honest. Madagascar was WAY to big to use any thing fancy like decals or 3D projection. Also Genesis Prado, my texture/shader artist for Madagascar is a wizard when it comes to making amazing looking shaders that are also dirt cheap. He is the whole reason Madagascar looks as great as it dose with how big it is and still running at 30FPS
For Madagascar I placed every grass clump, rock, tree and cliff by hand, as did David Baldwin who worked on a few of the areas of Madagascar along with me. This gave me 100% control over exactly how the level looked but came with the cost of taking a long time. However, doing it so much over so much area it eventually became second nature and would go rather quickly.
The main tool used to place all these assets was a simple dropper tool we made based off some similar ones you can find online. I could pick a few assets and set them as the assets I wanted to place, pick a target mesh (the ground) and with a single click or click and drag the asset would nicely follow the translation of the mesh and place the asset. As well as add some random rotation and scale if you wanted. Simple tool but it got the job done.
Not as great as being able to actually paint assets down with a simple stroke and then erase them with another stroke but it certainly made propagation far easier than the old way we did it of Click asset, Duplicate Asset, Move to desired location, Rotate and Scale as wanted, repeat for every asset haha.
Sort of like this, although i figure a bunch of other stuff is being blended along the cliff face since I didn't really notice it repeating.
I mean, the only place I remember seeing seams on these sorts of pieces were places where the rock would have a sharp crack sort of piece jutting inwards and I assume the heightmap didn't line up because of a UV split.
Sorry if I'm being annoying
The 2 different materials are assigned just per face and this is a simplified example of how some of the Madagascar assets were done.
Material 1 consists of 2 main textures.
Texture set A - Grass (controlled by blue vert paint to bring this to the top)
Texture set B - Loose Earth (controlled by green vert paint to bring this to the top)
Material 2 consists of 2 main textures.
Texture set C - Rock (controlled by blue vert paint to bring this to the top)
Texture set B - Loose Earth (controlled by green vert paint to bring this to the top)
In material 1 A and B blend together using a heightmap and is controlled by using vertex colors. Its the same for material 2.
Paint in some blue and the grass starts to show up over the loose earth. Paint back some green to get more loose earth in there.
Now you will see in material 1 and 2 that the second texture set in both is B - Loose Earth. Since these textures are the same they can seam up together perfectly while still blending together with Grass for material 1 and rock for material 2.
So if you had your asset and flooded it with the vert color green all you would see would be Loose Earth. Blend some blue in there and on the top of the asset grass would show up, and on the side, rock would show up. The seams come from when slight bits of vert colors bleed into where the 2 shaders meet and a bit of grass hits the edge of where its meeting rock.
Some extra notes.
1. We used all 3 colors to control our shaders. It wasn't just black and white. RGB was used where each color controlled something.
2. Our shaders in Madagascar had more than 2 texture sets in them but for demo purposes this is easier to understand how just 2 work. But adding a third set would give you a lot more breakup.
3. We used multiple UV sets to control different scaling of things like how big the rock density was compared to the grass density.
4. We also used multiple color sets. A color set is your vertex color information. Set 1 could be where you paint your grass blending into loose earth. Set 2 would then be a new vertex coloring that would only control an extra layer of sand. You would retain your grass and loose earth blend you already painting but then you could paint in sand ontop of that and not be effected by the heightmap bellow.
This also works for blending say smooth rock into broken up rock with a second color set to control the vertical colorizing of the rock that you want to add for more character.
Hope this wasn't too confusing, I'm sure it would be easier with pictures but I dont have any right now to show. Maybe tuesday when I'm back at work.
Thanks for the insight on multiple colour and UV sets too.
http://gdcvault.com/play/1012359/Uncharted-2-Art
And no no you are not being annoying these are the moments we can almost freely talk about techniques used right after ship so keep on with the questions and I am sure either NaughtyDoggers will comment or add more info
And yes the lighting in Epilogue is baked, Boon Cooter did a fantastic job lighting that scene. All our levels for the most part used baked lighting with lightmaps/vertex lighting. There are run time lights in every scene but lighting information for the most part is baked.
We also have probe lighting where lighting information is gathered from sphere probes placed in the levels by the lighters to determine the runtime lighting look of particular assets. Like Drake, the Jeep, any physics object, all the grass and small bushes. All these things are probe lit since they can move/be interacted with and need to change lighting depending on the current situation and baked lighting wouldn't work.
And its never a bother, I love talking about this stuff! Just can't talk about it during production otherwise you can get yourself into trouble haha
https://www.artstation.com/artwork/0owG4
Are these overlays used as a base to generate distinct materials, or are they actually used as seen on that page but to modulate a higher frequency rock material?
"I used these as normal and ao detail blend layers, on top of other blended rock layers. This allowed me to blend in varied low frequency forms at runtime"
I noticed a lot of the environmental assets have some really nice edge damaging on them. I know the majority of environments were put together using a load of tiling materials and vertex blending, but how did you guys manage to get the more crisp and precise blends like on these edges?
I'm guessing -
1. A separate uv channel with a unique unwrap and a painted mask to blend materials around the corners. (The second example (pillar with sconce) maybe uses this, but the second to last example (the tall white pillar) is a very large asset, and the edge damaging seems to be unique all the way up the mesh with no tiling. I would imagine even a mask texture wouldn't hold up and the blend transition would become either very pixelated or blurry.)
2. Vertex painting with tight edge loops around the corners to get a more precise blend area.
3. Mesh decals?
For the coral reef rocks, since the reef section was the first section ever made for Uncharted those were all decimated rocks with hand tweks where I needed them. We were trying out everything in Zbrush at the start, in fact one or two of those rocks were retopolgized in like topo gun as I was giving that a test as well. For Madagascar though its a combo of zbrush/decimated rocks for the game meshes and hand modeled rocks. Really just depended on what was needed at the time.
This is probably falls back to a tech artist, but how'd you guys achieve this foamy effect? Went back to check this out. I dig the way it stays on top of the water surface while the water ripples move under it. On top of that it looks like the foam expands and gets smaller too, it looks so good.
xChris, water is handled by our FX team, but high level it is a multilayered shader using flow extensively. You can also do either a greyscale value-based animation for expanding/contracting or a flipbook. Not sure if we did.
Super excited to finally be able to share the multi view timelapse video I created of me building Madagascar from Uncharted 4!
From designer blockmesh of James Cooper to the final look and art that Genesis Prado and I developed, here is a cool sneak peak into what building a level looks like. The majority of all modeling and all of the environment world building was done by myself with Textures, Shaders and Blending by Genesis Prado.
Huge thanks to everyone at ND as there were lots of people who helps in various ways to get one of our biggest levels ever up and running!
https://www.youtube.com/watch?v=cwRcgbQbCkc
Also just wanted to say I recently finished Uncharted 4 and I have honestly never been so happy with an ending in a video game, you guys really went the extra mile and I loved it! :chuffed:
Yeah, but I gotta say... the epilogue was possibly the single most satisfying conclusion to a series I've ever had the privilege to enjoy.
And who knows, Cassie might get her own story. We can hope, right?
https://www.youtube.com/watch?v=avKlUcx3TlE