gpt4 book ai didi

android - Android 上 OpenGL ES 2.0 中的 frustumM/setLookAtM

转载 作者:行者123 更新时间:2023-11-30 04:19:30 29 4
gpt4 key购买 nike

我正在使用 OpenGL ES 2.0 教程作为基础在 Android 平台上使用 OpenGL。有问题的代码是:

public void onSurfaceChanged( GL10 unused, int width, int height )
{ GLES20.glViewport( 0, 0, width, height );

float ratio = (float) width / height;
Matrix.frustumM( mProjMatrix, 0, -ratio, ratio, -1, 1, 1, 9.9999f );

Matrix.setLookAtM( mVMatrix, 0, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f );

muMVPMatrixHandle = GLES20.glGetUniformLocation( mProgram, "uMVPMatrix" );
}

特别是 frustumM 的“far”参数。每当该参数为 10 时,图像(三角形)就不会出现。任何其他值都可以。为什么?

我读了很多书——但都无济于事。甚至我的 friend (又名 Google)也无法帮助我。

提前致谢。

最佳答案

当您计算投影矩阵时,您将远平面指定为 9.9999f,这就是为什么在 View 矩阵计算中 eyeZ 值为 10 或更大将导致空图像的原因。你正在看你的截锥体之外。

请看这篇文章:http://www.lighthouse3d.com/tutorials/view-frustum-culling/

关于android - Android 上 OpenGL ES 2.0 中的 frustumM/setLookAtM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9490075/

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