gpt4 book ai didi

android opengl深度测试失败

转载 作者:行者123 更新时间:2023-11-29 00:36:52 25 4
gpt4 key购买 nike

我在 Android Emulator 中遇到问题,我使用 gles 1 渲染纹理立方体并在边框中显示背面:

Problem image

我的深度测试设置是:

public void onSurfaceCreated(GL10 gl, EGLConfig config) {
gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set color's clear-value to black
gl.glClearDepthf(1.0f); // Set depth's clear-value to farthest
gl.glEnable(GL10.GL_DEPTH_TEST); // Enables depth-buffer for hidden surface removal
gl.glDepthFunc(GL10.GL_LEQUAL); // The type of depth testing to do
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST); // nice perspective view
gl.glShadeModel(GL10.GL_SMOOTH); // Enable smooth shading of color
gl.glDisable(GL10.GL_DITHER); // Disable dithering for better performance

我的观点:

public void onSurfaceChanged(GL10 gl, int width, int height) {
if (height == 0) height = 1; // To prevent divide by zero
float aspect = (float)width / height;

// Set the viewport (display area) to cover the entire window
gl.glViewport(0, 0, width, height);

// Setup perspective projection, with aspect ratio matches viewport
gl.glMatrixMode(GL10.GL_PROJECTION); // Select projection matrix
gl.glLoadIdentity(); // Reset projection matrix
// Use perspective projection
GLU.gluPerspective(gl, 45, aspect, 0.1f, 1000.f);

gl.glMatrixMode(GL10.GL_MODELVIEW); // Select model-view matrix
gl.glLoadIdentity(); // Reset

// You OpenGL|ES display re-sizing code here
// ......
}

最佳答案

看起来你的深度缓冲区可能没有足够的精度,所以面部有些重叠。

如果可能的话,我会建议减少你的深度范围,要么增加近平面(比如 1),要么减少远平面。平面之间的距离越远,现有范围的精度就越低。

关于android opengl深度测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12145420/

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