/// <summary> /// Load stuff here /// </summary> protected override void Initialize() { var device = GraphicsDevice; base.Initialize(); vb = new VertexBuffer(device, typeof(Vertex), 6 ); cb = new ConstantBuffer(GraphicsDevice, typeof(ConstData) ); instDataGpu = new StructuredBuffer( device, typeof(InstData), InstanceCount, StructuredBufferFlags.None ); instDataCpu = new InstData[ InstanceCount ]; var rand = new Random(); for (int i=0; i<InstanceCount; i++) { instDataCpu[ i ].Offset = rand.NextVector2( new Vector2(-2.5f,-2f), new Vector2( 2.5f,2f) ); instDataCpu[ i ].Scale = rand.NextFloat( 0, 0.7f); instDataCpu[ i ].Rotation = rand.NextFloat( 0, MathUtil.TwoPi ); instDataCpu[ i ].Color = rand.NextVector4( Vector4.Zero, Vector4.One * 0.7f ); instDataCpu[ i ].TexId = rand.Next(4); } Reloading += InstancingDemo_Reloading; InstancingDemo_Reloading ( this, EventArgs.Empty ); }
/// <summary> /// Load stuff here /// </summary> protected override void Initialize () { var device = GraphicsDevice; base.Initialize(); vb = new VertexBuffer(device, typeof(Vertex), 6 ); vbi = new VertexBuffer(device, typeof(Instance), InstanceCount ); cb = new ConstantBuffer(GraphicsDevice, typeof(ConstData) ); instDataCpu = new Instance[ InstanceCount ]; var rand = new Random(); for (int i=0; i<InstanceCount; i++) { var offset = rand.NextVector2( new Vector2(-2.5f,-2f), new Vector2( 2.5f,2f) ); var scale = rand.NextFloat( 0, 0.7f); var rotation = rand.NextFloat( 0, MathUtil.TwoPi ); instDataCpu[ i ].InstanceTransform = new Vector4( offset, scale, rotation ); instDataCpu[ i ].InstanceColor = rand.NextVector4( Vector4.Zero, Vector4.One * 0.7f ); instDataCpu[ i ].InstanceTextureId = rand.Next(4); } // handle hot reload : Reloading += InstancingDemo2_Reloading; InstancingDemo2_Reloading( this, EventArgs.Empty ); }