コード例 #1
0
        internal static void DrawBatched()
        {
            bool rebuild = false;

            if (m_group == null || rebuild)
            {
                if (m_group != null)
                {
                    m_group.Clear();
                }

                //m_group = new MyClassicInstancing();
                m_group = new MySoftInstancingGroup2();

                HashSet <string> testModels = new HashSet <string>();
                testModels.Add("Models//Cubes//Large//StoneCube.mwm");
                testModels.Add("Models//Cubes//Large//BattlementAdvancedRoundLarge.mwm");
                testModels.Add("Models//Cubes//large//RoofTileCornerRoundTallFake.mwm");
                testModels.Add("Models//Cubes//Large//StoneSlopeStairs.mwm");
                testModels.Add("Models//Debris//Debris10.mwm");
                testModels.Add("Models//Cubes//small//RotorBlockCogWheel2.mwm");
                testModels.Add("Models//Cubes//Large//BattlementStoneCorner.mwm");
                testModels.Add("Models//Cubes//Large//GeneratedStoneBattlementCorner.mwm");
                testModels.Add("Models//Cubes//Large//HouseStoneRoundedFull.mwm");
                testModels.Add("Models//Cubes//large//RoofTileCornerRoundTallFake.mwm");
                testModels.Add("Models//Cubes//large//StoneBattlementAdvancedRound_5.mwm");
                testModels.Add("Models//Cubes//large//RoofTileSlopeWoodFakeTopRight.mwm");
                testModels.Add("Models//Cubes//Large//CrossRoad.mwm");

                var rnd = new Random();

                for (int i = 0; i < 100; i++)
                {
                    for (int j = 0; j < 100; j++)
                    {
                        for (int k = 0; k < 2; k++)
                        {
                            m_group.AddInstance(testModels.ElementAt(rnd.Next(0, testModels.Count)), Matrix.CreateTranslation(50.0f + i * 4.0f, 150.0f + k * 4.0f, 50.0f + (j + 0) * 4.0f));
                        }
                    }
                }

                m_group.SendToGpu();

                rebuild = false;
            }

            m_group.Draw();
        }
コード例 #2
0
        internal static void DrawBatched()
        {
            bool rebuild = false;

            if(m_group == null || rebuild)
            {
                if(m_group != null)
                {
                    m_group.Clear();
                }

                //m_group = new MyClassicInstancing();
                m_group = new MySoftInstancingGroup2();

                HashSet<string> testModels = new HashSet<string>();
                testModels.Add("Models//Cubes//Large//StoneCube.mwm");
                testModels.Add("Models//Cubes//Large//BattlementAdvancedRoundLarge.mwm");
                testModels.Add("Models//Cubes//large//RoofTileCornerRoundTallFake.mwm");
                testModels.Add("Models//Cubes//Large//StoneSlopeStairs.mwm");
                testModels.Add("Models//Debris//Debris10.mwm");
                testModels.Add("Models//Cubes//small//RotorBlockCogWheel2.mwm");
                testModels.Add("Models//Cubes//Large//BattlementStoneCorner.mwm");
                testModels.Add("Models//Cubes//Large//GeneratedStoneBattlementCorner.mwm");
                testModels.Add("Models//Cubes//Large//HouseStoneRoundedFull.mwm");
                testModels.Add("Models//Cubes//large//RoofTileCornerRoundTallFake.mwm");
                testModels.Add("Models//Cubes//large//StoneBattlementAdvancedRound_5.mwm");
                testModels.Add("Models//Cubes//large//RoofTileSlopeWoodFakeTopRight.mwm");
                testModels.Add("Models//Cubes//Large//CrossRoad.mwm");

                var rnd = new Random();

                for (int i = 0; i < 100; i++)
                {
                    for(int j=0; j < 100; j++)
                    {
                        for (int k = 0; k < 2; k++ )
                        {
                            m_group.AddInstance(testModels.ElementAt(rnd.Next(0, testModels.Count)), Matrix.CreateTranslation(50.0f + i * 4.0f, 150.0f + k * 4.0f, 50.0f + (j + 0) * 4.0f));
                        }
                    }
                }

                m_group.SendToGpu();

                rebuild = false;
            }

            m_group.Draw();
        }