Direct3D, Metal, OpenGL, Vulkan, WebGL을 추상화해 자체 엔진에 연결할 수 있는 크로스 플랫폼 C++ 렌더링 라이브러리입니다.
patriciogonzalezvivo/lygia
GLSL, HLSL, Metal, WGSL, WebGL, CUDA용 세분화된 셰이더 함수 라이브러리로, 각 파일에 재사용 가능한 함수 하나가 담겨 있습니다.
- 스타
- 3,480
- 포크
- 226
- 열린 이슈
- 26
- 마지막 커밋
- 14일 전
어떤 프로젝트인가요?
LYGIA는 수학, 색상, 공간 변환, 노이즈, 부호 있는 거리장, 그리기, 필터링, 조명에 사용할 수 있는 재사용 가능한 함수로 구성된 셰이더 라이브러리입니다. 각 파일에는 함수 하나만 들어 있어 표준 #include 지시문으로 셰이더에 필요한 함수만 포함할 수 있습니다.
라이브러리는 언어별로 구성되어 있으며 GLSL, HLSL, Metal, WGSL, CUDA용 파일이 따로 있고, 각 언어에서 동일한 함수들을 함께 관리합니다. 일부 함수는 #define 옵션으로 컴파일 시점에 설정할 수 있습니다. 예를 들어 가우시안 블러를 2D 커널로 바꾸거나 샘플링 함수를 변경할 수 있습니다.
LYGIA는 저장소를 복제하거나 git submodule로 추가해 로컬에서 사용할 수 있고, npm으로 설치하거나 CodePen 같은 브라우저 기반 플랫폼에서 호스팅된 resolver 스크립트를 통해 온라인으로 불러올 수도 있습니다. 저장소에는 프로젝트에 필요한 언어만 남기는 prune.py 스크립트도 포함되어 있습니다.
핵심 기능
- 01여러 셰이딩 언어에서 파일 하나당 함수 하나를 담는 세분화된 구조입니다.
- 02로컬 또는 호스팅된 온라인 resolver를 통해 #include 의존성을 해결합니다.
- 03#define 옵션으로 함수를 설정한 뒤 포함할 수 있습니다.
- 04이전 LYGIA 릴리스에 고정할 수 있도록 버전 지정 include를 지원합니다.
- 05필요한 언어만 남기는 prune.py 스크립트가 포함되어 있습니다.
- 06JavaScript 프로젝트용 npm 패키지를 제공합니다.
활용 사례
- 처음부터 직접 작성하지 않고 WebGL 또는 WebGPU 프로젝트에 노이즈, 이징, 색상 유틸리티를 추가할 때.
- 동일한 헬퍼 함수를 재사용하면서 셰이더를 GLSL에서 HLSL, Metal 또는 WGSL로 포팅할 때.
- p5.js, Three.js 또는 Unity에서 제너레이티브 아트나 크리에이티브 코딩 스케치를 만들 때.
- CodePen 또는 Observable에서 의존성을 자동으로 해결하며 셰이더 코드를 온라인으로 공유할 때.
빠른 시작
- 1
LYGIA를 포함하는 셰이더 옆에 있는 프로젝트에 LYGIA를 클론합니다
git clone https://github.com/patriciogonzalezvivo/lygia.git - 2
또는 degit을 사용해 Git 기록 없이 다운로드합니다
npx degit https://github.com/patriciogonzalezvivo/lygia.git lygia - 3
셰이더에서 "lygia/space/ratio.glsl"처럼 필요한 함수를 #include 합니다
사용 전 알아둘 점
- 독립 실행형 애플리케이션이 아니라 셰이더 함수 라이브러리이므로, 자체 셰이더 파이프라인에 통합해야 합니다.
- 듀얼 라이선스가 적용되며 일반적인 오픈소스 라이선스는 아니므로, 상업적으로 사용하기 전에 라이선스 조건을 확인하세요.
토픽
자주 묻는 질문
- lygia은(는) 무엇인가요?
- GLSL, HLSL, Metal, WGSL, WebGL, CUDA용 세분화된 셰이더 함수 라이브러리로, 각 파일에 재사용 가능한 함수 하나가 담겨 있습니다. LYGIA는 수학, 색상, 공간 변환, 노이즈, 부호 있는 거리장, 그리기, 필터링, 조명에 사용할 수 있는 재사용 가능한 함수로 구성된 셰이더 라이브러리입니다. 각 파일에는 함수 하나만 들어 있어 표준 #include 지시문으로 셰이더에 필요한 함수만 포함할 수 있습니다.
- lygia은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- lygia은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- lygia은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. lygia의 마지막 커밋은 2026년 10월 24일입니다.
- lygia은(는) 어디에 사용할 수 있나요?
- 처음부터 직접 작성하지 않고 WebGL 또는 WebGPU 프로젝트에 노이즈, 이징, 색상 유틸리티를 추가할 때. 동일한 헬퍼 함수를 재사용하면서 셰이더를 GLSL에서 HLSL, Metal 또는 WGSL로 포팅할 때. p5.js, Three.js 또는 Unity에서 제너레이티브 아트나 크리에이티브 코딩 스케치를 만들 때. CodePen 또는 Observable에서 의존성을 자동으로 해결하며 셰이더 코드를 온라인으로 공유할 때.
- lygia는 어떻게 설치하나요?
- LYGIA를 포함하는 셰이더 옆에 있는 프로젝트에 LYGIA를 클론합니다: git clone https://github.com/patriciogonzalezvivo/lygia.git 또는 degit을 사용해 Git 기록 없이 다운로드합니다: npx degit https://github.com/patriciogonzalezvivo/lygia.git lygia 셰이더에서 "lygia/space/ratio.glsl"처럼 필요한 함수를 #include 합니다
- lygia은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/patriciogonzalezvivo/lygia
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
웹, 모바일, Apple, Android, Rust 및 동영상 도구에서 사용할 수 있는 커뮤니티 제작 GLSL 전환 효과 100여 종을 공개 컬렉션으로 제공합니다.
GPU.js는 간단한 JavaScript 함수를 GPU 셰이더 코드로 변환해 브라우저와 Node.js에서 GPU로 실행하고, GPU가 없으면 일반 JavaScript로 대체 실행합니다.
실제 HTML 콘텐츠 위에 액체, 유리, 불꽃 등의 효과를 적용하는 프레임워크 독립형 캔버스 UI 효과 35종을 복사해 사용하는 라이브러리입니다.
WebGL과 WebGPU를 사용해 브라우저에서 3D 장면을 더 쉽게 만들고 렌더링할 수 있는 JavaScript 3D 라이브러리입니다.
WebGL과 WebGPU로 그래픽, 스프라이트, 텍스트를 그리는 빠른 웹용 2D 렌더링 라이브러리입니다.