Kanzi でOpenGL ES 3.0+を使用する

Kanzi は、OpenGL ES 3.0、3.1、および3.2のシェーディング言語(GLSL ESバージョン300、310、320)をサポートしています。OpenGL ES 3.0+を使用すると、整数テクスチャ、浮動小数点、および複数のレンダーターゲットを使用できます。例えば、これによりレンダリングされた画像の精度が向上し、より見栄えの良いポストプロセッシングエフェクトを適用したり、テクスチャやキューブマップテクスチャにHDRを使用したり、シームレスなキューブマップを作成したりできます。OpenGL ES 3.2では、ジオメトリシェーダーとテッセレーションシェーダーを使用できます。

OpenGL ES 3.0+を使用する前に、ターゲットプラットフォームがそのAPIバージョンをサポートしていることを確認してください。

Kanzi でOpenGL ES 3.0+を使用するには、

  1. Kanzi Studio メインメニューで、Project > Properties を選択し、Target Graphics API を OpenGL ES 3.0、OpenGL ES 3.1、または OpenGL ES 3.2 に設定します。

    ../../_images/project-properties.png ../../_images/target-graphics-api-opengl-es-30.png
  2. シェーダーソースファイルの最初の行に、OpenGL ES 3.0+ バージョンタグを追加します。

    • OpenGL ES 3.0の場合、追加

      #version 300 es
      
    • OpenGL ES 3.1の場合、追加

      #version 310 es
      
    • OpenGL ES 3.2の場合、追加

      #version 320 es
      

テクスチャの色フォーマットの設定

Kanzi Studio プロジェクトに .dds 形式のHDRおよび浮動小数点画像をインポートし、これらの画像を使用するテクスチャのカラーフォーマットを設定できます。

テクスチャのカラーフォーマットを設定するには:

  1. Kanzi Studio メインメニューで、Project > Properties を選択し、Target Graphics API を OpenGL ES 3.0 以降に設定します。

    ../../_images/project-properties.png ../../_images/target-graphics-api-opengl-es-30.png
  2. Library > Resource Files > Images で、色フォーマットを設定したい画像を選択します。

    ../../_images/library-resource-files-images.png
  3. Properties で、設定します:

    • Target Format から Raw へ

    • Color Format in Raw を、Kanzi がテクスチャを解釈するために使用する色フォーマットに変更します。

    ../../_images/target-format-raw.png ../../_images/color-format-in-raw.png
  4. Library > Materials and Textures > Textures で、前のステップで色フォーマットを設定した画像を使用するテクスチャを選択します。Properties で、設定します:

    • Wrap Mode から Clamp へ

    • Mipmap Mode から Linear または Nearest へ

    ../../_images/mipmapmode-linear-wrap-mode-clamp.png

レンダーターゲットテクスチャのフォーマットを設定する

レンダーターゲットテクスチャのフォーマットを設定して、GPUが使用するターゲットピクセルフォーマットを定義します。

レンダーターゲットテクスチャの形式を設定するには:

  1. Kanzi Studio メインメニューで、Project > Properties を選択し、Target Graphics API を OpenGL ES 3.0 以降に設定します。

    ../../_images/project-properties.png ../../_images/target-graphics-api-opengl-es-30.png
  2. Library > Materials and Textures > Textures で、Render Target Texture を選択するか作成します。

  3. Properties で、使用したいターゲットピクセルフォーマットに Format を設定します。

    ../../_images/render-target-texture-es-30-format.png
  4. レンダーターゲットテクスチャが整数ターゲット形式の場合、Minification Filter および Magnification Filter プロパティを Nearest に設定してください。

ランタイムグラフィックスバックエンドの選択

Windowsオペレーティングシステムでは、Application::onConfigure 関数内、application.cfg 内、またはコマンドライン引数を使用して、OpenGL ESまたはOpenGLを使用するかどうかを選択できます。ターゲットがコマンドライン引数をサポートしている場合に限ります。

コマンドラインでは、以下を使用します。

  • -gles を使用して OpenGL ES を利用する

  • -gl を使用して OpenGL を利用する

  • EGLを使用する -egl

  • WGLを使用する -wgl

  • GLXを使用する -glx

application.cfg で

SurfaceClientAPI = clientApi

GraphicsContextAPI = contextApi

Application::onConfigure で

configuration.defaultSurfaceProperties.clientAPI = clientApi;

configuration.defaultSurfaceProperties.contextAPI = contextApi;

値

clientApi

OpenGL ESを使用するには:

OpenGL を使用するには、

contextApi

WGL を使用するには、

EGL を使用するには、

GLX を使用するには、

application.cfg の例

# Sets the surface target for OpenGL rendering and WGL graphics context.
SurfaceClientAPI = gl
GraphicsContextAPI = wgl

Application::onConfigure の例

// Sets the surface target for OpenGL rendering and WGL graphics context.
configuration.defaultSurfaceProperties.clientAPI = SurfaceClientAPI::OpenGL;
configuration.defaultSurfaceProperties.contextAPI = GraphicsContextAPI::WGL;

AndroidエミュレーターでOpenGL ES 3.0を有効にする

OpenGL ES APIレベルが2.0より高いアプリケーションをAndroidエミュレーターにデプロイする場合、AndroidエミュレーターでOpenGL ES 3.0を有効にしてください。

AndroidエミュレーターでOpenGL ES 3.0を有効にするには:

  1. Android Studioで、Device Manager で、実行中の仮想デバイスに対して Extended Controls を選択します。

    ../../_images/android-studio-device-manager-extended-controls.png
  2. Extended Controls ウィンドウで、Settings > Advanced を選択します。OpenGL ES API level オプションを Renderer maximum (up to OpenGL ES 3.1) に設定します。

    ../../_images/extended-controls-settings-opengles-api-level.png
  3. 変更を適用するには、Android Emulator を再起動してください。

関連項目

テクスチャ (Textures)

レンダーターゲットテクスチャ (Render Target Texture) を使用する

シェーダー

シェーダーを編集する

アプリケーション構成リファレンス