Skip to content

EmiOnGit/birdylook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Birdylook

This is a project mainly to showcase more advanced techniques in the bevy ecosystem or as a template for others. If you see any bugs or want to rewrite something more efficiently or readable feel free to make a PR or open an issue to describe your thoughts.

Showcase

Animated Water

Waves

Currently, the water uses vertex displacement to animate waves. Stacking sin waves are used as periodic functions as you can see in the shader code. This is great for calmer-looking water but if you need more stormy water in your game I may recommend using the approach described in the GPU gems book(see Equation 8a, 8b).

Reflections

For the reflection planar reflections are used. This is implemented using a reflection camera rendering to a texture used in the shader. The technique is described in this video. The reflection is later distorted using the normals of the vertex(improvements for the distortions are very welcomed)

Current limitations

Objects underwater are captured by the reflecting camera resulting in sometimes questionable results. The solution would be to wait for clipping plane support or use the frustum of the camera to only capture objects above the water.

Lighting

The lanterns do emit light by having a simple point light as a child. Furthermore, plans are to move/distort the light by the wind.

Animated grass

The grass is created using the warbler_grass crate. It uses heavy instancing and a little editor to create your own grass easily. For grass is loaded from the images found in the assets folder and can be changed dynamically.

License

Code

This project is free, open source and permissively licensed! All code in this repository is dual-licensed under either:

MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT) Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) at your option. This means you can select the license you prefer! This dual-licensing approach is the de-facto standard in the Rust ecosystem and there are very good reasons to include both.

Assets

I made all assets myself and are free to use! If someone decides to use them for anything I'd be honored if you notify me about your usecase. All assets found in the assets folder are under the CC0 1.0 Universal license. Meaning you're free to use the assets freely in any project, personal or commercial. There's no need to ask permission before using these. Giving attribution is not required, but is greatly appreciated!

About

No description, website, or topics provided.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages