WebGL + SDL + Emscripten

最終的に、SDL 1 と Emscripten を使用して、Mika を WebGL に移植しました。

次に、JavaScript でのビルドを正常に完了するためにコードの何を変更する必要があるかを説明します。

<オル>

  • SDL 2 の代わりに SDL 1 を使用します。現時点では、emscripten 用の SDL 2 ポートがありますが、emscripten に組み込まれている SDL 1 を使用する方が適切であることがわかりました。コンテキストはウィンドウ内では初期化されませんが、SDL_SetVideoMode と SDL_OPENGL フラグを使用して初期化されます。バッファは SDL_GL_SwapBuffers() コマンドを使用して描画されます
  • JavaScript のループ方法による –レンダリングは別の関数に配置され、その定期的な呼び出しは emscripten_set_main_loop
  • 関数を使用して行われます。

  • アセンブリはキー “-s FULL_ES2=1“ を使用して実行する必要もあります
  • assimp ライブラリを放棄し、ファイル システムからモデルをロードし、ディスクからテクスチャをロードする必要がありました。必要なバッファはすべてデスクトップ バージョンにロードされ、emscripten を使用してアセンブリ用の C ヘッダー ファイルに挿入されました。
  • コード:
    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

    ThreeJS に基づく WebGL 上の悪いロボット

    本日、ゲーム Bad Robots のバージョンが、ライブラリ ThreeJS.
    >これは、Flame Steel Engine での最初の OpenGL (WebGL) ゲームです。
    ここで再生できます。
    http://demensdeum.com/games/BadRobotsGL/

    ThreeJS に基づく IOSystem ソース コードは、ここから入手できます。
    https://github.com/demensdeum/FlameSteelEngineGameToolkitWeb

    悪いロボット – HTML5ゲーム

    Flame Steel Engine の最初のゲーム。

    http://demensdeum.com/games/BadRobots/BadRobots.html

    画面上のすべてのロボットを撃ってください!

    著者:

    ロボットアニメーション– http://opengameart.org/content/xeon-ultimate-smash-friends
    音楽– Killers Kevin MacLeod (incompetech.com)

    ソース コード:

    https://github.com/demensdeum/BadRobots
    https://github.com/demensdeum/FlameSteelEngine
    https://github.com/demensdeum/FlameSteelEngineGameToolkit