Пример #1
0
        private void OnRender(object sender, OpenGL.GlControlEventArgs e)
        {
            GlControl gl_control = (GlControl)sender;


            if ((LastMotion == null) || (LastMotion.Finished == true))
            {
                // モーションをランダムに再生する
                // 名前なしのモーショングループから0~9番のモーションを乱数で選ぶ
                var motion_group = Asset.MotionGroups[""];
                int number       = new Random().Next() % motion_group.Length;
                var motion       = (CubismMotion)motion_group[number];
                LastMotion = Asset.StartMotion(CubismAsset.MotionType.Base, motion, false);
            }

            // モデルを更新する
            var elapsed = Timer.Elapsed;

            Timer.Restart();
            Asset.Update(elapsed.TotalSeconds);

            // モデルを描画する
            Gl.ClearColor(0.0f, 0.5f, 0.5f, 1.0f);
            Gl.Clear(ClearBufferMask.ColorBufferBit);
            Gl.Viewport(0, 0, gl_control.Width, gl_control.Height);
            Matrix mvp_matrix = DenseMatrix.CreateIdentity(4);

            mvp_matrix[0, 0] = 2.0f;
            mvp_matrix[1, 1] = 2.0f * gl_control.Width / gl_control.Height;
            RenderingManager.Draw(mvp_matrix);
        }