glgetuniformlocation 예제

By | August 2, 2019

디버그 메시지 콜백을 활용하는 방법을 보여주는 간단한 예제(예: OpenGL 오류 감지용): 이 예제에서는 위의 예제 샤더가 사용되고 정점 위치와 색상 값이 타이머 함수로 변경됩니다. 이 목록은 위키 전체에서 사용되는 모든 중요한 예제 코드의 목록입니다. 이 예제 코드는 동적으로 균일한 식과 없는 식을 보여 주며 있습니다. 예를 들어 glGetUniformLocation (프로그램솔리드 핸들, “vColor”)는 glGetAttribLocation (프로그램SolidHandle, “vColor”)와 동일한 것 같습니다. 그러나 이것은 작동하지 않는 glGetUniformLocation (프로그램SolidHandle, “vPos”)에는 적용되지 않습니다. 이 예제에서는 렌더링할 때 텍스처를 쉐이더 변수와 연결하는 방법을 보여 주며, 이 예제에서는 텍스처를 쉐이더 변수와 연결하는 방법을 보여 주며, 이 예제에서 정점 쉐이더는 들어오는 모든 정점을 균일한 변수에 spcified값으로 배율조정합니다. 조각 쉐이더에서 균일한 벡터 값이 출력 색상으로 사용됩니다. 며칠 전에 그웬을 찾았고 프로젝트에 완벽한 GUI 도구 키트처럼 보였다고 생각했습니다. 그러나 오, 친애하는, 렌더러의 OpenGL 2 코드를 모두 살펴보십시오.

그래서 실제로 사용할 수 있도록 OpenGL 3 렌더러를 작성할 거라고 생각했지만 GLSL보다 CG에 훨씬 익숙하고 샘플을 작성하는 데 어려움을 겪었습니다. 이러한 균일 한 변수를 설정할 수 있다면 기본적으로 수행해야한다고 생각합니다. 샤더는 헤더 파일에 문자열로 저장되지만 모든 줄바및 백슬래시를 제거하여 보는 것이 너무 고통스럽지 않습니다. 각 균일 블록 내의 모든 유니폼을 반복합니다. glGetAttribLocation 이름으로 지정 된 특성 변수에 대 한 프로그램에 의해 지정 된 이전에 연결 된 프로그램 개체 쿼리 하 고 해당 특성 변수에 바인딩된 제네릭 정점 특성의 인덱스를 반환 합니다. 이름이 행렬 특성 변수인 경우 행렬의 첫 번째 열의 인덱스가 반환됩니다. 명명된 특성 변수가 지정된 프로그램 개체의 활성 특성이 아니거나 예약된 접두사 “gl_”로 이름이 시작되는 경우 -1 값이 반환됩니다. glUse프로그램은 렌더링에 필요합니다. 렌더링 호출을 실행하기 전에 렌더링하려는 프로그램을 사용해야 합니다. 텍스처샘플러의 위치가 -1인 이유는 코드를 주석으로 주석을 달았기 때문입니다. orthoTransform의 위치가 -1인 이유는 실제로 사용되지 않으며 최적화되지 않기 때문입니다.

아웃 포지션은 조각 쉐이더에서 사용되지 않아 orthoTransform 균일을 최적화합니다. 프로그램을 연결한 후 균일한 변수에 액세스할 수 있습니다. glGetUniformLocation을 사용하면 지정된 프로그램 개체 내에서 균일 한 변수의 위치를 검색할 수 있습니다. 해당 위치에 있으면 값을 설정할 수 있습니다. 변수를 찾을 수 없는 경우 -1이 반환됩니다. glUniform을 사용하면 균일 변수의 값을 설정할 수 있습니다. glGetUniformLocation 프로그램 개체 내에서 특정 균일 변수의 위치를 나타내는 정수를 반환 합니다. 이름은 공백이 없는 null 종료 된 문자열이어야 합니다. 이름은 구조, 구조 배열 또는 벡터 또는 행렬의 하위 구성 요소가 아닌 프로그램에서 활성 균일 변수 이름이어야 합니다. 이 함수는 이름이 프로그램에서 활성 균일 변수와 일치하지 않는 경우, 예약된 접두사 “gl_”로 이름이 시작되거나 이름이 원자성 카운터 또는 명명된 균일 한 블록과 연결되어 있는 경우 -1을 반환합니다.

glGetUniformLocation에서와 같은 유니폼의 위치를 가져오는 것은 glUseProgram 호출이 필요하지 않습니다.

Category: Uncategorized