Rust에서 셰이더를 개발하기위한 도구 세트 인 Rust GPU

게임 개발 회사 Embark Studios는 첫 번째 실험 버전을 출시했습니다. 프로젝트의 녹 GPU, Rust 언어를 사용하는 것을 목표로합니다. GPU 코드를 개발합니다. 

Rust를 사용하려는 욕구 GPU 용 프로그램 작성 안전 기능과 고성능에서 비롯된 것이 아니라 또한 개발 프로세스의 효율성을 향상시키기 위해 패키지 및 모듈과 함께 작업 할 최신 도구를 확보해야합니다.

Rust GPU 개발 회사 Embark Studios 또한 게임 엔진에서 Rust를 사용합니다. CPU와 GPU 간의 Rust 코드 교환을 촉진하기 위해 노력하고 있습니다.

그들에 따르면, 역사적으로 게임에서 GPU 프로그래밍은 HLSL을 작성하여 수행되었습니다. 또는 덜 정도 GLSL. 이들은 수년에 걸쳐 API 렌더링과 함께 진화 한 간단한 프로그래밍 언어입니다.

그러나 게임 엔진이 발전함에 따라 이러한 언어는 대규모 코드 기반을 처리하는 메커니즘을 제공하지 않았으며 일반적으로 다른 프로그래밍 언어에 비해 뒤쳐져 있습니다.

일반적으로 두 언어 모두에 대해 더 나은 대안이 있지만 둘 다 HLSL 또는 GLSL을 대체 할 수있는 위치에 있지 않습니다.

공급자가 차단했거나 지원되지 않기 때문입니다. 전통적인 그래픽 파이프 라인으로. 여기에는 CUDA 및 OpenCL이 포함됩니다. 이 공간에서 언어를 만들려는 시도가 있었지만 게임 개발 커뮤니티에서 눈에 띄는 견인력을 얻지 못했습니다.

Rust GPU는 RLSL 프로젝트에서 아이디어를 계속 개발합니다.Vulkan API에서 제안되고 OpenGL 4.6에서 지원되는 SPIR-V 일반 셰이더 중간에 대한 Rust 컴파일러를 만들려고 시도했습니다.

현재 개발 단계에서 Rust GPU는 이미 간단한 그래픽 셰이더를 실행하고 Rust의 기본 표준 라이브러리의 상당 부분을 컴파일 할 수 있습니다. 동시에, 프로젝트는 아직 광범위하게 사용할 준비가되어 있지 않습니다. 예를 들어, 루프는 아직 셰이더에서 지원되지 않습니다.

Embark에서는 Rust로 처음부터 자체 게임 엔진을 구축했습니다. 우리는 RLSL 프로토 타입의 사내 개발 경험이 있으며 게임, 게임 엔진 및 기타 산업 분야에서 오늘날의 셰이더 언어 문제에 익숙한 우수한 렌더링 엔지니어 팀을 보유하고 있습니다. 따라서 우리는이 문제를 해결하기 위해 노력할 수있는 독특한 위치에 있다고 믿습니다.

우리는 하나의 훌륭한 언어로 자체 개발을 간소화하고, 오픈 소스 그래픽 커뮤니티와 생태계를 구축하고, GPU와 CPU 간의 코드 공유를 촉진하고, 가장 중요한 것은 (미래) 사용자와 동료 개발자를 활성화하는 것입니다. 매력적이고 매력적인 경험을 빠르게 만듭니다.

Rust 언어의 코드를 기반으로 SPIR-V 셰이더의 표현이 형성되며, 그 생성을 위해 Rust 컴파일러를위한 특수 백엔드가 개발되었으며, 이는 표현으로 컴파일하는 데 사용되는 cranelift 코드 생성기와 유사하게 작동합니다. WebAssembly.

현재 접근 방식은 Vulkan Graphics API 및 SPIR-V보기를 지원하는 것입니다. 하지만 생성기는 DXIL (DirectX) 및 WGSL (WebGPU) 셰이더 뷰의 미래를 위해 계획되어 있습니다. Cargo 및 crates.io를 기반으로하는 도구는 SPIR-V 형식의 셰이더를 사용하여 패키지를 개발하고 게시하는 데 사용됩니다.

마지막으로이 프로젝트에 대해 더 알고 싶다면 프로젝트 저장소에서 세부 정보를 확인할 수 있습니다. 링크는 이것입니다.

코드를 아는 데 관심이있는 사람들은 코드가 MIT 및 Apache 2.0 라이선스하에 게시되어 있으며 코드를 얻을 수 있음을 알아야합니다. 아래 링크에서.

또한 Linux, Windows 및 Mac에서 작업 할 수 있도록 개발자를 위해 이미 준비된 설명서를 참조 할 수도 있습니다. 이 링크의 가이드를 참조하십시오.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   자동 조종 장치

    Rust가 떠오르고, 바라건대 또 다른 "치명적인 스칼라"가 아닙니다.