레퍼런스 shader()

shader()

화면을 그리는 도중에 적용할 p5.Shader 객체를 설정합니다.

셰이더는 그래픽 처리 장치(GPU)에서 실행되는 프로그램입니다. 많은 픽셀이나 정점(vertex)을 동시에 처리할 수 있어 빠른 그래픽 작업에 유용합니다. 셰이더는 GLSL이라는 언어로 작성되며 스케치의 나머지 코드와 함께 실행됩니다. p5.Shader 객체는 createShader()loadShader() 함수를 사용하여 생성할 수 있습니다.

매개변수 s는 각 픽셀을 처리하는 데 사용할 p5.Shader 객체입니다. 예를 들어, shader(myShader)를 호출하면 myShader가 적용되어 캔버스의 각 픽셀을 처리합니다. 셰이더는 다음과 같은 경우에 사용됩니다:

  • 텍스처가 활성화되어 있고 sampler2D 유니폼을 포함하는 경우.
  • 조명이 활성화되어 있고 aNormal 속성이 포함되어 있거나 다음과 같은 유니폼 중 하나가 있는 경우: uUseLighting, uAmbientLightCount, uDirectionalLightCount, uPointLightCount, uAmbientColor, uDirectionalDiffuseColors, uDirectionalSpecularColors, uPointLightLocation, uPointLightDiffuseColors, uPointLightSpecularColors, uLightingDirection, 또는 uSpecular.
  • 조명이나 텍스처가 없는 경우 면을 채웁니다.
  • uStrokeWeight 유니폼을 포함하는 경우 획을 그립니다.

p5.Shader 객체의 프래그먼트 셰이더(fragment shader) 및 정점 셰이더(vertex shader) 소스 코드는 처음 shader()에 전달될 때 컴파일됩니다. 셰이더를 컴파일하는 것에 대한 자세한 내용은 MDN을 참조하십시오.

resetShader()를 호출하여 스케치의 기본 셰이더로 복원할 수 있습니다.

참고: 셰이더는 WebGL 모드에서만 사용할 수 있습니다.

예제

구문

shader(s)

매개변수

s

적용할 p5.Shader 객체

Notice any errors or typos? Please let us know. Please feel free to edit src/webgl/material.js and open a pull request!

관련 레퍼런스