GPU 포인터와 디스크립터 힙을 사용해 버퍼와 디스크립터 세트를 대체하는 Metal 4 및 Vulkan 1.4용 최소한의 C++20 그래픽 라이브러리입니다.
regl-project/regl
공유 GPU 상태를 없애고, 드로우 호출을 명령으로 기술해 최적화된 JavaScript로 컴파일하는 함수형 WebGL 래퍼입니다.
- 스타
- 5,594
- 포크
- 328
- 열린 이슈
- 127
- 마지막 커밋
- 21일 전
어떤 프로젝트인가요?
regl은 WebGL API를 두 가지 추상화로 감싸는 JavaScript 라이브러리입니다. 하나는 버퍼, 텍스처, 프레임버퍼 같은 GPU 객체를 가리키는 핸들인 리소스이고, 다른 하나는 드로우 호출에 필요한 WebGL 상태를 모두 기술하는 명령입니다. 개발자는 명령을 정의할 때 정적 값과 동적 값을 함께 사용하며, regl은 그 정의를 바탕으로 최적화된 JavaScript 코드를 생성합니다. 따라서 일반적인 WebGL을 사용할 때 발생하는 호출별 오버헤드를 대부분 피할 수 있습니다.
이 라이브러리는 의도적으로 최소한의 기능만 제공합니다. 씬 그래프, 게임 엔진, 벡터 연산 유틸리티는 포함하지 않으며, 다중 렌더 타깃이나 인스턴싱 같은 확장 기능을 포함한 모든 WebGL 기능을 계속 사용할 수 있습니다. 의존성이 없고 npm 패키지와 함께 독립 실행형 스크립트 빌드도 제공하며, 개발 모드에서 검증 검사가 활성화되는 대규모 테스트 스위트도 포함합니다.
핵심 기능
- 01리소스와 명령 추상화로 WebGL을 감싸 공유 상태를 줄입니다.
- 02부분 평가를 통해 명령 정의를 최적화된 JavaScript로 컴파일합니다.
- 03버퍼용 중첩 배열을 자동으로 평탄화해 형식화 배열로 변환합니다.
- 04뷰포트 처리를 지원하는 requestAnimationFrame용 regl.frame을 제공합니다.
- 05인스턴싱 같은 확장 기능을 포함한 모든 WebGL 기능을 사용할 수 있습니다.
- 06런타임 의존성이 없으며 독립 실행형 스크립트 빌드를 제공합니다.
활용 사례
- 브라우저에서 GPU 가속을 활용하는 맞춤형 데이터 시각화를 구축할 때.
- WebGL을 직접 제어해야 하는 셰이더 기반 그래픽이나 시뮬레이션을 작성할 때.
- 안정적인 저수준 렌더링 API에 의존하는 장기 실행 웹 애플리케이션을 만들 때.
빠른 시작
- 1
npm에서 프로젝트에 regl을 설치합니다
npm i -S regl - 2
regl을 require해 인스턴스를 만든 다음 regl.frame으로 그립니다
사용 전 알아둘 점
- --debug 플래그를 사용하지 않으면 browserify로 번들링할 때 개발 모드의 오류 검사가 제거됩니다.
포함된 컬렉션
토픽
자주 묻는 질문
- regl은(는) 무엇인가요?
- 공유 GPU 상태를 없애고, 드로우 호출을 명령으로 기술해 최적화된 JavaScript로 컴파일하는 함수형 WebGL 래퍼입니다. regl은 WebGL API를 두 가지 추상화로 감싸는 JavaScript 라이브러리입니다. 하나는 버퍼, 텍스처, 프레임버퍼 같은 GPU 객체를 가리키는 핸들인 리소스이고, 다른 하나는 드로우 호출에 필요한 WebGL 상태를 모두 기술하는 명령입니다. 개발자는 명령을 정의할 때 정적 값과 동적 값을 함께 사용하며, regl은 그 정의를 바탕으로 최적화된 JavaScript 코드를 생성합니다. 따라서 일반적인 WebGL을 사용할 때 발생하는 호출별 오버헤드를 대부분 피할 수 있습니다.
- regl은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- regl은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- regl은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. regl의 마지막 커밋은 2026년 10월 17일입니다.
- regl은(는) 어디에 사용할 수 있나요?
- 브라우저에서 GPU 가속을 활용하는 맞춤형 데이터 시각화를 구축할 때. WebGL을 직접 제어해야 하는 셰이더 기반 그래픽이나 시뮬레이션을 작성할 때. 안정적인 저수준 렌더링 API에 의존하는 장기 실행 웹 애플리케이션을 만들 때.
- regl는 어떻게 설치하나요?
- npm에서 프로젝트에 regl을 설치합니다: npm i -S regl regl을 require해 인스턴스를 만든 다음 regl.frame으로 그립니다
- regl은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/regl-project/regl
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
WebGL과 WebGPU를 사용해 브라우저에서 3D 장면을 더 쉽게 만들고 렌더링할 수 있는 JavaScript 3D 라이브러리입니다.
웹, 모바일, Apple, Android, Rust 및 동영상 도구에서 사용할 수 있는 커뮤니티 제작 GLSL 전환 효과 100여 종을 공개 컬렉션으로 제공합니다.
브라우저에서 WebGL, WebGPU, WebXR로 실행되는 JavaScript/TypeScript 3D 게임 및 렌더링 엔진입니다.