여기 엔진 만드는 사람은 거의 없겠지만, 혹시라도 있다면 도움이 될만한 정보임...





일반적으로 쉐이더 코드를 만드는데는 쉐이더 언어로 GLSL(C 스펙 기반)을 널리 사용하는데, (유니티나 혹은 일부에서 HLSL을 사용하기도)


최근 WebGPU/WGPU에서는 WGSL(Rust 스펙 기반)도 사용함.


근데 GLSL이던 WGSL이던 기본적인 쉐이더 언어로써는 손색이 없지만, 많은 부분이 부족한게 사실임.


가장 큰 문제로는 모듈화가 지원이 안된다는거임;;


그래서 사이즈가 큰 볼륨의 쉐이더 코드를 작성하기에는 한계가 있음ㅇㅇ


최근 GPGPU를 활용하기 위해 컴퓨트 쉐이더도 많이 만드는 추세다보니 이러한 언어 스펙의 부족은 여러가지로 어려움을 낳음...


그러다보니 일부 프로젝트들이 전처리기 같은걸 만들어서 모듈을 어거지로 구현하는 케이스도 종종 보임



예를 들어 bevy엔진 측에서 만든 naga_oil이라는 프로젝트도 그렇고,


https://github.com/bevyengine/naga_oil


GitHub - bevyengine/naga_oil

Contribute to bevyengine/naga_oil development by creating an account on GitHub.

github.com



아예 커뮤니티 차원에서 wgsl을 확장하는 언어를 만들기도 함ㅋㅋ


https://wesl-lang.dev/


WESL Documentation

WESL Documentation

wesl-lang.dev


하지만 공식 언어 스펙이 아닌 땜빵(?)식의 프로젝트다 보니 아쉬운게 사실임...



아무튼 그러다 심심해서 reddit을 뒤지다가, 벌컨 커뮤니티에 누가 slang이라는 언어로 쉐이더를 만들어서 돌리는걸 보고 도대체 slang이 뭔지가 궁금해져서 좀 조사해봤음ㅇㅇ


해당 글

https://www.reddit.com/r/vulkan/comments/1lo9lif/added_hot_reload_error_shader_to_my_vulkanslang/



놀랍게도, 모듈화를 적극 지원하는 새로운 쉐이더용 프로그래밍 언어였음!! (다른 슬랭 언어랑 헷갈렸는데 댓글로 제대로 알려주더라 ㅋㅋ)


즉 "쉐이더 프로그래밍의 모던화"를 위해 만들어진 언어라는건데, 생각보다 나온지가 꽤 됐더라고...


2015년에 개발을 시작해서 2017년에 오픈소스화가 됨.


엔비디아 r&d팀에서 내부적으로 만들던거라함ㅋㅋ


그러다가 작년에 크로노스 그룹(벌컨, opengl 관리 단체)으로 이전해서 관리중이라고 하네


공식사이트는 여기


https://shader-slang.org/


The Slang Shading Language

Empowering real-time graphics developers with advanced language features and machine learning capabilities.

shader-slang.org



관심있으면 한번 둘러보셈ㅋㅋ 난 관심 크게 생기는중;;