Simpler shaders for 3D meshes
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 161
Description
## What problem does this solve or what need does it fill?
One of the things I miss from three.js is the simpler, more basic shaders:
* MeshBasicMaterial
* MeshLambertMaterial
* MeshPhongMaterial
These are documented here: https://threejs.org/docs/#api/en/materials/MeshBasicMaterial
Three.js does have a standard material that is roughly comparable to Bevy's standard material. However for non-photorealistic games, the additional complexity of standard material is often not needed, and the extra parameters are sometimes a distraction.
This is particularly the case when writing extended shaders (via Bevy's ExtendedMaterial) that provide non-photorealistic effects, or even exotic effects like water caustics or procedural gradients. When writing a shader extension, one would sometimes like to be able to incorporate the global post-processing features of the standard shader (like tone mapping), but have the lighting and base color calculations start from a clean slate.
## What solution would you like?
I'd like to see a set of simpler shaders as an alternative to StandardMaterial.
## What alternative(s) have you considered?
What I have done up to this point is either extend StandardMaterial, or write a standalone shader that re-implements the parts of StandardMaterial that I want.
## Additional context
While I have written a number of shaders that extend StandardMaterial, most of my efforts have been trial-and-error, cargo cult programming - meaning that I don't really understand what I am doing, I just keep trying different permutations until I get something that works. This is largely due to the fact that I really don't know how my extension and the existing StandardShader code get combined.
@alice-i-cecile @robtfm
Contributor guide
Assessment
This issue has not been assessed yet.