2009-06-24 3 views
1

OpenGL을 배우면서 조명에 들어가기 시작했습니다. 나는 조명과 빛을 0, 내 init 메소드에 기본값으로 그 주위/확산/반사를 설정할 수 있도록 다음 각 프레임 나는 같은 것을 할 : 그것은 약간 잘못된 경우 각 프레임의 위치를 ​​업데이트 할 때 OpenGL 표시등이 깜박임

glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
// do my 3rd-person camera transforms and rotations 
glLightfv(GL_LIGHT0, GL_POSITION, {0.1f, 0.0f, 0.0f}); 

은 (주, 나는 쓰고 있어요 Java에서 내 응용 프로그램을 JOGL을 사용하여 gl. GL을 다듬어서 C++ 모두에게 더 읽기 쉽도록 각 행에서 :) ^)

그런 다음 내 삼각형 등을 그려서 작업을 마칩니다. glFlush().

이상한 문제는 응용 프로그램을 실행할 때 표시등이 깜박이는 것입니다. 나는 glLightfv에 대한 다른 모든 호출을 내 전체 프로그램에서한다. (위에서 언급했듯이 init 메소드의 호출은 디버깅을 통해 한 번만 실행된다.) 깜박 거리며 화면이 찢어집니다. 나는 또한 내 씬 드로잉의 어떤 지점에서도 glDisable (GL_LIGHTING)을 사용하지 않는다; 조명 개체가 깜박 거려야한다고 생각하지 않습니다.

나는 또한 디버깅 목적으로 내 드로잉 코드의 청크를 주석 처리 했으므로 아무 것도 조명을 깨뜨리는 것 같지 않습니다. 물론 모든 장면을 썼고 어쨌든 장면을 조명하기 전에 테스트 했으므로 아무 것도 볼 수 없습니다. 이유가 틀렸어.

기본적으로 나는별로 갈 길이 없다고 알고 있지만 다른 누구에게도이 문제가 있습니까? 내가 찾을 수없는 간단한 해결책이 있습니까? 도움을 줄 수있는 추가 정보를 요청하십시오. 그리고 결국 단순히 대답을 얻을 수 없다면, 전체 렌더링 코드를 여기에 게시하고 문제를 보여줄 수있는 테스트 사례를 작성하고 작성해야 할 것입니다.

Here is a really bad animated gif I tried to make... 그러나 빛이 산발적으로 나오는 한, 내가 말하고있는 것을 보여줍니다. 불이 켜지는 프레임은 보일 것입니다. 또한 5fps로 느리게 움직이면 너무 깜박 거리지 않습니다. 좀 더 무작위로 켜거나 끕니다. 나는 그것을 얻지 못한다 ...

고마워!

답변

6

아하! 나는 이미 대답을 찾았습니다 ... 위치를 위해 3 개의 부동 소수점을 지정했습니다. 문서화 된대로 4를 원할 때 here입니다. 따라서 빛의 밝기에 영향을 미쳐야하는 네 번째 숫자는 메모리의 다른 임의의 영역에서 읽혀졌으며 물론 이상한 일이 발생했습니다.

죄송합니다.

+0

전혀 시간 낭비가 아닙니다! 우리 팀은이 하나를 알아 내려고 노력했습니다. – IDWMaster

+0

@ IDWMaster,이 대답을 찾은 것을 기쁘게 생각합니다! 죄송합니다. 팀이 너무 오래 걸렸습니다 ... – Ricket

관련 문제