1. C# / Говнокод #5369

    +113

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    protected override void Draw(GameTime gameTime)
    {
        graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
    	
        //Новый массив матриц размером, соответствующим количеству костей в скелете модели
        Matrix[] absoluteTransformations = new Matrix[pen.Bones.Count];
    	
        //Скопировать матрицы трансформации костей в массив матриц
        pen.CopyAbsoluteBoneTransformsTo(absoluteTransformations);
    
        foreach (ModelMesh mesh in pen.Meshes)
        {
            foreach (BasicEffect effect in mesh.Effects)
            {
                effect.LightingEnabled = true;
                effect.EnableDefaultLighting();
                effect.Projection = projMatrix;
                effect.View = viewMatrix;
    
                //Установим новую мировую матрицу для родительской кости текущей сети
                //Так же здесь мы уменьшаем модель, применяя коэффициент масштабирования 0,13
                effect.World = absoluteTransformations[mesh.ParentBone.Index] * Matrix.CreateScale(0.13f);
            }
            //Выводим подготовленную сеть
            mesh.Draw();
        }
        base.Draw(gameTime);
    }

    костная анимация в XNA

    Запостил: Kornew, 24 Января 2011

    Комментарии (4) RSS

    • при каждой прорисовке происходит Полный перерасчёт всей сцены...
      Ответить
    • приятной отладки! код, расположенный в методе рисования, может вызваться совершенно неожиданно
      Ответить
    • на .NOT игра с 3D графикой это само по себе феерично
      Ответить

    Добавить комментарий