수색…


통사론

  • #version version_number // 사용중인 GLSL 버전
  • void main () {/ * Code * /} // 셰이더의 주요 함수
  • 타입 이름; // 입력 매개 변수를 지정합니다. - GLSL 1.30
  • 아웃 유형 이름; // 출력 매개 변수를 지정합니다. - GLSL 1.30
  • inout 유형 이름; // 입출력을위한 매개 변수 - GLSL 1.30

매개 변수

매개 변수 세부
유형 매개 변수의 유형은 GLSL 기본 제공 유형이어야합니다.

비고

셰이더를 컴파일하는 데 사용할 GLSL 버전을 지정하려면 #version 330 같은 버전 전 처리기를 사용하십시오. OpenGL의 각 버전은 특정 버전의 GLSL 을 지원해야합니다. #version 전 처리기가 셰이더 맨 위에 정의되어 있지 않으면 기본 버전 1.10이 사용됩니다.

색깔이있는 사각형 렌더링을위한 쉐이더

OpenGL의 의미에서 쉐이더 프로그램은 여러 가지 쉐이더를 포함합니다. 모든 셰이더 프로그램에는 화면상의 점 위치를 계산하는 꼭지점 셰이더와 각 픽셀의 색을 계산하는 조각 셰이더가 있어야합니다. (실제로 스토리는 길고 복잡하지만 어쨌든 ...)

다음 버전의 셰이더는 #version 110 용이지만 몇 가지 사항을 설명해야합니다.

버텍스 쉐이더 :

#version 110

// x and y coordinates of one of the corners
attribute vec2 input_Position;

// rgba colour of the corner. If all corners are blue, 
// the rectangle is blue. If not, the colours are 
// interpolated (combined) towards the center of the rectangle    
attribute vec4 input_Colour; 

// The vertex shader gets the colour, and passes it forward     
// towards the fragment shader which is responsible with colours
// Must match corresponding declaration in the fragment shader.  
varying vec4 Colour;    

void main()
{
    // Set the final position of the corner
    gl_Position = vec4(input_Position, 0.0f, 1.0f);
    
    // Pass the colour to the fragment shader
    UV = input_UV;
}

조각 쉐이더 :

#version 110

// Must match declaration in the vertex shader.  
varying vec4 Colour;

void main()
{
    // Set the fragment colour
    gl_FragColor = vec4(Colour);
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow