gpt4 book ai didi

java - Opengl es on android problem with object opsition on projection matrix

转载 作者:行者123 更新时间:2023-12-05 00:04:18 24 4
gpt4 key购买 nike

我尝试使用 opengl es 3 显示对象。一切正常,直到我尝试设置相机 View 。当我将 vPMatrix 与相机矩阵相乘时,投影矩阵对象就消失了。

            float[] projectionMatrix = new float[16];
float[] vPMatrix = new float[16];
float[] camera = new float[16];
Matrix.frustumM(
projectionMatrix,
0,
-1,
1,
-1,
1,
3,
7
);

Matrix.setLookAtM(
camera
, 0
//where i am
, 0f
, 0f
, 1f
//what i looking for
, 0f
, 0f
, -1f
//where is top
, 0f
, 1f
, 0f
);


Matrix.multiplyMM(
vPMatrix,
0,
projectionMatrix,
0,
camera,
0
);

最佳答案

很可能几何形状被 Viewing frustum 的近平面剪裁了.请注意,如果几何不在近平面和远平面之间,则几何将被剪裁。

在设置透视投影时,您指定到近平面的距离为 3,到远平面的距离为 7:

Matrix.frustumM(projectionMatrix, 0, -1, 1, -1, 1, 3, 7);

但是视点到世界中心的距离只有1:

Matrix.setLookAtM(camera, 0, 0f, 0f, 1f, ...);

您有 2 个选择。要么换个角度:

Matrix.setLookAtM(camera, 0, 0f, 0f, 5f, ...);

或者改变近平面和远平面。例如:

Matrix.frustumM(projectionMatrix, 0, -1, 1, -1, 1, 0.1, 100);

关于java - Opengl es on android problem with object opsition on projection matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64034609/

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