그런 다음 올바르게 표시 되었습니까? 예를 들어 직사각형에 둥근 구가 있으면서 배경에있는 다른 텍스처를 볼 수 있습니다.OpenGL ES에서 투명한 픽셀을 가진 텍스처를로드하려면 어떻게해야합니까?
편집 : 현재 텍스처를로드 할 때 소스 이미지의 투명한 픽셀이 검은 색으로 표시됩니다.
그런 다음 올바르게 표시 되었습니까? 예를 들어 직사각형에 둥근 구가 있으면서 배경에있는 다른 텍스처를 볼 수 있습니다.OpenGL ES에서 투명한 픽셀을 가진 텍스처를로드하려면 어떻게해야합니까?
편집 : 현재 텍스처를로드 할 때 소스 이미지의 투명한 픽셀이 검은 색으로 표시됩니다.
아이폰과 N95를 들어이 작품 :
당신이 GL_RGBA 내부 및 소스 형식 설정 원시 데이터로부터 텍스처를로드하는 경우.
glTexImage2D(GL_TEXTURE_2D, 0,
GL_RGBA,
textureWidth,
textureHeight,
0,
GL_RGBA,
GL_UNSIGNED_BYTE,
pointerToPixels);
그리고 렌더링 할 때, 알파 혼합을 가능 : @Virne에서 제공
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
대답이 올바른지, 나는 몇 가지 작은 수정을 안드로이드 장치에 사용할 수 있었다. 내가 사용한 myImage
객체는 투명도가있는 표준 .png 이미지입니다.
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, myImage, 0);
을 그리고 렌더링 할 때 (Virne처럼) 나는 알파 혼합 사용 가능 :
나는이를 사용하여 질감을 만든 덕분에 작동
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
gl.glEnable(GL10.GL_BLEND);
'GL10.'을'gl.glBlendFunc (GL10.GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);에 저장하지 않았습니다. ' – Vincent
고마워요, 그 오타를 수정하는 해답을 편집했습니다! 당신이이 ARGB 비트 맵 : \t \t \t \t BitmapFactory.Options는 = 새로운 BitmapFactory.Options을의 opts입니다 지정하는 것을 잊지 돈't, texImage2d로 설정하기 전에 비트 맵을 디코딩하는 – theisenp
경우(); \t \t opts.inPreferredConfig = Bitmap.Config.ARGB_8888; \t \t 비트 맵 bitmap = BitmapFactory.decodeResource (context.getResources(), R.drawable.bitmap, opts); – jonathanrz
을! 후속 조치로서이 후에 텍스처 투명도를 어떻게 높이겠습니까? – Dimitris
색상 변조를 사용하십시오. glTexEnvx (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); 그런 다음 색상의 알파 구성 요소를 원하는 값으로 설정하십시오. glColor4f (255, 255, 255, alpha); – Virne