나는 내가 분명히 잘못한 것을 알고있다. 어쨌든 나는 애니메이션을 만들기 위해 텍스처를 얻으려는 코드를 작성했는데, 무엇이 잘못되었거나 잘못했는지를 정말로 확신하지 못했습니다. 여기 질감이 움직이지 않는다
내 텍스처를로드하는 코드입니다 :if(PVRTTextureLoadFromPVR(c_szTextureFile, &m_uiTexture[0]) != PVR_SUCCESS)
{
PVRShellSet(prefExitMessage, "ERROR: Cannot load the texture\n");
return false;
}
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
//This loads in the second texture
if(PVRTTextureLoadFromPVR(c_szTextureFile2, &m_uiTexture[1]) != PVR_SUCCESS)
{
PVRShellSet(prefExitMessage, "ERROR: Cannot load the texture2\n");
return false;
}
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
을 여기에 질감이 여기
int time_Loc = glGetUniformLocation(m_ShaderProgram.uiId, "Time"); //This stores the location of the uniform
float updateTexture;
float timeElapsed = difftime(time(NULL), Timer) * 1000;
if(timeElapsed > 16.0f)
{
glUniform1f(time_Loc, updateTexture++); // passes the updated value to shader
}
을 조정하고 업데이트하려고 시도 내 타이머 기능 것은 내가 통과하고 내 쉐이더입니다 데이터를
uniform sampler2D sTexture;
uniform sampler2D sTexture2;
가변 배지 vec2 TexCoord; 다양한 배지 vec2 TexCoord2;
//This gets updated within the main code
uniform highp float Time;
void main()
{
mediump vec4 tex1 = texture2D(sTexture, TexCoord + Time);
mediump vec4 tex2 = texture2D(sTexture2, TexCoord2 + Time);
gl_FragColor = tex2 * tex1;
}
왜 이런 짓을 했을까? 'gl_FragColor = tex2 * tex1; '그리고 왜 안되지? 'gl_FragColor = 0.5 * tex2 + 0.5 * tex1; ' – DanP
죄송합니다. Dan 2.0은 ES 2.0을 처음 접했을뿐입니다. 당신이 알고있는 것을 구현할 것입니다. – DorkMonstuh
아니, 넌 틀리지 않아. 단지 vec4 * vec가 0.5 * vec4 + 0.5 * vec4와 다릅니다. 첫 번째는 색상 마스킹에 유용하고 두 번째는 두 개의 텍스처를 혼합하기위한 것입니다. 올바른 것은 성취하고자하는 바에 달려 있습니다. :) Btw, 텍스처를 바꾸어서 애니메이션을 사용하고 싶다면'uniform int u_mode;를 사용하는 것이 더 쉽지 않을까요? 그렇다면'if (u_mode == 0) gl_FragColor = tex1; else gl_FragColor = tex2;'? – DanP