public void InitializeInstancing(ITransformable[] instances) { InitializeInstancingStep1(); // instance buffer instanceVertices = new HardwareInstanceVertex[instances.Length]; for (int id = 0; id < instances.Length; ++id) { Matrix worldMatrix = instances[id].GlobalTransformation; Vector4 row1 = new Vector4(worldMatrix.M11, worldMatrix.M21, worldMatrix.M31, worldMatrix.M41); Vector4 row2 = new Vector4(worldMatrix.M12, worldMatrix.M22, worldMatrix.M32, worldMatrix.M42); Vector4 row3 = new Vector4(worldMatrix.M13, worldMatrix.M23, worldMatrix.M33, worldMatrix.M43); instanceVertices[id] = new HardwareInstanceVertex(row1, row2, row3); } InitializeInstancingStep3(instances.Length); }
public void InitializeInstancing(Matrix[] worldMatrices) { InitializeInstancingStep1(); // instance buffer instanceVertices = new HardwareInstanceVertex[worldMatrices.Length]; for (int id = 0; id < worldMatrices.Length; ++id) { Matrix worldMatrix = worldMatrices[id]; Vector4 row1 = new Vector4(worldMatrix.M11, worldMatrix.M21, worldMatrix.M31, worldMatrix.M41); Vector4 row2 = new Vector4(worldMatrix.M12, worldMatrix.M22, worldMatrix.M32, worldMatrix.M42); Vector4 row3 = new Vector4(worldMatrix.M13, worldMatrix.M23, worldMatrix.M33, worldMatrix.M43); instanceVertices[id] = new HardwareInstanceVertex(row1, row2, row3); } InitializeInstancingStep3(worldMatrices.Length); }