2009-10-09 5 views
2

문서를 읽으면 glGetTexImage2d() 함수에 'type'매개 변수가 있음을 알 수 있습니다. 워드 프로세서 타입 파라미터는 "화소 데이터의 데이터 유형을 지정하는"이미지 포맷 GL_RGBA 및 GL_INT 때하지만 정확하게 무슨 OpenGL glGetTexImage2d 유형 매개 변수?

을 의미 하는가

등 GL_INT, GL_BYTE 같은 종류의 몇 가지 예를 제공 있다고 ? 그것은 각 채널에 대해 int입니까? 또는 int 전체 색상? 그리고 그것이 전체 색상의 int라면, GL_BYTE와 실제로 같지 않습니까? 각 채널을 한 바이트 씩 만드는 int에 4 바이트가 있기 때문에

답변

4

채널 당 int입니다. RGBA는 각 픽셀이 제공하는 데이터 배열에서 R, G, B 및 A int (int로 설정 한 경우)를 가짐을 의미합니다. RBGA (그것이 존재한다면 확실하지 않음)는 4 개의 int를 의미하지만 다르게 정렬됩니다. RGB는 단지 3 개 (알파 채널 없음)를 의미합니다.

4

유형 매개 변수는 OpenGL에 보내는 버퍼 내부의 데이터의 유효 유형을 지정합니다.

여기에 목표는 OpenGL을 당신의 버퍼에 걸어, 그리고 (width * height * internalformat)에 존재 얼마나 많은 요소를 알고 싶은 것하고 크기 & 해석 (type)된다는 점이다. (이 순서대로) 레드/그린/블루/알파 채널을 포함하는 부호없는 int 배열을 제공하는 경우

예를 들어, 당신은 지정해야합니다 :

  • target : GL_TEXTURE_2D
  • level : 0 (제외 당신은 밉맵을 사용하는 경우)
  • internalformat : 4 때문에 당신이 빨강, 녹색, 파랑,
  • width 알파 : 640
  • height : 480
  • border : 0
  • internal format : GL_RGBA 우리 채널의 순서를 OpenGL을 이야기하고, 그들이 무엇을 의미하는지
  • type : GL_UNSIGNED_INT는 OpenGL을 우리의 배열 내부 요소의 유형을 알려드립니다
  • pixels : 배열에 대한 포인터
+0

GL_UNSIGNED_INT를 지정하면 각 색상 구성 요소 (r, g, b, a)는 int (즉 32 비트)이거나 '전체'색상은 32 비트입니까? – horseyguy

+0

그래, GL_UNSIGNED_INT를 지정할 때 각 요소 (채널)는 부호없는 정수입니다. – NewbiZ