1.Create a View of OpenGL

In Android, Live2D models are drawn using OpenGL.
This is a explanation about the initialization of OpenGL ES.
You need to create a view to draw a model as well as to create a renderer for drawing to use OpenGL ES.
Androidでは、OpenGLを使用してLive2Dのモデルを描画しています。
この項目では、OpenGL ESの初期化について説明します。
OpenGL ES を使用するには、モデルを描画するためのビューの作成と、描画を行うレンダラーの作成が必要です。


・Create a view  ビューの作成

  1. public class SampleGLSurfaceView extends GLSurfaceView    // ・・・[1]
  2. {
  3.     SampleGLRenderer renderer ;                           // ・・・[3]
  4.  
  5.     public GLView(Context context)                        // ・・・[2]
  6.     {    
  7.         super(context);                                   // ・・・[2]
  8.  
  9.         renderer = new OpenGLRenderer();                  // ・・・[3]
  10.         setRenderer(renderer);                            // ・・・[4]
  11.     }    
  12. }

[1] : Take over the GLSurfaceView class.
[1]:
GLSurfaceViewクラスを継承します。
       Type the following manually by yourself as importing is not executed automatically.
インポートは自動ではされないので、
  1. import android.opengl.GLSurfaceView;
       を直接打ち込みます。

[2] : This is a constructor which is needed when the GLSurfaceView class is taken over.
        When GLSurfaceView is taken over, a red line under the class name which means the error appears, and adjust the mouse cursor to the class name to generate it from the quick fix function.
[2]: GLSurfaceView クラスを継承した際に必要なコンストラクタです。
       GLSurfaceView を継承すると、クラス名の下にエラーを示す赤い線が出るので、
       そのクラス名にマウスカーソルを合わせてクイックフィックス機能から生成します

[3] : Initialize the OpenGLRnderer class as a renderer.
        Refer to below article about the OpenGLRenderer.
[3]: レンダラーとして OpenGLRenderer クラスを初期化します。
       OpenGLRenderer クラスについては、下の項目で説明します。

[4] : Set the render.
        Drawing will start from here.
[4]: レンダーをセットします。
       ここで描画が開始されます。


・Create a renderer  レンダラー作成

  1. class OpenGLRenderer implements Renderer                            // ・・・[1]
  2. {
  3.     @Override
  4.     public void onDrawFrame(GL10 gl)                                // ・・・[2]
  5.     {
  6.         ・・・・・・;
  7.     }
  8.  
  9.     @Override
  10.     public void onSurfaceChanged(GL10 gl, int width, int height)    // ・・・[2]
  11.     {
  12.         ・・・・・・;
  13.     }
  14.  
  15.     @Override
  16.     public void onSurfaceCreated(GL10 gl, EGLConfig config)         // ・・・[2]
  17.     {
  18.         ・・・・・・;
  19.     }
  20. }

[1] : This is a class which mounts the Renderer interface.
        In this sample, it is used as the inner class of the SampleGLSurfaceView.
[1]: Renderer インターフェースを実装したクラスです。
       サンプルでは、 SampleGLSurfaceView クラスのインナークラスとして使用しています。

[2] : This is a method which is needed when mounts the Renderer interface.
        onDrawFrame is a method which is invoked from each frame.
        Set what you draw here.
        It has the vertical and horizontal values of the screen as the parameter, so it is used mainly to set the view port.
        onSurfaceCreated is a method which is invoked when the rendering is started and when the drawable context of OpenGL ES is regenerated.
[2]: Renderer インターフェースを実装した際に必要となるメソッドです。
       onDrawFrame は、毎フレーム呼び出されるメソッドです。
       描画するものはここで設定します。
       onSurfaceChanged は、画面のサイズが変更されたときに呼び出されるメソッドです。
       画面の縦横の値を引数として持っているので、主にビューポートを設定するのに使用します。
       onSurfaceCreated は、レンダリングの開始時と、OpenGL ESの描画コンテキストが再生成された時に呼び出されるメソッドです。



You can draw a screen in all black by instantiating the view class and pass the instance to setContentView().
ここまでで、ビュークラスをインスタンス化して、 setContentView() にインスタンスを渡せば、真っ黒な画面を描画することができます。

Comments