For lighting? It's rare that a vert bake looks good unless the mesh has a ton of extra polygons for no reason other than lighting... Flat surfaces need to be subdivided and just blech.
For lighting? It's rare that a vert bake looks good unless the mesh has a ton of extra polygons for no reason other than lighting... Flat surfaces need to be subdivided and just blech.
That's strange, Uncharted 3 looks beautiful.
(They used Cascaded Shadows + GI in the vertices at Naughty Dog for Uncharted 3)
I assumed vert baking on this generation of consoles was used mostly because of memory limitations, interested to hear a next gen title like Second Son uses them.
I think Uncharted also uses deferred lighting, Froyok, not baked-vert lighting for the --primary-- lighting..although it seems like youre talking about just holding the GI/bounce information in the verts, and not the actual lighting ? If thats just an additional layer of detail on the standard lighting then perhaps lighting fidelity isn't as crucial?
Thanks for sharing, hoping to see Infiltrator paper too but it looks some things are already obsolete.
So no more specular textures now? Nice too see area lights are finally in.
Thanks for sharing, waiting for Epic to make another walkthrough with Alan Willard! Though I still don't understand: are those area lights dynamic? Nothing was said there about shadowing, too...
Thanks for posting, Yury!
Holy shit! This is amazing! I really want to get my hands on that engine now!
Want to know when the first UDK for UE4 comes out...
No problem. My hands are so itchy right now I wan't to try UE4 so badly
I love the new UI design for the engine. Looks so much better than 3 (and UE3's UI is pretty good too I must say). I kinda wish they changed material editor's UI to that same style as their blueprints though
Ah, bollocks, they got rid of custom setups in the material, I bloody knew it
Zac, I'm not sure honestly, people can do this already in UDK if they used custom setups, have multiple Specular's by using a Mask map, etc, or by one material alone, so this 'features' in UE4 being a big deal also has me confused, especially from a performance benefit side of things. I don't see it so far
Maybe it's to avoid the material head limit? In DX9, you were limited to 512 instructions iirc, which made sense since it's really heavy, so this new system is also going to be relegated to being heavy. Maybe DX11 benefits?
Maybe if they used a products proven asset, like Marcus from GoW in a small diorama, we could get a better understanding of it's benefits, but currently, it just looks like they took out the basics attributes from UDK's material editor and inserted on the mesh via another interface.
It also could be due to some programming jargon for the roughness of the realtime cubemap requiring separation? But that could be also done with a simple map.
I'm curious if there's a performance benefit from using the layered material.
It depends. Compared to multi-subobject yes, as it is pushed in single draw call.
Maybe if they used a products proven asset, like Marcus from GoW in a small diorama, we could get a better understanding of it's benefits, but currently, it just looks like they took out the basics attributes from UDK's material editor and inserted on the mesh via another interface.
These are benefits. It's of course diffrent engine, but similiar principle.
In the essence, you can prepare library of fairly simple materials, and the just use them on diffrent meshes. In next-gen it will become common thing to DO NOT paint textures, but paint packed masks (RGBA) and then use tileable, simple materials to simulate surface property as realistic as possible (or unrealistic depends on your goals).
It also could be due to some programming jargon for the roughness of the realtime cubemap requiring separation? But that could be also done with a simple map.
What do you mean ? Roughness is just scalar value measureing how rough syrface is.
I didn't know how material layering worked, that's interesting. I heard about it, but I never looked into it. Most of my time so far has been spent getting used to the new material system and everything else new. I'll be sure to try this out soon! I do have a question though, couldn't this be achieved without material layers? If you used masks (which you do with layering anyways), couldn't you determine the color/roughness/metallic/etc just the same in a single material?
I didn't know how material layering worked, that's interesting. I heard about it, but I never looked into it. Most of my time so far has been spent getting used to the new material system and everything else new. I'll be sure to try this out soon! I do have a question though, couldn't this be achieved without material layers? If you used masks (which you do with layering anyways), couldn't you determine the color/roughness/metallic/etc just the same in a single material?
You can. You can do the same thing in UDK. Using material layers just make setup easier, as you don't have bayzlion nodes inside you materials. Everything is nicely encaspluated inside material functions.
You can. You can do the same thing in UDK. Using material layers just make setup easier, as you don't have bayzlion nodes inside you materials. Everything is nicely encaspluated inside material functions.
Are the materials used in the layered material considered a look-up/drawcall? Like, in the current method, using a bunch of masks would be multiple textures(or a RGBA map) and more texture samples used.
I'm curious if there's a performance benefit from using the layered material.
Wouldn't be surprised if it enabled to render a mesh in one draw call whereas in UDK you would use multiple materials with different ID assigned to different faces.
I'm curious if there's a performance benefit from using the layered material.
Edit:
From UE4 course notes:
Reuses work across a number of assets.
Reduces complexity for a single asset.
Unifies and centralizes the materials defining the look of the game, allowing easier art and tech direction.
These are benefits. It's of course diffrent engine, but similiar principle.
In the essence, you can prepare library of fairly simple materials, and the just use them on diffrent meshes. In next-gen it will become common thing to DO NOT paint textures, but paint packed masks (RGBA) and then use tileable, simple materials to simulate surface property as realistic as possible (or unrealistic depends on your goals).
Sounds interesting, it'll definitely feel a lot different working like that, but I can definitely seen the benifits.
Another big deal about layered materials is that they(if Unreal can reference a library) insanely easy to update. Take for an example a environment where flags, banners, logos, text etc. are red, but the concept changes it to green. If done properly with layered materials, you only have to edit the red base material to green and see the whole environment get updated in one go
Another big deal about layered materials is that they(if Unreal can reference a library) insanely easy to update. Take for an example a environment where flags, banners, logos, text etc. are red, but the concept changes it to green. If done properly with layered materials, you only have to edit the red base material to green and see the whole environment get updated in one go
Seriusly? That's the whole point of using a centrally referenced material library
You can also then have that core library only touched by a small group of people who specialise in materials and rendering -> consistency+++
Another big deal about layered materials is that they(if Unreal can reference a library) insanely easy to update. Take for an example a environment where flags, banners, logos, text etc. are red, but the concept changes it to green. If done properly with layered materials, you only have to edit the red base material to green and see the whole environment get updated in one go
I would say changing color is not that complicated, things like colors could be specified in mat functions, but texture and BRDF sharing/switching across assets is way more interesting perspective. For instance fabric could be modified from rough cotton to silky shiny material and so on..
Another big deal about layered materials is that they(if Unreal can reference a library) insanely easy to update. Take for an example a environment where flags, banners, logos, text etc. are red, but the concept changes it to green. If done properly with layered materials, you only have to edit the red base material to green and see the whole environment get updated in one go
I see where you're coming from, but with a properly set up material library / pipeline, you should already be able to do this quite comfortably in Unreal 3. The trouble is, people don't spend any time and just hash out a new material for every other mesh, when they really shouldn't (this is taken from my own experience in a production studio environment, as well as hobbyist).
I see where you're coming from, but with a properly set up material library / pipeline, you should already be able to do this quite comfortably in Unreal 3. The trouble is, people don't spend any time and just hash out a new material for every other mesh, when they really shouldn't (this is taken from my own experience in a production studio environment, as well as hobbyist).
True. This kind of pipeline has been used for many years and nearly every large Arch Viz or VFX company(I'm also sure game studios does this too) already uses this.
But if you don't really know this from the get go, without the exposure(like a dedicated layered material system) people might just skip it and do it like they've always done.
I think bringing a simple system to the masses is an awesome move, even though it's supposed to be a common thing in pipelines. Also I'm all for keeping all the different layers in completly seperate shaders where I can change loads of stuff locally(like IOR, lighting models etc).
I would say changing color is not that complicated, things like colors could be specified in mat functions, but texture and BRDF sharing/switching across assets is way more interesting perspective. For instance fabric could be modified from rough cotton to silky shiny material and so on..
I see where you're coming from, but with a properly set up material library / pipeline, you should already be able to do this quite comfortably in Unreal 3. The trouble is, people don't spend any time and just hash out a new material for every other mesh, when they really shouldn't (this is taken from my own experience in a production studio environment, as well as hobbyist).
Well, look at it from other perspective. Example must go from top, and in unrela every object has diffrent material .
Another thing it is not always possible, espcially with non-corrected lighting in model.
In PBR you unify all textures, and materials and be 99% sure they will behave the same regardless of lighting setup. In old times you had to tweak lighting to textures and textures to you lighting. That at least partially explain the usuall mess with 974 diffrent materials.
I noticed the names Base Color, and Roughness in the material set-up... does this mean UE4 uses a Physically based shader model?
Yes.
Along the same lines of a PBS, is reflection per object baked right into the material and handled along with the specular? *drool*
No. Reflection are realtime (SSR), and captures from probes. There won't Specular term in future anymore. (as you can find on new Siggraph presentation).
What the heck is that "Metallic" imput? Can anyone shed some light on that?
It's exactly what the name impiles. No less, no more.
In order to get a realistic BDRF result do we still need to use a Fresnel, or is that also built right into the material? Or i not built in, is there going to be a "slider" for it?
Well, honestly not sure how much I can tell about it, but fresnel is pretty much the same as it was. It lives in it's own node.
Anyone know if it will be possible to make reflections blurry or is that also baked into the definition of the material?
Rougness defines how reflection work (combined with metallic).
The general rule is very simple. In PBR you should avoid at all costs using any shading "hacks". No baked lighting, no cavity, no ao, no baked refletions directly into material/texture. The textures you use should be as simple as possible, material setup should be as simple as you can get (unless you are aiming at very specific/stylized look).
In other words, let the engine handle everything for you.
I see where you're coming from, but with a properly set up material library / pipeline, you should already be able to do this quite comfortably in Unreal 3. The trouble is, people don't spend any time and just hash out a new material for every other mesh, when they really shouldn't (this is taken from my own experience in a production studio environment, as well as hobbyist).
I tried doing that once, nobody downloaded the packages I put up for download. People are just lazy and extremely reluctant to use a material that is big in any way
No. Reflection are realtime (SSR), and captures from probes. There won't Specular term in future anymore. (as you can find on new Siggraph presentation).
Then why do they show the GGX Specular term as their new hotness? Unless I'm looking at a different PDF file, it shows that UE4 will have a Specular which is Towridge/GGX and is part of the asset.
I get it, Specular term is not correct, yadda yadda yadda, but we won't be getting rid of it in our life time, or even never, when the consumer (every generation) finds a new 'portable' device that has about the same power as that of a PS2 and sticks to it, not to mention non-hero assets, it's becomes very costly to what amounts even static cubemaps for something that no one will look at.
What do you mean? As opposed to photo-sourcing and scanning?
What I mean in other engines you composite materials from other materials. You want to make let's say sword.
In Cryengine 3.5 you have to paint texture as have done it so far.
In other engine, you just paint mask for:
1. Blade.
2. grip
3. Other elements.
You assign separate materials to each mask, with specific properties. So each material have completly unique and correct values, that you can instantly tweak inside editor.
With CryEngine 3.5 you are pretty much stuck, to guessing how texture you made, will affect look of the object. If it is wrong, you can to go back to texture and fix it. In UE4 you just tweak material properties and don't care about texture for most time.
I can state that every feature, and demo is all WIP for now. That's all I can say. If anyone from any other studios here speaking of UE4 and its features. Take it with a grain of salt for now until Epic declares UE4 ready and finished at a marketable state for mass licensing and has released titles.
Because even at our studio as it goes for others. There's still lots to be worked on for UE4. Though for what Epic will demonstrate for those videos as the one above about materials. Everyone can consider that part done or near done.
I can state that every feature, and demo is all WIP for now. That's all I can say. If anyone from any other studios here speaking of UE4 and its features. Take it with a grain of salt for now until Epic declares UE4 ready and finished at a marketable state for mass licensing and has released titles.
I second this. I've been using it just three months, and a lot of things have changed, even major features, and more is planned to change.
It's a similar kind of plus point to the "more popular now" material pipelines of using materials referenced from a core global library, such as in the recent UE4 video and the 1886 talk from SIGGRAPH -> another method of maintaining consistency amongst larger teams of artists.
It also means that you need to be careful with material usage though, as they *cant* be fudged for specific instances, so when you get that request of "uhhh this material in X instance would look better with more spec response" from a lighting artist, you can't exactly just go change it for that one instance.
Actually in UE4 that is possible, the material layers system uses the standard material editor so you can manipulate material layers after referencing them, they also have inputs the artist can define. For example you could add a tint input or a tiling input to the material layer, then when you reference the layer you can change those values. You can also manipulate these layers and blends once they're in the material, so blend two layers together then tint them etc.... you should be able to see those nodes and stuff in the youtube video.
Right, but you wouldn't really want to do that would you? Because then you're breaking the consistency in your pipeline, which is probably the biggest advantage in a centrally referenced PBS material system.
Especially when you start to think about dynamic light environments, adding one exception for one lighting condition could (often will?) make it look incorrect/worse/inconsistent in another lighting condition.
Like in offline CG (film VFX) that's totally fine because you know what your shots and angles are -> in a game its totally dynamic so you have to (in most cases) account for many more potential use-cases.
Replies
use vert bakes.
They're even more of an resource sink and the quality is shitty.
(They used Cascaded Shadows + GI in the vertices at Naughty Dog for Uncharted 3)
http://s2013.siggraph.org/attendees/real-time-live/events/unreal-engine-4-infiltrator-demonstration
http://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_slides.pdf
Interesting read, thanks for sharing!
So no more specular textures now? Nice too see area lights are finally in.
[ame="http://www.youtube.com/watch?v=PjSFbPv3SLc"]Inside Unreal - Layered Materials[/ame]
Holy shit! This is amazing! I really want to get my hands on that engine now!
Want to know when the first UDK for UE4 comes out...
I want this yesterday :poly121:
I love the new UI design for the engine. Looks so much better than 3 (and UE3's UI is pretty good too I must say). I kinda wish they changed material editor's UI to that same style as their blueprints though
Zac, I'm not sure honestly, people can do this already in UDK if they used custom setups, have multiple Specular's by using a Mask map, etc, or by one material alone, so this 'features' in UE4 being a big deal also has me confused, especially from a performance benefit side of things. I don't see it so far
Maybe it's to avoid the material head limit? In DX9, you were limited to 512 instructions iirc, which made sense since it's really heavy, so this new system is also going to be relegated to being heavy. Maybe DX11 benefits?
Maybe if they used a products proven asset, like Marcus from GoW in a small diorama, we could get a better understanding of it's benefits, but currently, it just looks like they took out the basics attributes from UDK's material editor and inserted on the mesh via another interface.
It also could be due to some programming jargon for the roughness of the realtime cubemap requiring separation? But that could be also done with a simple map.
http://blog.selfshadow.com/publications/s2013-shading-course/rad/s2013_pbs_rad_slides.pdf
These are benefits. It's of course diffrent engine, but similiar principle.
In the essence, you can prepare library of fairly simple materials, and the just use them on diffrent meshes. In next-gen it will become common thing to DO NOT paint textures, but paint packed masks (RGBA) and then use tileable, simple materials to simulate surface property as realistic as possible (or unrealistic depends on your goals).
What do you mean ? Roughness is just scalar value measureing how rough syrface is.
Are the materials used in the layered material considered a look-up/drawcall? Like, in the current method, using a bunch of masks would be multiple textures(or a RGBA map) and more texture samples used.
Wouldn't be surprised if it enabled to render a mesh in one draw call whereas in UDK you would use multiple materials with different ID assigned to different faces.
Edit:
From UE4 course notes:
Sounds interesting, it'll definitely feel a lot different working like that, but I can definitely seen the benifits.
Didn't even think about that! Now I'm excited!
You can also then have that core library only touched by a small group of people who specialise in materials and rendering -> consistency+++
I would say changing color is not that complicated, things like colors could be specified in mat functions, but texture and BRDF sharing/switching across assets is way more interesting perspective. For instance fabric could be modified from rough cotton to silky shiny material and so on..
I see where you're coming from, but with a properly set up material library / pipeline, you should already be able to do this quite comfortably in Unreal 3. The trouble is, people don't spend any time and just hash out a new material for every other mesh, when they really shouldn't (this is taken from my own experience in a production studio environment, as well as hobbyist).
True. This kind of pipeline has been used for many years and nearly every large Arch Viz or VFX company(I'm also sure game studios does this too) already uses this.
But if you don't really know this from the get go, without the exposure(like a dedicated layered material system) people might just skip it and do it like they've always done.
I think bringing a simple system to the masses is an awesome move, even though it's supposed to be a common thing in pipelines. Also I'm all for keeping all the different layers in completly seperate shaders where I can change loads of stuff locally(like IOR, lighting models etc).
True, it was just an example
Another thing it is not always possible, espcially with non-corrected lighting in model.
In PBR you unify all textures, and materials and be 99% sure they will behave the same regardless of lighting setup. In old times you had to tweak lighting to textures and textures to you lighting. That at least partially explain the usuall mess with 974 diffrent materials.
No. Reflection are realtime (SSR), and captures from probes. There won't Specular term in future anymore. (as you can find on new Siggraph presentation).
It's exactly what the name impiles. No less, no more.
Well, honestly not sure how much I can tell about it, but fresnel is pretty much the same as it was. It lives in it's own node.
Rougness defines how reflection work (combined with metallic).
The general rule is very simple. In PBR you should avoid at all costs using any shading "hacks". No baked lighting, no cavity, no ao, no baked refletions directly into material/texture. The textures you use should be as simple as possible, material setup should be as simple as you can get (unless you are aiming at very specific/stylized look).
In other words, let the engine handle everything for you.
So yeah, pretty vexing to say the least.
Then why do they show the GGX Specular term as their new hotness? Unless I'm looking at a different PDF file, it shows that UE4 will have a Specular which is Towridge/GGX and is part of the asset.
I get it, Specular term is not correct, yadda yadda yadda, but we won't be getting rid of it in our life time, or even never, when the consumer (every generation) finds a new 'portable' device that has about the same power as that of a PS2 and sticks to it, not to mention non-hero assets, it's becomes very costly to what amounts even static cubemaps for something that no one will look at.
What do you mean? As opposed to photo-sourcing and scanning?
In Cryengine 3.5 you have to paint texture as have done it so far.
In other engine, you just paint mask for:
1. Blade.
2. grip
3. Other elements.
You assign separate materials to each mask, with specific properties. So each material have completly unique and correct values, that you can instantly tweak inside editor.
With CryEngine 3.5 you are pretty much stuck, to guessing how texture you made, will affect look of the object. If it is wrong, you can to go back to texture and fix it. In UE4 you just tweak material properties and don't care about texture for most time.
Because even at our studio as it goes for others. There's still lots to be worked on for UE4. Though for what Epic will demonstrate for those videos as the one above about materials. Everyone can consider that part done or near done.
I second this. I've been using it just three months, and a lot of things have changed, even major features, and more is planned to change.
Actually in UE4 that is possible, the material layers system uses the standard material editor so you can manipulate material layers after referencing them, they also have inputs the artist can define. For example you could add a tint input or a tiling input to the material layer, then when you reference the layer you can change those values. You can also manipulate these layers and blends once they're in the material, so blend two layers together then tint them etc.... you should be able to see those nodes and stuff in the youtube video.
Right, but you wouldn't really want to do that would you? Because then you're breaking the consistency in your pipeline, which is probably the biggest advantage in a centrally referenced PBS material system.
Especially when you start to think about dynamic light environments, adding one exception for one lighting condition could (often will?) make it look incorrect/worse/inconsistent in another lighting condition.
Like in offline CG (film VFX) that's totally fine because you know what your shots and angles are -> in a game its totally dynamic so you have to (in most cases) account for many more potential use-cases.