2012-09-28 2 views
0

OpenGL 응용 프로그램에 일부 텍스트를 표시하고 문맥 작성시 & 창에 이미 SFML을 사용하고 있습니다. 나는 다른 라이브러리를 추가하고 싶지 않았고 SFML (2.0)이 제공 한 텍스트 렌더링을 사용해 보았습니다.텍스트가 잘못 렌더링됩니다. 각 문자는 흰색 직사각형입니다

렌더링되는 텍스트는 흰색 직사각형으로 구성됩니다 (직사각형은 대략 표시해야하는 문자의 높이와 일치합니다).

SFML 텍스트를 사용하기 전과 동일한 방법으로 OpenGL을 유지하는 몇 가지 메소드를 추가 한 후에는 다른 모든 것이 올바르게 렌더링됩니다. 이러한 메소드가 없으면 아무것도 렌더링되지 않지만 색상을 지우는 올바른 색상 버퍼가 사용됩니다.

텍스처링 및 조명을 위해 GLSL을 사용합니다 (필요한 경우 소스 & 스크린 샷 제공 가능).

는 코드 내가 사용

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
glLoadIdentity(); 

//rotations for looking around & moving the camera 
glRotatef(camera.rotation[0], 1.0f, 0.0f, 0.0f); 
glRotatef(camera.rotation[1], 0.0f, 1.0f, 0.0f); 
glRotatef(camera.rotation[2], 0.0f, 0.0f, 1.0f); 
glTranslatef(-5.0f+camera.translation[0], 
        camera.translation[1], -7.5f+camera.translation[2]); 

//set OpenGL light attributes 
passPosition(GL_LIGHT0, spotLight); 
passSpotDirection(GL_LIGHT0, spotLight); 
passPosition(GL_LIGHT1, greenLight); 
passPosition(GL_LIGHT2, redLight); 
passPosition(GL_LIGHT3, blueLight); 

glUseProgram(shaderProg.getId()); 
renderMap(); 
glUseProgram(0); 

window.pushGLStates();//supposed to prevent OpenGL & SFML conflicts 
window.draw(testText); 
window.popGLStates(); 

err = glGetError();//doesn't report any errors 
if(err != GL_NO_ERROR) 
{ 
    std::cout << "ERROR: " << err << std::endl; 
} 

window.display(); 

텍스트 인스턴스는 다음과 같이 생성된다 : 3.3 호환성 (을) 프로필 컨텍스트, 3.3 GLSL 및 2.0 SFML을 사용하여

sf::Font fontVera; 

std::cout << fontVera.loadFromFile("./res/Vera.ttf") << std::endl; 
//the font is existing, output for debugging purposes(and shows no error) 

sf::Text testText("hasdfas", fontVera, 32); 
testText.setPosition(10,10); 

I'am는 (소스에서 컴파일).

+0

"I'am 3.3 호환성 (을)를 사용하여 :

나는 SFML - OpenGL은 상태 충돌이 매우 광범위한 것으로 보인다 때문에 내가 다시 전환됩니다 의심 Profile Context, 3.3 GLSL "당신은 *** 절대하지 말아야 할 *** ARB_shader_objects도 사용하고 있습니다. GLSL 3.30을받을 수 있다는 보장은 없습니다. 확장 기능이 아닌 코어 쉐이더 기능을 사용해야합니다. 나는 그것이 당신의 문제인지는 모르겠지만 결코 좋은 생각은 아닙니다. –

+0

나는 ARB 기능을 대체했다, 문제는 아직도 거기있다. – Brainbot

+0

글꼴에 렌더링하려는 문자가 포함되어 있습니까? 글꼴이 성공적으로로드 되었습니까? – cppguy

답변

관련 문제