float pixels[] = {
0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f
};
GLint texture;
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 2, 2, 0, GL_RGB, GL_FLOAT, pixels);
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
0
A
답변
0
glTexImage2D (...)
는 현재 바인딩 텍스처 이름을 텍스처 이미지 데이터를 제공 어떤 질감을 받고 있지 않다 원인 사람이, 내가 주어진 코드를 잘못하고있는 무슨 말해 줄 수. 코드의 문제점은 텍스처 이름을 생성하고 바인딩하기 전에 텍스처 이미지 데이터를 업로드한다는 것입니다 (texture
).
솔루션
은 매우 간단합니다 :/* Use a GLuint for OpenGL handles by the way */
GLuint texture;
glGenTextures (1, &texture);
glBindTexture (GL_TEXTURE_2D, texture);
/* After creating a texture name, and binding it, you have a valid context for
* the following API call.
*/
glTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, 2, 2, 0, GL_RGB, GL_FLOAT, pixels);
빠른 이미지 업로드를 들어, C 코드에 데이터를 저장하는 정수 기반의 데이터 형식을 사용하는 것이 좋습니다.
GL_RGB
텍스처를 만들 때 OpenGL은 일반적으로 채널당 8 비트 고정 소수점을 사용하는 텍스처를 만들고,
glTexImage2D (...)
은 이미지 데이터를 업로드 할 때 픽셀 데이터 변환을 수행합니다. 이를 픽셀 전송 변환이라고하며 다른 채널 레이아웃 또는 기본 데이터 형식의 내부 형식 및 픽셀 전송 형식을 사용할 경우
glReadPixels (...)
및
glTexImage2D (...)
등의 드라이버 오버 헤드가 증가합니다.
최신 버전의 OpenGL은 내부에서 사용할 정확한 형식을 지정하기도하므로 8 비트 고정 소수점을 보장하려면 내부 형식으로 GL_RGB8
을 사용할 수 있습니다. 픽셀 전송을 위해 GL_RGB
과 GL_UNSIGNED_BYTE
을 연결하면 "빠른 경로"로 전환되며 OpenGL과 OpenGL ES (픽셀 전송 변환을 허용하지 않음) 사이에서 코드를 더 이식성있게 만듭니다.
RGB8은 처음에는 좋은 형식이 아니기 때문에 드라이버는 RGBx8에이 패드를 두어 하드웨어에서의 두 가지 맞춤 요구 사항을 충족시킬 수 있습니다. 사용할 수없는 저장 공간이 8 비트 추가되므로 RGBA8은 결국 더 잘 작동하고 RGB 이미지 형식을 사용하여 메모리를 절약하지 않는다는 것을 분명하게 알 수 있습니다. 1, 2 및 4 채널 이미지 형식의 구성 요소의 합계와 같은 저장 공간을 실제로 사용하는 소수의 3 채널 형식 (예 : GL_R11F_G11F_B10F
) 만 있으면 일반적으로 갈 수 있습니다.
관련 문제
- 1. Three.js를 - 질감
- 2. GLSL 질감
- 3. 질감 루프
- 4. 질감 투명도
- 5. Android보기의 배경색과 질감 결합
- 6. PHP 컬은 유튜브 API에서 데이터를 가져 오는되지
- 7. 로드 질감 #Version을 130
- 8. 파이썬 코드에서 html 출력 얻기
- 9. 이 코드에서 서브 프로세스 출력
- 10. 질감 I 텍스처처럼 좌표 매핑
- 11. opengl 여러 객체, 질감 및 비 질감, 인공물
- 12. NStextField가있는 NSWindow 질감 배경
- 13. Direct3D의 질감 선 그리기
- 14. mediacodec의 표면 질감 유형
- 15. 보기의 테두리 질감
- 16. 배경 질감 반복하기
- 17. sknode의 색이나 질감
- 18. 질감 반복 문제
- 19. 질감 쿼드 렌더링
- 20. 다이렉트 결과를 렌더링 질감
- 21. 라인과 질감 함께 여기
- 22. 2D 질감/파이어 폭스
- 23. GLSL : 화면의 질감 샘플링
- 24. 원형 모양의 질감 libGdx
- 25. GLSL 2.0 색상 및 질감
- 26. 비트 맵이 너무 커서는 질감
- 27. Android Studio Libgdx 검정색 질감
- 28. 질감/패턴 인식/일치 일치?
- 29. OpenGL GL_TEXTURE_CUBE_MAP 질감 없음/검정
- 30. 질감 반복 및 반복 OpenGL
순서가 맞지 않는 일을하고 있습니다. :) –