이것은 이상한 질문이지만 왜 glTexImage2d가 픽셀 데이터 형식과 Null 데이터 형식을 고려해야하는지 궁금합니다. glTexImage2d의 서명이glTexImage2d 및 Null 데이터
는void glTexImage2D(GLenum target, GLint level, GLint internalFormat,
GLsizei width, GLsizei height, GLint border, GLenum format,
GLenum type, const GLvoid * data);
internalFormat는 GPU에서 같은 데이터 형식을 저장하고 GLvoid에서 무엇을 기대하는 그래픽 드라이버에게 입력 원하는 그래픽 드라이버에게 역할입니다 ... * 데이터 . 그래서, 예를 들어 null을 전달하여 어떤 데이터도 전달하지 않으면 그래픽 드라이버가 형식과 형식을 신경 써야하는 이유는 무엇입니까? 때때로 이것은 그렇지 않기 때문에 이것은 이상한 질문입니다. 시간이 있고 모든 반복을 체크하지는 않았지만 깊이있는 텍스처를 만들 때 특히 그렇습니다. 또는 최근에 건너 왔던 부분은 GL_RED_INTEGER, GL_RG_INTEGER 등과 같은 Integer 유형 및/또는 해당하는 부분입니다. GL_R8I, GL_RGBA32UI와 같은 internalFormats. 반면, "단순한"유형은 GL_RGBA8, GL_RGBA32F 등과 같이 internalFormat에 반드시 대응할 필요가 없습니다. 몇 가지 이유로 이전의 특정 데이터 유형과 형식은 전달하지 않아도 정확해야합니다 모든 데이터. 왜 그런가요?
이전 버전의 구현에서 정확한 포맷을 지정하지 않고도 빠져 나올 수 있습니다. 즉,'int' 대신'GLint'로 선언됩니다. GLenum'은 *** (GL 2.x)에 익숙하기 때문에 (http://www.opengl.org/sdk/docs/man2/xhtml/glTexImage2D.xml) 1,2를 사용할 수 있기 때문에 , GL에 텍스쳐 이미지가 필요한 컴포넌트의 수를 알려주는'internalFormat'을위한 3 또는 4. –