wgsl-rs 소개
Rust-GPU는 Rust 코드를 SPIR-V로 컴파일해 GPU에서 실행할 수 있게 하는 기술로, Rust의 모듈 시스템, 타입 검사, 제네릭, 트레잇 등 강력한 기능을 셰이더 개발에 활용할 수 있습니다. 다만, 동적 할당이 불가능하고, 특정 Rust 컴파일러 및 GPU 표준 라이브러리에 종속되며, 컴파일 환경 구축이 복잡하다는 단점이 존재합니다.
이에 대응해 개발된 wgsl-rs는 Rust 코드 일부를 WGSL로 변환하는 프로시저 매크로로, 별도의 컴파일러 백엔드 없이 안정적인 Rust 환경에서 WGSL 셰이더를 작성하고 테스트할 수 있게 합니다. 이 방식은 CPU와 GPU 코드의 일관성을 유지하며, 자동으로 wgpu 연동 코드를 생성해 개발 생산성을 크게 높입니다.
단, wgsl-rs는 WebGPU 및 WGSL 규격에 한정되며, Rust의 제네릭이나 트레잇 같은 고급 기능은 제한되고 Vulkan 등 고급 GPU 기능은 지원하지 않습니다. 그러나 두 기술은 상호 보완적으로 사용 가능하며, wgsl-rs로 빠르게 시작해 필요 시 Rust-GPU로 확장하는 경로를 제공합니다.
향후 wgsl-rs는 크레이트 베타 출시, GPU 메모리 할당 라이브러리 연동, GPU 가속 ECS 시스템 개발, Renderling 엔진 내부 개편, 실시간 전역 조명 구현 등으로 발전할 예정입니다.