Giter VIP home page Giter VIP logo

wtvr3d's People

Contributors

dependabot[bot] avatar tiesselune avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

adamnemecek

wtvr3d's Issues

Particle Systems

Feature details

It would be nice to have some kind of particle system in the engine to take advantage of instanced rendering.

To do

TBD

Skeletal animation

Feature details

Allow animation through skeletal movement and vertex weights. The collada importer should be able to import them

To do

  • Add spline importer to the Collada importer
  • Add animation conversion for .dae files. Animations should be in separate files
  • Hide animation behind a feature flag in cargo.toml
  • Implement animation on the rust side
  • Implement animation conditionnaly on the shader side

Use Frustrum to choose which objects to render

Feature details

Compute a bonding box for each mesh and draw the mesh only if it is in the camera's frustrum

To do

  • Compute a mesh's bonding box based either on its vertices or its skeleton (at import time for static objects, at render time for animated ones, fallback to consider)
  • Test for overlapping with the current camera frustrum at render time

Allow normal maps and specular maps

Feature details

It would be nice to be able to integrate Normal and Specular maps in the main shaders; they require tangent space basis.

To do

  • Choose wether to pre-compute tangents at export time, import time, or in the shader itself
  • Implement normal mapping
  • Implement specular mapping

Better default material

Feature details

Create a default material that supports both directionnal and point lights in any number and has a BSDF function for better looks and parametrability

To do

  • Implement the shader
  • Make point lights work
  • Identify the main performance hogs

Light version of Default material

Feature details

Provide a light version of the default material (with no normal map or no specular map, and more basic lighting models) to fallback to when performance is bad.
Relates to #3 as an enhancement (by providing a default alternative for low-end devices)

To do

  • Decide what features to keep
  • Implement material

Skyboxes

Feature details

Create a new resource for skybox details. At first, the sky box should provide choice for 3 colors: Sky, Horizon and ground

To do

  • Implement a non-mandatory sky box
  • Provide Skybox control from JS at the scene level

Auto detect frame rate drops and change profiles accordingly if available

Feature details

The engine should be able to detect frame rate drops and pass the information to the JS side so it downloads alternative assets before handing back the lead to the engine to hotswap assets to less demanding ones in an effort to allow a smooth overall frame rate.

To do

  • write a frame rate detection system
  • hand back the lead to JS so it downloads alternative assets
  • Change profiles accordingly

Semi transparent objects

Feature details

Make a default material for semi-transparent objects, with mesh sorting at render time (to handle opaque objects first then transparent ones sorted by depth)

To do

  • Sort through the meshes at render time by depth
  • Write a semi-transparent shader

Allow hotswapping materials according to profile settings

Feature details

Include alternative materials (and textures) for objects depending on profile settings to adapt performance to mobile/desktop

The idea is to allow several devices to run the same game and maintain good performance the way the switch does when switching between docked mode and handheld mode

To do:

  • Include an array of materials depending on a profile setting in meshes
  • Allow hot swapping of materials with on the go-compilation (useful for frame rate drops)
  • Allow hot swapping of Material Instance (to change only texture resolution for instance

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.