OpenGL C#球发射器

时间:2017-04-19 14:05:23

标签: c# opengl

我正在尝试让我的opengl程序从多维数据集中发出球。球有两种类型 - 小蓝球和大橙球。球应该由于重力而下落。但是目前它似乎只发出一个球,就是这样。

我尝试在一个循环中绘制球,如下所示:

     for (int i = 0; i < 100; i = i + 1)
        {
            Matrix4 mSphereOrange = Matrix4.CreateScale(mOrangeRadius) * Matrix4.CreateTranslation(mOrangePosition);

            SetUniformVariables(0.19125f, 0.0735f, 0.054f, 1, 0.647f, 0f, 0.256777f, 0.137622f, 0.086014f, 0.5f);
            GL.UniformMatrix4(uModelLocation, true, ref mSphereOrange);
            GL.BindVertexArray(mVAO_IDs[2]);
            GL.DrawElements(BeginMode.Triangles, mSphereModelUtility.Indices.Length, DrawElementsType.UnsignedInt, 0);

            Matrix4 mSphereBlue = Matrix4.CreateScale(mBlueRadius) * Matrix4.CreateTranslation(mBluePosition);

            SetUniformVariables(0, 0.1f, 0.06f, 0.0f, 0.50980392f, 0.50980392f, 0.50196078f, 0.50196078f, 0.50196078f, 10f);
            GL.UniformMatrix4(uModelLocation, true, ref mSphereBlue);
            GL.BindVertexArray(mVAO_IDs[2]);
            GL.DrawElements(BeginMode.Triangles, mSphereModelUtility.Indices.Length, DrawElementsType.UnsignedInt, 0);


        }

任何人都可以看到为什么这可能不起作用?或者建议一种更好的方法来创建一个发射器?

非常感谢任何帮助, 露

1 个答案:

答案 0 :(得分:0)

我确定问题与for循环有关。您可以在同一位置同时创建100个橙色球体和100个蓝色球体。