OpenGL ES 2.0에서 OpenGL ES 1.1과 유사한 결과를 얻는 방법을 알아낼 수 없습니다. 사실 Sampler2D (알파 채널과 텍스처를 프레임 버퍼에 혼합)와 Color를 설정하고 싶습니다.GLSL에서 텍스처와 색상을 함께 사용 하시겠습니까?
varying lowp vec4 colorVarying;
varying mediump vec2 texcoordVarying;
uniform sampler2D texture;
void main(){
gl_FragColor = texture2D(texture, texcoordVarying) + colorVarying;
}
그러나 AlphaValue 경우 나는 또한, colorVarying를 추가하기 때문에 일부는 "+ colorVarying는"(검은 색 내 alphachannel을 파괴 : - 텍스처가 색으로 색칠해야한다는 OpenGL ES에서와 같이 1.1 내 FragmentShader은 다음과 같습니다 0입니다) 그리고 이상한 그라디언트 효과를냅니다 ... & 텍스처는 고정 함수 파이프 라인에서 어떻게 결합 되었습니까?
void gl2Color4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a){
const GLfloat pointer[] = {r, g, b, a};
glVertexAttribPointer(ATTRIB_COLOR, 2, GL_FLOAT, 0, 0, pointer);
glEnableVertexAttribArray(ATTRIB_COLOR);
}
그리고 glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)를 사용하고 있습니다; glColor4f에 대한 나의 교체입니다 이 색상 1.0, 0.0, 1.0
... 어떻게 든 관련이 있다면, 여기에 1.0 내가 지금 무엇을 얻을 수 있습니다 :
을 그리고 싶어 :
이것을 달성하기위한 몇 가지 아이디어가 있습니까? 도움이 될 것입니다.
varying lowp vec4 colorVarying;
varying mediump vec2 texcoordVarying;
uniform sampler2D texture;
void main(){
gl_FragColor = texture2D(texture, texcoordVarying) * colorVarying;
}
주 GL_MODULATE
그보다는 색상으로 질감을 곱 :
감사합니다. 그것은 저를 위해 아주 잘 작동합니다. – Constantin