在ios端利用opengl建模,成功展示了一个3d模型,update内容如下
CGSize size = self.view.bounds.size;
float aspect = fabs(size.width / size.height);
GLKMatrix4 projectionMatrix = GLKMatrix4MakePerspective(GLKMathDegreesToRadians(bigSize), aspect, 1.0f, 10.0f);//GLKMathDegreesToRadians值越大,模型越小(0-180)
self.effect.transform.projectionMatrix = projectionMatrix;
GLKMatrix4 modelViewMatrix = GLKMatrix4Translate(GLKMatrix4Identity, 0.0f, 0.0f, 0.0f);
modelViewMatrix = GLKMatrix4Translate(modelViewMatrix, 0.0f, 0.0f, -2.0f); //平移
modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix, _rotation, 0.1f, xxx, 1.0f); //旋转
GLKMatrix4 modelViewProjectionMatrix = GLKMatrix4Multiply(projectionMatrix, modelViewMatrix);
GLint mat = glGetUniformLocation(0.0f, "modelViewProjectionMatrix");
glUniformMatrix4fv(mat, 1, GL_FALSE, modelViewProjectionMatrix.m);`
由于物体的坐标位置是在屏幕坐标范围外的,所以看不到物体。如何设置当物体显示的时候,物体实在屏幕中央?
简而言之,如何改变物体的中心点坐标或者某点坐标为屏幕中心点坐标?
해결, 드디어 모델 파일의 모든 정점 데이터를 기준으로 최대 및 최소 xyz 값을 구하고, xyz 값을 기준으로 모델의 중심점 좌표를 계산한 후 모델을 (0.0.0.0.0)에서 재설정했습니다. 0) 축척에 따라 화면 중앙에 모델이 표시되는 것을 드로잉으로 구현합니다. 적절한 사이즈는 모델의 최대 길이를 찾은 후 모델의 길이를 기준으로 화면에서 적절한 비율을 찾아야 합니다. 모든 xyz 값에 이 비율을 곱합니다. . . . 완벽한 솔루션. 누군가가 그것을 사용할 수 있기를 바랍니다!