Godot レンダラのオプション
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Godot は、GLES2 と GLES3 の 2 つのレンダリング エンジンをサポートしています。プロジェクトを開始するときは、GLES2 または GLES3 のどちらかを選択し、可能であれば切り替えないようにしてください。プロジェクトでは、これら 2 つのレンダリング エンジンを行き来できますが、切り替えると追加の移行作業が必要になります。
Android では、この 2 つのレンダラはそれぞれ OpenGL ES 2.0 API と OpenGL ES 3.0 API を使用します。GLES3 レンダラの方が高度な機能を備えていますが、多くの Android デバイスに対応しているのは GLES2 レンダラの方です。また、まったく同じ入力シーンデータからでも、生成される視覚出力がレンダラによってわずかに違ってきます。この違いは、GLES2 レンダラが sRGB 色空間を使用し、GLES3 レンダラが線形色空間を使用するためです。
レンダラの選択
GLES2
GLES2 レンダラは、グラフィック要件があまりない 2D または 3D プロジェクトに最も適しており、ほぼすべてのアクティブな Android デバイスに対応しています。プロジェクトが古いデバイスでの動作を想定しており、それに対応する場合は、GLES2 が最適と考えられます。
Android の GLES2 レンダラには、圧縮テクスチャ形式としてサポートされているのが ETC1 のみであるという重要な制約があります。ETC1 はアルファ チャネルをサポートしていません。他のエンジンでは、回避策として、一方のテクスチャにカラーデータを含むデュアル ETC1 テクスチャを使用し、もう一方のテクスチャにアルファ チャネル データを含むデュアル ETC1 テクスチャを使用できます。Godot はこの作業をしません。Android の GLES2 レンダラを使用するプロジェクトでアルファ チャネルを使う場合は、非圧縮のテクスチャを使用する必要があります。非圧縮テクスチャはメモリを大量に消費し、圧縮テクスチャほどパフォーマンスは低下します。特にリソースが限られている古いデバイスでは、大きな非圧縮テクスチャを使用すると、メモリ制限に達するなど、問題が発生する可能性があります。
GLES2 レンダラでは、高度なレンダリング機能をご利用いただけない場合があります。GLES2 レンダラには次のような制限があります。
- アクティブなリアルタイム ライトによるパフォーマンス スケーリングの性能が低い。
- 高解像度範囲、屈折特性、画面空間の反射、画面空間のアンビエント オクルージョンなどのレンダリング機能をサポートしていない。
- シェーダーの複雑さに制限がある。
- リアルタイム グローバル イルミネーションのサポートがない。
- パーティクルの GPU アクセラレーションに対応していない。
GLES3
GLES3 レンダラは、OpenGL ES 3.0 をサポートするアクティブな Android デバイスの約 90% と互換性があります。OpenGL ES 3.0 がサポートされていないのは、アクティブな Android デバイスの中でも最も古いものに限られます。
GLES3 レンダラは OpenGL ES 3.0 デバイスと互換性がありますが、古いデバイスは許容可能なフレームレートで実行される可能性が低いことに注意してください。古いデバイスの一部では、グラフィック ドライバの OpenGL ES 3.0 実装にバグがある場合もあります。Android の GLES3 レンダラでドライバのバグを緩和する方法は限られています。これらは新しいデバイスではほとんど問題になりません。
Android の GLES3 レンダラは、ETC2 テクスチャ圧縮形式をサポートしています。ETC1 とは異なり、ETC2 ではアルファ チャネルがサポートされています。
詳細については、Godot のドキュメント - GLES2 と GLES3 の違いをご覧ください。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[null,null,["最終更新日 2025-07-27 UTC。"],[],[],null,["# Godot renderer options\n\nGodot supports two rendering engines: GLES2 and GLES3. You should choose\nbetween GLES2 or GLES3 when you start your project, and avoid switching if\npossible. Projects can switch back and forth between these two rendering\nengines, but switching requires additional migration work.\n\nOn Android, these renderers use the OpenGL ES 2.0 and OpenGL ES 3.0 APIs\nrespectively. The GLES3 renderer has more sophisticated capabilities and\nfeatures, while the GLES2 renderer is compatible with more Android devices. The\nrenderers also produce slightly different visual output for identical input\nscene data. This disparity is caused by the GLES2 renderer using a sRGB color\nspace while the GLES3 renderer uses a linear color space.\n\nChoosing a renderer\n-------------------\n\n### GLES2\n\nThe GLES2 renderer is most appropriate for 2D or 3D projects with modest graphic\nrequirements, and is compatible with virtually all active Android devices. If\nyour project is designed to run well on older devices, and you intend to support\nthem, GLES2 may be the best choice.\n\nAn important limitation of the GLES2 renderer on Android is that only one\ncompressed texture format is supported: ETC1. ETC1 doesn't support an alpha\nchannel. Other engines may use dual ETC1 textures as a workaround, with one\ntexture containing color data and a second texture containing the alpha channel\ndata. Godot doesn't do this. Projects using the GLES2 renderer on\nAndroid must use uncompressed textures when including an alpha channel.\nUncompressed textures use significantly more memory and don't perform as well as\ncompressed textures. Older devices with limited resources in particular may\nhave issues when using large uncompressed textures, including running into\nmemory limits.\n\nAdvanced rendering features might\nnot be available to the GLES2 renderer. Limitations of the\nGLES2 renderer include but are not limited to:\n\n- Poor performance scaling per active real-time light.\n- Lack of support for rendering features such as high-definition range, refraction properties, screen space reflections, or screen space ambient occlusion.\n- Restrictions on shader complexity.\n- Lack of real-time global illumination support.\n- Lack of GPU acceleration support for particles.\n\n### GLES3\n\nThe GLES3 renderer is compatible with the approximately 90% of active Android\ndevices that have OpenGL ES 3.0 support. Only the oldest of active Android\ndevices lack OpenGL ES 3.0 support.\n\nWhile the GLES3 renderer is compatible with\nany OpenGL ES 3.0 device, be aware that older\ndevices are less likely to run at acceptable\nframe rates. Some older devices also contain graphic driver bugs in their OpenGL\nES 3.0 implementations. The GLES3 renderer on Android has limited mitigations\nfor driver bugs. These issues are less of a concern on newer devices.\n\nThe GLES3 renderer supports the ETC2 texture compression format on Android.\nUnlike ETC1, ETC2 includes support for an alpha channel.\n\nFor more information, see the [Godot Documentation - Differences between GLES2 and GLES3](https://docs.godotengine.org/en/stable/tutorials/misc/gles2_gles3_differences.html)"]]