WebGL + SDL + Emscripten

我最终使用 SDL 1 和 Emscripten 将 Mika 移植到 WebGL。

接下来我将描述需要在代码中更改哪些内容才能成功完成 JavaScript 中的构建。

  1. 使用 SDL 1 而不是 SDL 2。目前 emscripten 有一个 SDL 2 端口,但我发现使用 emscripten 内置的 SDL 1 更合适。上下文不是在窗口中初始化的,而是使用 SDL_SetVideoMode 和 SDL_OPENGL 标志初始化的。使用 SDL_GL_SwapBuffers() 命令绘制缓冲区
  2. 由于 JavaScript 循环的方式–渲染被放置在一个单独的函数中,并使用 emscripten_set_main_loop
  3. 函数定期调用

  4. 还必须使用密钥“-s FULL_ES2=1”进行组装
  5. 我不得不放弃 assimp 库,从文件系统加载模型,并从磁盘加载纹理。所有必需的缓冲区都已加载到桌面版本上,并插入到 c 头文件中,以便使用 emscripten 进行组装。

代码:
https://github.com/demensdeum/OpenGLES3-Experiments/tree/master/9-sdl-gles-obj-textured-assimp-miku-webgl/mikuWebGL

文章:
http://blog.scottlogic.com/2014/03/12/native-code-emscripten-webgl-simmer-gently.html
https://kripken.github.io/emscripten-site/docs/porting/multimedia_and_graphics/OpenGL-support.html

型号:
https://sketchfab.com/models/7310aaeb8370428e966bdcff414273e7