2012-08-27 4 views
0

두 개의 삼각형 평면에 텍스처를 표시하는 troube가 있습니다. 텍스처가 32x32 RGBA 비트 맵입니다. 안드로이드 용으로 개발 중입니다.OGL ES 2.0 평면상의 텍스처

내 평면은 다음과 같이 생성됩니다 : I 관리 무엇

float[] vertices = new float[24]; 
    // first triangle 
    vertices[0] = 0.0f; 
    vertices[1] = 0.0f; 
    vertices[2] = 0.0f; 
    vertices[3] = 1.0f; 

    vertices[4] = 0.0f; 
    vertices[5] = fHeight; 
    vertices[6] = 0.0f; 
    vertices[7] = 1.0f; 

    vertices[8] = fWidth; 
    vertices[9] = fHeight; 
    vertices[10] = 0.0f; 
    vertices[11] = 1.0f; 

    // second triangle 
    vertices[12] = fWidth; 
    vertices[13] = fHeight; 
    vertices[14] = 0.0f; 
    vertices[15] = 1.0f; 

    vertices[16] = fWidth; 
    vertices[17] = 0.0f; 
    vertices[18] = 0.0f; 
    vertices[19] = 1.0f; 

    vertices[20] = 0.0f; 
    vertices[21] = 0.0f; 
    vertices[22] = 0.0f; 
    vertices[23] = 1.0f; 

는 질감의 평면 디스플레이의 절반을 만드는 것입니다. 결과는 다음과 같습니다. Result http://www.imagecrate.de/u/1346090743_texture.png

So. 텍스처는 첫 번째 삼각형에서만 볼 수 있습니다. 삼각형이 잘못된 순서로 렌더링 될 때 문제가 될 수도 있지만 두 번째 삼각형의 순서를 변경하면 아무 효과가 없습니다. 또한 검은 색이 보이는 곳에 텍스처가 투명해야한다고 생각했습니다. 내가 잘못했을지도 모르는 어떤 생각? 여기

내 조각 쉐이더 코드 :

float[] mVertsData1 = 
     { 
       0.0f, 0.0f, // TexCoord 0 
       0.0f, 1.0f, // TexCoord 1 
       1.0f, 1.0f, // TexCoord 2 
       1.0f, 0.0f // TexCoord 3 
     }; 

나는 경우를 추가 할 수 있습니다, 내 렌더링 코드는 여기에 도움이 될 것입니다 있는지 확실하지 않습니다 :

precision mediump float; 
varying vec2 vTexCoord; 
uniform sampler2D sTexture; 
void main() 
{ 
    gl_FragColor = texture2D(sTexture, vTexCoord); 
} 

그리고 여기 내 텍스처 좌표 너는 그것을 필요로한다. 그러나 나는이 문제를 필요에 따라 더 크게하고 싶지 않다. 어쩌면 누군가 여기서 무슨 일이 일어날 지 알 수 있습니다!?

미리 감사드립니다. Zerd1984

답변

1

6 개의 꼭지점과 4 개의 텍스처 좌표가 있습니다. 둘 다 같은 수의 번호가 필요합니다 (6과 6).

각 정점에 대해 동일한 인덱스의 해당 정점에 대한 texcoord를 정의하려고합니다. 당신은 렌더링 문제로있을 때마다 glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

당신은 항상 당신의 렌더링 코드를 포함 일반적으로해야 정점 4 등 투명성

TEXCOORD 4 TEXCOORD 5 정점 5와 일치해야합니다, 당신은 혼합이 가능합니다 잘.

+0

정말 고마워요! 이제 괜찮아 보인다! 나는 하나의 비행기를 다루어야한다고 생각했는데, 왜 내가 4 개의 텍스트 코드를 사용했는지. 그러나 이것은 사실입니다! 고마워 – HashtagMarkus