GLSL ES 3.00을 TypeShade로
WebGL2용 셰이더는 GLSL ES 3.00로 씁니다. 그 대부분에는 두 타깃에 같은 프로그램을 생성하는 TypeShade 표기가 있습니다. 이 페이지는 그 방향으로 읽히며, 어떤 구성 요소가 WebGPU에만 있고 어떤 구성 요소를 컴파일러가 양쪽에서 거부하는지도 함께 말합니다.
표 읽는 법
오른쪽 칸은 커밋 26de7be8의 컴파일러가 실제로 받아들이는 소스이고, 왼쪽 칸은 그 컴파일러가 같은 소스에 대해 생성한 GLSL ES 3.00입니다. 이 타깃에 형태가 없는 행에서는 없는 표기를 지어내는 대신 컴파일러가 직접 내는 문장을 그 칸에 싣습니다.
섹션
- 타입
- GLSL ES 3.00 타입 표면을 TypeShade 표기와 나란히 놓습니다. 스칼라와 벡터, 행렬, 배열, 샘플러, 그리고 이 타깃이 거부하는 타입을 다룹니다.
- 유니폼과 버퍼
- 유니폼 바인딩은 생성기가 블록으로 내보내는 구조체이고, varying은 양쪽 모두에서 필드입니다. 이 타깃이 아는 기능은 하나에 한 행씩입니다.
- builtin 변수
- gl_ 전역 변수는 매개변수나 클래스 필드나 반환 자리에 붙는 builtin 속성이고, 그것이 어느 전역 변수가 될지는 생성기가 정합니다.
- 함수와 연산자
- 호출은 중립 이름 하나로 다니고 백엔드마다 자기 표기를 씁니다. GLSL 작성자가 찾는 미분과 텍스처, 비트, 나머지 형태를 싣습니다.
fn() 표기
이 페이지가 다루는 것은 "use typeshade" 인터페이스입니다. 컴파일러에는 fn()과 uniformStruct() 같은 함수로 이루어진 내장 인터페이스도 있고, 같은 GLSL 구성 요소를 그 표기와 나란히 놓은 글이 GLSL 셰이더 옮기기입니다. 이 페이지의 WGSL 쪽은 WGSL을 TypeShade로입니다.