BennyBox 3D GameEngine Mesh

时间:2017-07-18 12:20:17

标签: java opengl 3d game-engine

我使用https://github.com/BennyQBD/3DGameEngine中的3D游戏引擎作为创建球形网格的起点。稍后的目标是能够在运行时控制该网格的顶点。

在继续之前,我需要确保能够在程序上创建网格。将网格物体放入GameEngine有两种方法。

  • 导入OBJ文件。当你运行程序时,你会注意到一个带有纹理的Blender Monkey Head。
  • 创建顶点数组,索引(使用这两者创建网格)和材质。你会注意到,我在猴子头后面创造了一个小金字塔。至少对我来说,金字塔似乎是深褐色。然而,我应用了与我放在猴子身上相似的纹理。

我的项目位于https://github.com/TomaszNaglik/GameEngine。 目前的提交:77b5495

我设置游戏环境的游戏文件:com.base.game/TestSphere.java 我开始在第44行构建网格:

Vertex[] vertices = {   new Vertex(new Vector3f(-1,-1,0), new Vector2f(0,0)),
                            new Vertex(new Vector3f(0,1,0), new Vector2f(0.5f,0)),
                            new Vertex(new Vector3f(1,-1,0), new Vector2f(1.0f,0)),
                            new Vertex(new Vector3f(0,-1,1), new Vector2f(0.5f,1.0f))};

    int[] indices = new int[]   {3,1,0,
                                 2,1,3,
                                 0,1,2,
                                 0,2,3};

    Mesh pyramid = new Mesh(vertices, indices,true);
    Material material = new Material(new Texture("bricks2.jpg"), 1, 8,new Texture("bricks2_normal.png"), new Texture("bricks2_disp.jpg"), 0.04f, -1.0f);

    GameObject myMesh = new GameObject();
    AddObject(myMesh);
    myMesh.AddComponent(new MeshRenderer(pyramid, material)).AddComponent(new Rotate(0.005f));
    myMesh.GetTransform().GetPos().Set(5, 0, 5);

据我所知,问题可能出在网格或材质上。网格是可见的,但纹理不是。该材质适用于不同的导入网格。我基本上卡住了。我可以从这里走向哪个方向?

谢谢你。

Tomasz Naglik

0 个答案:

没有答案