SDSL is interesting but personally I would never like to see inheritance directly in my shading language. IMO, concepts like that should happen way further up on the app-layer in a meta-language or graph that composes blocks of HLSL etc. together before getting compiled into SPIR-V. This is how material graphics for all major commercial and proprietary engines work.
Not sure if my reply got sent by reddit but I'll write a more concise one.
You're absolutely right! Inheritance is indeed the least attractive side of SDSL and I didn't mention the most important one (that is really how materials are built), mostly because it's a bit more complex to explain.
We have a mixin compose operator in SDSL, it's the feature we encourage users to use instead of inheritance, it yields more performance in general, but also it makes it possible to make shader graphs.
In Stride materials are made with compose nodes, we could have a shader graph UI like the major mainstream engines, but it's a lot of work and the editor is being rewritten as of now. So we could possibly see a shader graph editor in the future, when I can contribute to the new editor!
Also, I'm not sure why we couldn't represent the graph system through SPIR-V snippets, we're essentially creating a higher level intermediate language very similar to SPIR-V, which a lot of compilers do in different ways (e.g. nano pass compilers, where each passes gives you a lower level IR)
Stride is awesome. You can override and hook into stuff deep inside the engine to create custom behavior without leaving C#, and it still has a unity-style editor for managing assets and scenes.
Yes :D sometimes it takes that much time for a (previously) young hobbyist to go from knowing nothing about graphics to contributing to an open source game engine.
I'm the author of the blog post and the contributor behind this project.
To give a bit of context behind this :
Stride is an open source game engine written entirely in C#/.NET, with to other languages with the code-only approach.
When the engine got opensourced in 2018 we noticed the shader system had some performance issue and I decided to investigate on it once I got familiar with the source code.
The rest is explained in the blog post, but you can ask any questions here !
Esfahen@reddit
SDSL is interesting but personally I would never like to see inheritance directly in my shading language. IMO, concepts like that should happen way further up on the app-layer in a meta-language or graph that composes blocks of HLSL etc. together before getting compiled into SPIR-V. This is how material graphics for all major commercial and proprietary engines work.
ykafia@reddit (OP)
Not sure if my reply got sent by reddit but I'll write a more concise one.
You're absolutely right! Inheritance is indeed the least attractive side of SDSL and I didn't mention the most important one (that is really how materials are built), mostly because it's a bit more complex to explain.
We have a
mixin compose
operator in SDSL, it's the feature we encourage users to use instead of inheritance, it yields more performance in general, but also it makes it possible to make shader graphs.In Stride materials are made with compose nodes, we could have a shader graph UI like the major mainstream engines, but it's a lot of work and the editor is being rewritten as of now. So we could possibly see a shader graph editor in the future, when I can contribute to the new editor!
Also, I'm not sure why we couldn't represent the graph system through SPIR-V snippets, we're essentially creating a higher level intermediate language very similar to SPIR-V, which a lot of compilers do in different ways (e.g. nano pass compilers, where each passes gives you a lower level IR)
aurath@reddit
Stride is awesome. You can override and hook into stuff deep inside the engine to create custom behavior without leaving C#, and it still has a unity-style editor for managing assets and scenes.
trackerstar@reddit
7 years late lmao
ykafia@reddit (OP)
Yes :D sometimes it takes that much time for a (previously) young hobbyist to go from knowing nothing about graphics to contributing to an open source game engine.
ykafia@reddit (OP)
Hello everyone!
I'm the author of the blog post and the contributor behind this project. To give a bit of context behind this :
Stride is an open source game engine written entirely in C#/.NET, with to other languages with the code-only approach.
When the engine got opensourced in 2018 we noticed the shader system had some performance issue and I decided to investigate on it once I got familiar with the source code.
The rest is explained in the blog post, but you can ask any questions here !