2011-01-22 2 views
3

푸시/팝 스택을 사용하여 그린 여러 객체에 관한 질문이 있습니다. OpenGl ES : 푸시/팝 매트릭스를 사용하여 그려진 여러 객체에 대한 Ray Picking


glMatrixMode(GL_MODELVIEW); 
    glLoadIdentity(); 
    glTranslatef(x,y,z); 
    glRotate(r,1,0,0);  
   
    glTranslate(-x,-y,-z);
 

    for (i=0 to 20) objects 
  
     glpushMatrix();  

   draw_object() 
  
     glpopMatrix();  
    
 end
  
  

각 오브젝트는 자신의 변형을 가진 단위 원이다. 그런 경우 광선 피킹이 어떻게 작동합니까? 광선 교차를 계산하기 위해 객체의 중심점을 어떻게 추적해야합니까? 나는 정말 어떤 도움을 주셔서 감사합니다.

답변

0

당신은 각 개체에 대해 현재 행렬을 얻을 수 있습니다 :

glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
glTranslatef(x,y,z); 
glRotate(r,1,0,0);  
   
glTranslate(-x,-y,-z);
  

for (i=0 to 20) objects 
  
    glpushMatrix();  
     ... some matrix transformations specific for the object 
     ... and get the final matrix and store it to object member 
     glGetFloatv(GL_MODELVIEW_MATRIX, (GLfloat*)&object->modelMatrix); 
     draw_object() 
  
    glpopMatrix(); 

단지 선이 정의 절대 공간에서 그걸 얻기 위해 좌표 지역 센터 포인트 객체 행렬을 곱 선 교차점을하고.