gpt4 book ai didi

opengl-es - OpenGl ES : Ray Picking for multiple objects drawn using push/pop matrix

转载 作者:行者123 更新时间:2023-12-02 11:28:27 24 4
gpt4 key购买 nike

我有一个关于使用推送/弹出堆栈绘制多个对象的问题。与此类似。

<小时/>
    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
 

<小时/>

每个对象都是一个具有自己变换的单位圆。在这种情况下,光线拾取如何工作。我应该如何跟踪对象的中心点来计算射线相交。我真的很感谢任何帮助。

最佳答案

您可以获得每个对象的当前矩阵:

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();

在进行射线相交时,只需将对象矩阵与局部中心点坐标相乘即可将其置于定义射线的绝对空间中。

关于opengl-es - OpenGl ES : Ray Picking for multiple objects drawn using push/pop matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4768133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com