void SelectObjects(GLint x, GLint y) // NEW //
{
GLuint selectBuff[64];
GLint hits, viewport[4];
glSelectBuffer(64, selectBuff);
glGetIntegerv(GL_VIEWPORT, viewport);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glRenderMode(GL_SELECT);
glLoadIdentity();
gluPickMatrix(x, viewport[3]-y, 2, 2, viewport);
gluPerspective(45.0f,ratio,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
DrawGLScene();
hits = glRenderMode(GL_RENDER);
if(hits>0) ProcessSelect(selectBuff);
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
}
큐브를 만들어서 마우스로 이리저리 굴리다가 마우스 오른쪽 클릭하면 해당 면의 텍스쳐가 바뀌게 하려고 하는데..
픽킹할때 2개 이상 겹치면 selectBuff[3], [7] .. 중에 가장 앞에 보이는 면을 선택하게 하고싶은데
그걸 어떻게 해야할까..??
참고로 3일 이상 고민했구, 오픈쥐엘 배운 적 없어.. ㅠㅠ
프로젝션 변환후 깊이 값은 뭐다?
아 굳이 프로젝션까지 갈 필요도 없나?