0
OpenG-ES 2.0으로 일부 개체를 그리는 응용 프로그램이 있습니다. 일부 삼성 장치에서 응용 프로그램이 렌더링되지 않습니다. 디버깅을 시도했는데 정점 및 조각 셰이더에 문제가있는 것 같습니다. 나는 문제가 무엇인지 확실하지 않다삼성 기기의 OpenGL 렌더링 문제
varying lowp vec4 DestinationColor;
varying lowp vec2 TexCoordOut; // New
uniform sampler2D Texture; // New
varying lowp float flagS;
varying lowp float flagClubColorS;
void main(void) {
gl_FragColor = DestinationColor;
if(flagS == 1.0){
gl_FragColor = DestinationColor;
}
else if (flagClubColorS == 1.0) {
gl_FragColor = DestinationColor;
}
else if (flagS == 0.0){
gl_FragColor = DestinationColor * texture2D(Texture, TexCoordOut); // New
}
}
그러나 나는 질감의 유니폼을 얻을 -1 내가 언급하는 경우 :
버텍스 쉐이더 :
attribute vec3 Position;
attribute vec4 SourceColor;
varying vec4 DestinationColor;
uniform mat4 Projection;
uniform mat4 Modelview;
uniform mat4 CordTransform;
attribute float flag;
attribute float clubColorFlag;
attribute vec2 TexCoordIn; // New
varying vec2 TexCoordOut; // New
varying float flagS;
varying float flagClubColorS;
void main(void) {
gl_Position = Projection * Modelview * vec4(Position,1.0);
flagS = flag;
flagClubColorS = clubColorFlag;
if (clubColorFlag == 1.0) {
DestinationColor = vec4(0.190,0.309,0.309,1.0);
}
else {
DestinationColor = SourceColor;
}
exCoordOut = TexCoordIn;
gl_PointSize = 1.0;
}
조각 쉐이더 여기
내 쉐이더 코드 fragment shader의 if-else 부분을 꺼내십시오. 다른 시나리오에서는 0입니다. 두 쉐이더는 오류없이 컴파일됩니다.정밀도와 관련이 있습니까? 문제를 디버그하도록 도와주세요.
* 텍스처가 균일 해집니다. -1 *이 문제가 확실합니까? 셰이더에서 유니폼을 사용하지 않으면 (주석 처리되어 있음) 컴파일러가 제거 할 수 있습니다. 유니폼은 아무데도 사용되지 않기 때문에 -1을 반환합니다. – Tim
디버깅 중에 코드를 주석 처리했습니다. UN 코드 주석을 사용하더라도 장치에서 렌더링이 실패합니다. 그런 경우 텍스쳐 유니폼은 0입니다. – Ashwini
0은 유니폼에 대한 합법적 인 값입니다. 아무 문제가 없습니다. – Tim