bevy icon indicating copy to clipboard operation
bevy copied to clipboard

Adding skybox to motion_blur example

Open andristarr opened this issue 1 year ago • 14 comments

Fixes #13632

andristarr avatar Jun 04 '24 15:06 andristarr

I like the choice of sky box, although AI-generation will be controversial even for test assets. CC-BY is a fine license.

alice-i-cecile avatar Jun 04 '24 15:06 alice-i-cecile

I like the choice of sky box, although AI-generation will be controversial even for test assets. CC-BY is a fine license.

I can look for some other one if its prefered. Let me know what you think.

andristarr avatar Jun 04 '24 15:06 andristarr

Everything else being equal, let's look for a different one. Criteria for me are a) human-made b) permissively licensed c) pretty d) mostly sky

alice-i-cecile avatar Jun 04 '24 15:06 alice-i-cecile

Ideally we would also have an envmap, so the lighting matches the skybox. You can use https://github.com/pcwalton/gltf-ibl-sampler-egui to generate skyboxes and specular/diffuse envmaps from hdr skyboxes you find online.

aevyrie avatar Jun 05 '24 06:06 aevyrie

I found a CC0 skybox, but the suggested tool produces a rather large asset file. Let me know if you are content with this.

andristarr avatar Jun 05 '24 17:06 andristarr

@aevyrie can you tag someone from the said experts please? It would probably be beneficial if they give their input regarding picking a skybox then.

andristarr avatar Jun 11 '24 14:06 andristarr

Hopefully I got this right: @superdump @pcwalton @JMS55 @IceSentry

aevyrie avatar Jun 11 '24 17:06 aevyrie

Could we use existing skybox and environment map textures in the repository to avoid having to add new ones? Having large binary files in the repository should have good motivation and if we already have something then maybe we don’t need to add more.

superdump avatar Jun 12 '24 06:06 superdump

The motivation for this issue is that the existing assets are kind of ugly and don't work well for this particular case. @aevyrie can say more about what's lacking.

In general, I'd really like to move towards using nicer assets for our examples: they're the first thing people see and it's hard to disentangle "ugly/broken asset" from "ugly/broken engine".

alice-i-cecile avatar Jun 12 '24 13:06 alice-i-cecile

To try to push this forward: with the currents assets (10 megs including all the files, including the suggested compression) it looks like the following:

https://github.com/bevyengine/bevy/assets/25829992/7e99e1df-393b-40d2-b839-d834c2973da7

I will move them to the env maps folder so they sit together.

Let me know what you think

andristarr avatar Jun 16 '24 12:06 andristarr

Unfortunately, 10 Mb is likely too large to be in tree, but that is not my call to make. Not sure what the limits or alternatives are.

As for the skybox itself, I would personally prefer we go with something lower detail, like other engines. I'd also expect that should be compressible down to a few Kb.

I have two issues with the skybox chosen here

  1. The fidelity isn't great, and doesn't leave a good impression with me. The highlights are blown out and hue shifted, and the clouds have a sort of dirty appearance. A photoreal skybox like this is likely always going to look terrible once it has been compressed down to an acceptable size to live in tree.
  2. The aesthetic doesn't seem to fit with the general feel of bevy. I'm not an authority here at all, this is my impression. Given the sort of "friendly" cartoony vibe of the logo and aesthetic elsewhere, I assume that when the org has the resources, it will be commissioning stylized assets, rather than photoreal ones? This is complete vibes-based speculation on my part though!

To give more a more concrete suggestion, if we are going to add a better default skybox, it should probably be something similar to other engines:

Fyrox image Unity image Godot

It's possible these are also just using a simple shader for the skybox and envmap, which would completely eliminate the need for a skybox texture.

aevyrie avatar Jun 17 '24 06:06 aevyrie

I agree a default skybox like that would be better, but for the motion blur example, I'd would prefer a skybox with more stuff in it so you can actually see the blur. Otherwise we don't need to add one to that example.

IceSentry avatar Jun 17 '24 23:06 IceSentry

I agree a default skybox like that would be better, but for the motion blur example, I'd would prefer a skybox with more stuff in it so you can actually see the blur. Otherwise we don't need to add one to that example.

I agree with the statement here. I was searching for free to use hdri skyboxes that would be potentially better in low res but I couldn't find one.

I am open for suggestions as I think it would look better with a nicer environment for this example.

andristarr avatar Jun 18 '24 15:06 andristarr

I tried to create some skyboxes but none of them were able to jump the bare minimum of being acceptable so I am looking for input about this.

andristarr avatar Jun 30 '24 20:06 andristarr

With your suggestion I was able to remove the 4 megs of the cubemap.

I wouldnt scale down the resolution further because it gets really ugly :(

andristarr avatar Jul 18 '24 20:07 andristarr