android native活动中的opengl es,gl_depth_test和gl_depth_buffer_bit不起作用

基尔
void setupViewPort(GLint width, GLint height) {
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();

GLfloat aspect = (GLfloat)width / (GLfloat)height;

glFrustumf(-1.0f, 1.0f, -1.0 / aspect, 1.0 / aspect, 1.5f, 40.0f);


glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

gluLookAt(0, 0, 5,                          //eyeXYZ
    0.0f, 0.0f, -1.0f,                  //centerXYZ
    0.0f, 1.0f, 0.0f);
}

和 - - - - - - - - - - - - - - - - - - - - - - - - - ----------------------------

void eglInitSetting(GLManager* _glManager) {
glManager = _glManager;

glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glDepthMask(true);
}

和 - - - - - - - - - - - - - - - - - - - - - - - - - ----------------------------

void eglInitDrawingObject() {
rect = new GLRectangle();
tri = new GLTriangle();
circle = new GLCircle();
sphere = new GLSphere();
cube = new GLCube();
point = new GLPoint();
ecube = new GLECube();


//initailize each oject...

glManager->object()->push_back(rect);
glManager->object()->push_back(tri);
glManager->object()->push_back(circle);
glManager->object()->push_back(sphere);
glManager->object()->push_back(cube);
glManager->object()->push_back(point);
glManager->object()->push_back(ecube);
}

和.... - - - - - - - - - - - - - - - - - - - - - - - --------------------------------

void eglDraw() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

i += 3;
GLfloat angle = (float)(M_PI / 180.0f) * i;

GLfloat x = (float)(cos(angle));
GLfloat y = (float)(sin(angle));
//GLfloat z = (float)0.0f;

point->move(x, y, 0.0f);

sphere->rotate(0.0f, ry += 0.5f, 0.0f);

rect->rotate(rx += 0.5f, 0.0f, 0.0f);

cube->rotate(rx, ry, 0.0f);
ecube->rotate(rx, ry, 0.0f);

tri->rotate(0.0f, 0.0f, rz += 100.0f);
circle->rotate(0.0f, 0.0f, rz += 100.0f);

glManager->object()->drawAll();
glFlush();
}

最后.. - - - - - - - - - - - - - - - - - - - - - - - - ------------------------------

static int engine_init_display(struct engine* engine) {

setupViewPort(engine->width, engine->height);

GLManager* glManager;
glManager = GLManager::getInstance();
glManager->object()->clearAll();
glManager->setAssetManager(engine->app->activity->assetManager);

eglInitSetting(glManager);
eglInitDrawingObject();

return 0;
}

static void engine_draw_frame(struct engine* engine) {
if (engine->display == NULL) {
    // No display.
    return;
}
eglDraw();

eglSwapBuffers(engine->display, engine->surface);
}

当我画一个立方体...

多维数据集显示不正确。

当我在android java版本上使用相同的代码时,win32 opengl

它画得完美..

请帮我..

我应该怎么办?

固体像素

这可能是因为您没有深度缓冲区。在为渲染上下文选择EGL配置时,请确保您请求的配置带有深度条目。

PS不相关,但请勿glFlush()手动致电调用eglSwapBuffers()会在需要时自动刷新,多余的刷新可能会导致多余的GPU处理。相信司机做正确的事...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS-Metal:如何清除深度缓冲区?类似于OpenGL中的glClear(GL_DEPTH_BUFFER_BIT)

来自分类Dev

glEnable(GL_DEPTH_TEST)不起作用?

来自分类Dev

不含GL_OES_packed_depth_stencil的OpenGL帧缓冲android(在Nexus 7 2012上)

来自分类Dev

Android LocationManager在特定活动中不起作用

来自分类Dev

渲染迭代在OpenGL ES中使用NDK,JNI的Android Native App中如何工作?

来自分类Dev

Android OpenGL ES 2:如何在主活动中将OpenGL活动用作片段

来自分类Dev

Android OpenGL ES 2:如何在主活动中将OpenGL活动用作片段

来自分类Dev

Android OpenGL ES 2.0纹理设置似乎不起作用

来自分类Dev

Android:活动动画不起作用

来自分类Dev

Pressable在React-Native Android中不起作用

来自分类Dev

使用eck.gl和nebula.gl的特定geojson URL在我的反应应用程序中不起作用

来自分类Dev

qt [OpenGL]在Android上不起作用

来自分类Dev

在Android中混合Cordova和本机活动

来自分类Dev

可扩展列表视图在Android中的片段活动中不起作用

来自分类Dev

可扩展列表视图在Android中的片段活动中不起作用

来自分类Dev

无法在 React Native 中设置活动和非活动图像

来自分类Dev

React Native Android Example不起作用

来自分类Dev

React Native Android模块不起作用

来自分类Dev

无法在Android OpenGL ES 2.0中画点

来自分类Dev

无法在Android OpenGL ES 2.0中画点

来自分类Dev

Android OpenGL ES中的灰度色深

来自分类Dev

剪贴板管理器活动在Android中不起作用

来自分类Dev

getText()和setText()在android代码中不起作用

来自分类Dev

getContext(),getApplicationContext()和getBaseContext在Android中不起作用

来自分类Dev

AsyncStorage getItem 和 setItem 在 Android 设备中不起作用

来自分类Dev

gl_deletebuffers在单独的线程中不起作用

来自分类Dev

Android没有定义GL_DEPTH_COMPONENT24?

来自分类Dev

Android Opengl:gl_FragColor的备用值

来自分类Dev

为什么OpenGL ES 3.1+上的gl_DEPTH_COMPONENT的glCheckFramebufferStatus始终为36054?

Related 相关文章

  1. 1

    iOS-Metal:如何清除深度缓冲区?类似于OpenGL中的glClear(GL_DEPTH_BUFFER_BIT)

  2. 2

    glEnable(GL_DEPTH_TEST)不起作用?

  3. 3

    不含GL_OES_packed_depth_stencil的OpenGL帧缓冲android(在Nexus 7 2012上)

  4. 4

    Android LocationManager在特定活动中不起作用

  5. 5

    渲染迭代在OpenGL ES中使用NDK,JNI的Android Native App中如何工作?

  6. 6

    Android OpenGL ES 2:如何在主活动中将OpenGL活动用作片段

  7. 7

    Android OpenGL ES 2:如何在主活动中将OpenGL活动用作片段

  8. 8

    Android OpenGL ES 2.0纹理设置似乎不起作用

  9. 9

    Android:活动动画不起作用

  10. 10

    Pressable在React-Native Android中不起作用

  11. 11

    使用eck.gl和nebula.gl的特定geojson URL在我的反应应用程序中不起作用

  12. 12

    qt [OpenGL]在Android上不起作用

  13. 13

    在Android中混合Cordova和本机活动

  14. 14

    可扩展列表视图在Android中的片段活动中不起作用

  15. 15

    可扩展列表视图在Android中的片段活动中不起作用

  16. 16

    无法在 React Native 中设置活动和非活动图像

  17. 17

    React Native Android Example不起作用

  18. 18

    React Native Android模块不起作用

  19. 19

    无法在Android OpenGL ES 2.0中画点

  20. 20

    无法在Android OpenGL ES 2.0中画点

  21. 21

    Android OpenGL ES中的灰度色深

  22. 22

    剪贴板管理器活动在Android中不起作用

  23. 23

    getText()和setText()在android代码中不起作用

  24. 24

    getContext(),getApplicationContext()和getBaseContext在Android中不起作用

  25. 25

    AsyncStorage getItem 和 setItem 在 Android 设备中不起作用

  26. 26

    gl_deletebuffers在单独的线程中不起作用

  27. 27

    Android没有定义GL_DEPTH_COMPONENT24?

  28. 28

    Android Opengl:gl_FragColor的备用值

  29. 29

    为什么OpenGL ES 3.1+上的gl_DEPTH_COMPONENT的glCheckFramebufferStatus始终为36054?

热门标签

归档