第一个程序-绘制三角形(二)

     在上一章我们创建了几个 Filament 对象:

    private void setupFilament() {
        mEngine = Engine.create();
        mRenderer = mEngine.createRenderer();
        mView = mEngine.createView();
        mScene = mEngine.createScene();
        mCamera = mEngine.createCamera(mEngine.getEntityManager().create());
    }

    本章我们去学习如何使用这些对象。我们首先为 mScene 对象设置天空盒:

        Skybox skybox = new Skybox.Builder().color(0.0f, 0.0f, 0.0f, 1.0f).build(mEngine);
        mScene.setSkybox(skybox);

    什么是天空盒呢? 简单来说 天空盒就是一个巨大的立方体,它有六个面,如果需要,我们可

以为每个面设置不同的纹理,可以模拟星空,天空,白云,宇宙等。这里,我们为了简单,仅仅

将天空盒都设置为黑色背景。天空盒的目的就是为了设置环境。

    将 mScene 和 mCamera 设置到 mView对象中:

        mView.setScene(mScene);
        mView.setCamera(mCamera);

   为View 设置 Scene 是为了能展示场景中的物体,为 View 设置 Camera 是为了能从不同的角度

观察物体。

   接下来,我们设置相机投影矩阵,投影分为正射投影和透视投影:

    public enum Projection {
        /** Perspective projection, objects get smaller as they are farther.  */
        PERSPECTIVE,
        /** Orthonormal projection, preserves distances. */
        ORTHO
    }

  由于我们是绘制一个简单的三角形,使用 ORTHO 就行:

        @Override
        public void onResized(int width, int height) {
            float zoom = 1.5f;
            float aspect = (float)width / (float)height;
            mCamera.setProjection(Camera.Projection.ORTHO,
                    -aspect * zoom, aspect * zoom, -zoom, zoom, 0.0, 10.0)

            mView.setViewport(new Viewport(0, 0, width, height));
        }

   我们看到在为相机设置投影之后,我们也同时设置了 View 的视口信息。因为 这里有相关的

回掉信息 也就是 Surface 的宽高信息,我们也可以不在这里设置,可以将宽高保存起来,在

别处设置也可以。

   到目前为止我们将 Camera,View 做了简单设置,如果要要渲染具体物体,主要还是配置

Scene。将我们需要渲染的entity 实体 加入到 Scene  中,在 draw 到时候就可以将物体渲染

出来&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后知后觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值