OpenGL 光照在 Android 和 WebAssembly 上无法正常工作

问题描述 投票:0回答:1

我编写了一个使用 Qt 6 从 DAE COLLADA 加载 3D 模型的示例。源代码:load-3d-model-from-dae-opengl-window-qt6-cpp.zip

OpenGL 光照在桌面上工作正常,但在 Android 和 WebAssembly 上工作不正确:

桌面:

d138eecf-d8bd-4de3-86aa-c7669484c12b-image.png

安卓:

094dc9ee-508f-4ba4-87c8-28c1444262ba-image.png

网络组装:

ef0b3e64-6deb-46ad-984b-9a9610509561-image.png

补充:

我将这行代码

glEnable(GL_CULL_FACE);
添加到
OpenGLWindow::initializeGL()
。 Android 上的立方体问题已解决:

和 WebAssembly:

当我用 Mario 更改模型时,它可以在桌面上运行:

但它不适用于Android:

和 WebAssembly:

源代码:load-3d-model-from-dae-opengl-window-qt6-cpp.zip

交叉参考:

android c++ qt opengl-es webassembly
1个回答
0
投票

我尝试将深度缓冲区大小设置为 24:

OpenGLWindow::OpenGLWindow()
{
    setTitle("OpenGL ES 2.0, Qt6, C++");
    resize(350, 350);

    QSurfaceFormat surfaceFormat;
    surfaceFormat.setDepthBufferSize(24);
    setFormat(surfaceFormat);
}

它至少适用于 Windows 10 64 位的 WebAssembly:https://65d340535ef3fa042a6d1ce3--charming-malabi-d8d124.netlify.app/

在 Redmi 4X、Android 7 上:

© www.soinside.com 2019 - 2024. All rights reserved.