Comments (7)
This should be doable after hal, using spir-v shader modules
from amethyst.
@codri Seems really neat! I'll have to play around with this framework a bit before I comment on it, though. Thanks for the find.
from amethyst.
@codri So far, I'm loving the ideas behind Gamma. Being able to compose shaders like this is rather nice, plus it could potentially be used as a layer of abstraction over GLSL, HLSL, etc. which is huge.
However, I do believe such a layer would probably be better utilized in the Amethyst toolchain rather than at run-time in the engine proper. Perhaps when amethyst build
is called, it calls another hypothetical utility which translates shader code written in some flexible language like Scheme into one of the target platform's supported shading languages (e.g. SPIR-V/HLSL for Windows, SPIR-V/GLSL for Linux, and GLSL for other possibly older platforms).
Keep in mind, I'm just brainstorming ideas. It is too early to start building, but at least it provides some food for thought.
from amethyst.
cc @omni-viral Does this issue look useful to you?
from amethyst.
@Xaeroxe you can set it low priority improvement at leave open. We will need to improve our tools
from amethyst.
I think, something like that is extremely useful, because it allows us to separate different implementations for certain effects. For example, I might decide to use lighting, however I might want to use a lighting/shadow variant which Amethyst does not support (e.g. Voxel Cone Tracing Illumination), so I could implement it and just replace the standard lighting/shadow shader like that - ideally sending the whole new module upstream to store like a library ;)
However, I think that shader modules should be selectable during runtime, too, because I might want to use better visual effects on a stronger computer, but reduce that to basic ones on weaker machines. Maybe it is possible to do so by using different entry points?
from amethyst.
I think we can close this issue, it doesn't provide any valuable information and we'll get this for free soon.
from amethyst.
Related Issues (20)
- Pong game breaks when using Airpods Pros HOT 5
- Derive proc_macros unnecessarily require the user to import apparently arbitrary types HOT 1
- RenderingBundle has undocumented dependency when used with ApplicationBuilder HOT 2
- RenderToWindow::from_config_path - Parse Errors include filename that couldn't be parsed HOT 2
- Include brew dependencies for MacOS HOT 1
- update amethyst_rendy to use rendy 0.5.1 HOT 1
- Reduce friction to use register_asset_type! macro HOT 1
- Allow use of legion system macros without needing to manually add legion crate HOT 1
- Add example how to add thread local bundle / system with object which can not be send between threads HOT 3
- Most Examples Are breaking, With missing imports HOT 1
- supported platforms? HOT 1
- Examples fail to run second time with error: failed to load manifest for workspace member .assets_db HOT 1
- Custom pipeline properties for rendering (3D-related)
- [Question] is there a way to download all of amethyst for convenient offline use
- the focus screen functionality does not work at all HOT 9
- Amethyst rendy is broken, the build is broken and has been broken for more than a year HOT 4
- Amethyst Roadmaps not updated to reflect project discontinuation
- amethyst was deprecated? if yes, why? HOT 3
- Make tiled windows fullscreen
- Wide layout not resizing with new windows. Requires relaunching.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from amethyst.