2009-03-04 7 views

답변

30

아이폰과 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); 
+0

을! 후속 조치로서이 후에 텍스처 투명도를 어떻게 높이겠습니까? – Dimitris

+2

색상 변조를 사용하십시오. glTexEnvx (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); 그런 다음 색상의 알파 구성 요소를 원하는 값으로 설정하십시오. glColor4f (255, 255, 255, alpha); – Virne

11

대답이 올바른지, 나는 몇 가지 작은 수정을 안드로이드 장치에 사용할 수 있었다. 내가 사용한 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); 
+0

'GL10.'을'gl.glBlendFunc (GL10.GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);에 저장하지 않았습니다. ' – Vincent

+0

고마워요, 그 오타를 수정하는 해답을 편집했습니다! 당신이이 ARGB 비트 맵 : \t \t \t \t BitmapFactory.Options는 = 새로운 BitmapFactory.Options을의 opts입니다 지정하는 것을 잊지 돈't, texImage2d로 설정하기 전에 비트 맵을 디코딩하는 – theisenp

+0

경우(); \t \t opts.inPreferredConfig = Bitmap.Config.ARGB_8888; \t \t 비트 맵 bitmap = BitmapFactory.decodeResource (context.getResources(), R.drawable.bitmap, opts); – jonathanrz

관련 문제