Giter Site home page Giter Site logo

birdylook's Introduction

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. Currently, the project aims to implement a nice-looking environment with:

  • Animated water
  • Good looking lighting
  • Animated grass

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 instancing close to the example in the bevy repo. To generate the places where the grass is generated I use a more hacky way. I use a texture to mark all the places I want random grass to be generated. Using a small python script I transform the image into a ron file, consisting of all places compressed into bigger quads.

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!

birdylook's People

Contributors

emiongit avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.