Skip to content

Godot:Shader

셰이더는 GPU에서 실행되는 고유 한 프로그램입니다. 메쉬 데이터 (정점 위치, 색상, 법선 등)를 가져와 화면에 그리는 방법을 지정하는 데 사용됩니다. 셰이더는 GPU에서 실행되도록 최적화되어 있기 때문에 일반 프로그램과 같은 방식으로 정보를 처리하지 않습니다. 이것의 한 가지 결과는 셰이더가 실행 된 후에 데이터를 유지하지 않는다는 것입니다. 최종 색상을 화면에 출력 한 다음 계속 진행합니다. 따라서 셰이더의 마지막 실행에서 출력 된 색상에 액세스 할 수있는 방법이 없습니다.

Godot는 GLSL과 매우 유사한 셰이더 언어를 사용하지만 기능이 추가되고 유연성이 약간 떨어집니다. 이렇게하는 이유는 Godot가 내장 기능을 통합하여 복잡한 셰이더를 훨씬 쉽게 작성할 수 있기 때문입니다. Godot는 사용자가 작성한 셰이더 코드를 자체 코드로 래핑합니다. 그런 식으로 Godot는 사용자가 걱정할 필요가없는 많은 저수준 항목을 처리하고 셰이더 코드를 구문 분석하여 렌더링 파이프 라인에 영향을주는 데 사용할 수 있습니다. 고급 셰이더의 경우 render_mode를 사용하여이 기능을 끌 수 있습니다.

Shader types

모든 용도(2D, 3D, 파티클)를위한 범용 구성을 제공하는 대신 Godot 셰이더는 용도를 지정해야합니다. 다른 유형은 다양한 렌더링 모드, 내장 변수 및 처리 기능을 지원합니다.

모든 셰이더는 첫 번째 줄에 다음 형식으로 유형을 지정해야합니다:

shader_type spatial;

올바른 타입은 다음과 같습니다:

  • spatial: For 3D rendering.
  • canvas_item: For 2D rendering.
  • particles: For particle systems.

Render modes

다른 셰이더 유형은 다른 렌더링 모드를 지원합니다. 선택 사항이며 지정된 경우 shader_type 뒤에 있어야합니다. 렌더 모드는 내장 기능이 처리되는 방식을 변경하는 데 사용됩니다. 예를 들어, 내장 된 라이트 프로세서 기능을 건너 뛰기 위해 음영 처리되지 않은 렌더링 모드를 사용하는 것이 일반적입니다.

렌더링 모드는 셰이더 유형 아래에 지정됩니다.

shader_type spatial;
render_mode unshaded, cull_disabled;

각 셰이더 유형에는 사용 가능한 다른 렌더링 모드 목록이 있습니다. 렌더링 모드의 전체 목록은 각 셰이더 유형에 대한 문서를 참조하십시오.

Projects

Balatro Effect

Shaders:

See also

Favorite site

Samples