2017-04-19 48 views
-1

我想让我的opengl程序从多维数据集发出球。有两种类型的球 - 一个小蓝色和一个更大的橙色。球应该因重力而下落。然而目前它似乎只是排出每个球中的一个而已。OpenGL C#球发射器

我曾尝试画一个圈里面的球,如下所示:

 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); 


     } 

任何人都可以明白为什么这可能无法正常工作?或者建议一个更好的方法来创建一个发射器?

任何帮助将不胜感激, 露西

回答

0

我敢肯定,这个问题与相关的循环。您可以在同一位置同时创建100个橙色球体和100个蓝色球体。

+0

啊好吧,你认为他们只是彼此重叠?我认为,因为球瞬间开始下降,你会看到其他人,但我可能是错的。 – lCopp

+1

是的,球是在彼此顶部。参与“我”改变每个球的位置或施加不同的力量或在一段时间间隔内不要一次抽球。 –