You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Disclamer: This is really an internal reference, so I can have one central
list to click through every now and then to check on things. I'm a bevy
outsider, so there's a good chance it's wrong. However it could be useful to
anyone else trying to do my style of stuff, so I thought I'd post it here.
It feels like bevy's on the verge of being able to make some really nice
looking graphics. I'd love to get to a point where I could replicate the
standard slew of rendering techniques used by non-raytraced last gen games
(think peak old unity render pipeline before stuff fragmented, or armory).
Here's - to my knowledge - the state of all the remaining pieces:
Some Stuff
Physically Based Rendering
Working beautifully.
Procedural Sky
Nothing internal to bevy at the moment, however a few online implementations
prove the pipeline can easily support it.
One thing missing from existing implementations any way to fetch the ambient
environmental light colour on meshes from the sky shader via a normal lookup.
This shouldn't be too complex, however it would likely require rewriting some
core shader code, meaning implementing it at the moment would result in
something highly version dependent and not modular. Possibly worth waiting.
Should either a canonical crate be created for this, or it work into the
engine, there's a few other pieces (fog, etc) that it would be nice to have
working together.
I still need to test to see if this is currently a thing or not.
HDR and Tonemapping
Won't lie, I'm pretty confused as to the state of things right now. Bevy is
definitely using a PBR model, which I think implies that it's using HDR for
internal lighting representations? I'll update this if I find out what exactly
is going on.
List of things that need to be true, some of which already might be:
All internal lighting calculations done in a linear colour-space
HDR support, with correct luminance values, etc.
A tonemapping function to convert from linear to display colour-space,
able to be modified by the user.
Some ACES tonemapper implementation.
It also feels like if bevy has full HDR support, cameras should have an exposure
setting, done in the correct way. This currently doesn't appear to be the case.
From what I can gather, it seems like something might be merged adding this
eventually. Which is good, given it seems like a complete pain (albeit
possible) to get all the various resources out of the render pipeline to pull it off.
Seems to be possible, but nothing drop-in at the moment. This is another one
where I wouldn't be surprised if it got merged at some point.
Some stuff I'd love to see here:
Everything working with HDR, at the correct point in the pipeline.
Possibly stuff working well with auto-exposure, to get that somewhat corny AAA effect.
A optional grime-texture feed-in at the bloom stage.
Note that for all post processing effects, the chain to create them currently
is pretty verbose (manually setting up a 2d camera looking at a render texture,
etc). It might be also nice to have a more automated way of doing this.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Purpose
Disclamer: This is really an internal reference, so I can have one central
list to click through every now and then to check on things. I'm a bevy
outsider, so there's a good chance it's wrong. However it could be useful to
anyone else trying to do my style of stuff, so I thought I'd post it here.
It feels like bevy's on the verge of being able to make some really nice
looking graphics. I'd love to get to a point where I could replicate the
standard slew of rendering techniques used by non-raytraced last gen games
(think peak old unity render pipeline before stuff fragmented, or armory).
Here's - to my knowledge - the state of all the remaining pieces:
Some Stuff
Physically Based Rendering
Working beautifully.
Procedural Sky
Nothing internal to bevy at the moment, however a few online implementations
prove the pipeline can easily support it.
JonahPlusPlus/bevy_atmosphere
Neo-Zhixing/bevy_sky
superdump/minkraft/tree/main/crates/bevy-physical-sky
One thing missing from existing implementations any way to fetch the ambient
environmental light colour on meshes from the sky shader via a normal lookup.
This shouldn't be too complex, however it would likely require rewriting some
core shader code, meaning implementing it at the moment would result in
something highly version dependent and not modular. Possibly worth waiting.
Should either a canonical crate be created for this, or it work into the
engine, there's a few other pieces (fog, etc) that it would be nice to have
working together.
Shadows
Working great!
Soft Shadows
This'd be nice to have. Seems pretty hard.
#3628
#3631
Self shadowing
I still need to test to see if this is currently a thing or not.
HDR and Tonemapping
Won't lie, I'm pretty confused as to the state of things right now. Bevy is
definitely using a PBR model, which I think implies that it's using HDR for
internal lighting representations? I'll update this if I find out what exactly
is going on.
List of things that need to be true, some of which already might be:
able to be modified by the user.
It also feels like if bevy has full HDR support, cameras should have an exposure
setting, done in the correct way. This currently doesn't appear to be the case.
Related:
#2264
#179
#5078
#2876
#4095
https://www.shadertoy.com/view/WdGcD1
Ambient Occlusion
From what I can gather, it seems like something might be merged adding this
eventually. Which is good, given it seems like a complete pain (albeit
possible) to get all the various resources out of the render pipeline to pull it off.
Related:
#3632
#5428
Bloom
Seems to be possible, but nothing drop-in at the moment. This is another one
where I wouldn't be surprised if it got merged at some point.
Some stuff I'd love to see here:
Note that for all post processing effects, the chain to create them currently
is pretty verbose (manually setting up a 2d camera looking at a render texture,
etc). It might be also nice to have a more automated way of doing this.
Related:
#3430
#2876
#3430
https://github.com/bevyengine/bevy/blob/main/examples/shader/post_processing.rs
Depth of Field
This seems to be in a very similar place to bloom, though probably a touch
harder to implement.
Beta Was this translation helpful? Give feedback.
All reactions