첫 번째 프로그램 - 삼각형 그리기 (2)

     이전 장에서 우리는 여러 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);

    스카이박스란 무엇인가요? 간단히 말해서 스카이박스는 6개의 면을 가진 거대한 큐브입니다. 필요한 경우 다음을 수행할 수 있습니다.

별이 빛나는 하늘, 하늘, 흰 구름, 우주 등을 시뮬레이션하기 위해 각 표면에 대해 서로 다른 질감을 설정합니다. 여기서는 간단히 설명하자면

두 스카이박스를 모두 검정색 배경으로 설정합니다. 스카이박스의 목적은 환경을 설정하는 것입니다.

    mScene 및 mCamera를 mView 개체로 설정합니다.

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

   View에 Scene을 설정하는 것은 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));
        }

   카메라의 투영을 설정한 후 뷰의 뷰포트 정보도 설정하는 것을 볼 수 있습니다. 여기에 관련된 내용이 있기 때문에

반환되는 정보는 Surface의 너비와 높이 정보이므로 여기서는 설정할 필요가 없습니다. 너비와 높이는 Surface에 저장하면 됩니다.

다른 곳에서도 설정할 수 있습니다.

   지금까지 Camera와 View에 대한 간단한 설정을 해왔는데, 특정 객체를 렌더링하려면 가장 중요한 것은 이를 구성하는 것입니다.

장면. 렌더링해야 하는 엔터티를 장면에 추가하면 그리기가 완료되면 개체를 렌더링할 수 있습니다.

나오세요

추천

출처blog.csdn.net/jake9602/article/details/128824110