Jump to content

Physically Based Shading


Recommended Posts

How about adapting the current shading system to the latest standards, as seen in Unreal Engine 4 and that kind of engines?

Physically Based Rendering

pbr_theory_watermud.png
header01.jpg

PBR opens the way to far more possibilities for reflection and lighting. As you can see above the way material reflects is dependent on his surroundings. Also it is possible to materials really look different, especially metals. (Thanks to o.a. Freshnel)

More info and images:

https://www.marmoset.co/toolbag/learn/pbr-theory

http://www.marmoset.co/toolbag/learn/pbr-practice

energycompare02.jpg

This energy conservation is explained briefly here:

http://www.rorydriscoll.com/2009/01/25/energy-conservation-in-games/

It is about the fact that the total of reflected light can not be more than the incoming light.

More in-depth readings:

http://interplayoflight.wordpress.com/2013/12/30/readings-on-physically-based-rendering/

http://digibug.ugr.es/bitstream/10481/19751/1/rmontes_LSI-2012-001TR.pdf

Link to comment
Share on other sites

In my opinion PBR is not very suitable for a RTS (in 0AD's case at least because the whole shading system would need to be rewritten too) where you play with a zoomed out camera and mostly small objects. It makes sense for FPS or 3rd person shooters where the point of view is much closer to objects and there's room for more detail in assets. You'll also need to create additional maps for each single texture (albedo map, cavity map, reflectivity map... etc) in order to the shader to work properly and show it as nice as the screenshots in the links you added. All this without mentioning the computer resources it would need to run.

0AD has room to improve with additions like atmospheric scattering, overall lighting improvements, proper horizon/sky, options to increase/decrease shadow resolution, and *hopefully* deferred lighting which would make possible things like moving cloud shadows, infinite lighting sources (torches, flaming arrows, fire emmiting light), wheather changes, day/night cycle... well, dreaming is free right? :P

  • Like 1
Link to comment
Share on other sites

I think you overlook the fact that it isn't necessary to have all shader/material types mentioned above.

See for example the energy conservation: This is already possible with the resources we have and wouldn't cost much resources. (Guess so)

It is just which PBR model you take (Since there are a lot of them)

http://www.rorydriscoll.com/2009/01/25/energy-conservation-in-games/

See this pdf for an in-depth overview (not sure if you want to read it though, but it is to show that PBR is a large thing):

http://digibug.ugr.es/bitstream/10481/19751/1/rmontes_LSI-2012-001TR.pdf

Edited by niektb
Link to comment
Share on other sites

I have some questions from the practicable point of view:

- Who will implement this?

- If implemented who would be able to use it on their current hardware?

- How much work would be to adjust the artwork (e.g. textures)?

- How much improvement would be seen from a default RTS perspective?

I'm not sure but I think:

It would be a huge effort to implement involving long term development of a/some really skilled person/s that is/are not around yet.

Only a few percentage of PPL would be able to use it on their hardware and the result would be cool but mainly from a much shorter distance then PPL actually use to play.

I think for an RTS game the graphics are quite nice allrdy. There's nothing bad in better it if (and only if IMO) this doesn't mean less players will be able to play the game and things don't get messed up (e.g. by the need of supporting multiple rendering methods).

Edited by FeXoR
Link to comment
Share on other sites

Hey just thought I would chime in on this.

You Could use unreal Engine 4.

For 20 dollars USD a user per month you get -

1. Access to the full engine

2. Full source code access via GITHUB

3. Access to a wide variety of sample games written in C++ and Blueprint (A very powerful visual scripting system)

4. Access to constant updates ranging from quick fixes to Full blown new features.

I am performing some tests in Unreal 4 right now on a AMD 6850 HD (4 or 5 Year old GPU) and 8 GB of Ram and getting at least 30 to 40 frames a second as of version 4.0.2

Best of all you just need to do some minor adjustments to 2D assets and possibly rename your rigs to match Unreal standard if you want to get them working properly in unreal. :)

Here is a video that explains how Physically based Shading works and stuff.

I would be more than willing to help out if this came to fruition :)

  • Like 1
Link to comment
Share on other sites

Hey just thought I would chime in on this.

You Could use unreal Engine 4.

For 20 dollars USD a user per month you get -

1. Access to the full engine

2. Full source code access via GITHUB

3. Access to a wide variety of sample games written in C++ and Blueprint (A very powerful visual scripting system)

4. Access to constant updates ranging from quick fixes to Full blown new features.

I am performing some tests in Unreal 4 right now on a AMD 6850 HD (4 or 5 Year old GPU) and 8 GB of Ram and getting at least 30 to 40 frames a second as of version 4.0.2

Best of all you just need to do some minor adjustments to 2D assets and possibly rename your rigs to match Unreal standard if you want to get them working properly in unreal. :)

Here is a video that explains how Physically based Shading works and stuff.

I would be more than willing to help out if this came to fruition :)

No. We have our own Pyrogenesys. Thank you.
  • Like 2
Link to comment
Share on other sites

No. We have our own Pyrogenesys. Thank you.

I am sorry but this is coming off as a bit hostile at least to me.

I am just excited that Unreal Engine 4 and source code is in public hands now :)

You got to admit though it would be awesome to see 0 AD on Unreal.

Link to comment
Share on other sites

I am sorry but this is coming off as a bit hostile at least to me.

I am just excited that Unreal Engine 4 and source code is in public hands now :)

You got to admit though it would be awesome to see 0 AD on Unreal.

Im not :P

You want join uses real engine to 0a.d. We have a council of modders we modify the game there :D.

Edited by Lion.Kanzen
Link to comment
Share on other sites

Hey just thought I would chime in on this.

Whoa, whoa, whoa, lets not even go there. There is no way we are going to dump our open-source pyrogenesis engine with 10+ years of development behind it for an expensive proprietary system.
  • Like 2
Link to comment
Share on other sites

Whoa, whoa, whoa, lets not even go there. There is no way we are going to dump our open-source pyrogenesis engine with 10+ years of development behind it for an expensive proprietary system.

Thank you for reply Josh .

@Headclot

And that was short explanation. I'm waiting for Feneur's large reply, that be very large and educational.

It's not about be rude it's about respect the years of development and many contributors and Dev team. Thank you.

Edited by Lion.Kanzen
Link to comment
Share on other sites

Hey just thought I would chime in on this.

You Could use unreal Engine 4.

For 20 dollars USD a user per month you get -

1. Access to the full engine

2. Full source code access via GITHUB

3. Access to a wide variety of sample games written in C++ and Blueprint (A very powerful visual scripting system)

4. Access to constant updates ranging from quick fixes to Full blown new features.

I am performing some tests in Unreal 4 right now on a AMD 6850 HD (4 or 5 Year old GPU) and 8 GB of Ram and getting at least 30 to 40 frames a second as of version 4.0.2

Best of all you just need to do some minor adjustments to 2D assets and possibly rename your rigs to match Unreal standard if you want to get them working properly in unreal. :)

Here is a video that explains how Physically based Shading works and stuff.

I would be more than willing to help out if this came to fruition :)

This is very educational. Thanks for posting it. (y)

  • Like 1
Link to comment
Share on other sites

Thank you for reply Josh .

@Headclot

And that was short explanation. I'm waiting for Feneur's large reply, that be very large and educational.

It's not about be rude it's about respect the years of development and many contributors and Dev team. Thank you.

Ah I see now :)

I did not mean any disrespect in anyway. If anything this would be a separate project from 0AD if push came to shove.

Unreal currently comes with an Strategy sample game. It is more of a tower defence game (The Sample Strategy Game) than anything but It provides a good core framework for making a RTS game like 0 AD.

The reason I put this forward is the following -

1. No need to worry about working on the Engine (Epic Games is literally working with the community to evolve their engine)

2. A Unified Pipeline - Use the .FBX file (Available in Blender, 3DS Max, Maya, Modo, Cinema 4D, etc.) to export animations and Static objects.

3. Source code access - Something you do not like? You would be able to change it providing you have the C++ knowledge.

4. More developers to develop 0A.D. - Unreal 4 is attracting a lot of developers both programmers, artists, and people in between.

5. You would be able to develop for Windows, Mac OSX and Linux as well as Android, IOS, and HTML5 enabled Browsers.

7. Easy to use asset workflow.

8. 20 Bucks for Source code access! That is literally a steal! It is not open source but it is possibly as open as unreal is going to get to open source.

I am of the strong opinion that nothing should be put aside without it being looked at first. Which is happening here. What if Unreal does the job better than the current engine?

But this is just me. :)

I am willing to help out with 0AD regardless of the outcome. :)

  • Like 2
Link to comment
Share on other sites

Even if it would do a better job there are a few reasons why it is just no option to switch:

1. It would mean that you can throw 10+ years of development in the garbage collector and simply everything needs to be rewritten. Basically starting a new game.

2. Unreal Engine 4 is a very computer-power consuming program, especially since a lot of the fan base are running 0 A.D. on older hardware. So you would abandon a large part of the community (even me, I'm not too sure my both pc's are capable of running UE4 fluently).

3. It doesn't match with open source to go with an proprietary engine. And it would get harder for newbies to get involved in 0 A.D.'s development, since they need to get their hands on UE4 somehow (I don't think Epic Games will give free to use packages to redistribute among all of us).

Even though it would be cool to have such advanced graphics/physics, it is just undo-able. It is better to improve the existing engine to look better, without consuming more resources.

@Energy conservation (guess it is better explained in the movie posted a little above):

figure01.jpg

It simply makes sure that the specular reflection and diffuse reflection doesn't exceed the incoming amount of light.

I just found a nice paper about making Phong's light model more physically plausible by adding energy conservation and making it reciprocal.

http://users.tricity.wsu.edu/~bobl/personal/mypubs/1993_plausible.pdf

Edit: it is explained in the movie @15:30.

Edited by niektb
  • Like 2
Link to comment
Share on other sites

I guess I'm going to disappoint Lion: I'll just write a short post :P Basically niektb said the main thing: as far as I understand it we'd have to redo basically everything to work with UE - and that's not really an option at this stage. After 1.0 is released we'll be able to reconsider everything again, but even then it's probably more likely that we'd choose another open source graphical engine.

Link to comment
Share on other sites

I guess I'm going to disappoint Lion: I'll just write a short post :P Basically niektb said the main thing: as far as I understand it we'd have to redo basically everything to work with UE - and that's not really an option at this stage. After 1.0 is released we'll be able to reconsider everything again, but even then it's probably more likely that we'd choose another open source graphical engine.

Yeah I think that to, after 1.0 we can create o migrate to new engine. :) but not that one. I'm enemy of commercial engines. I love open source :) but I'm friend of lot of visual, optimization and effects and whole new gameplays.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...