@Override
  public void initScene() {
    mCameraLeft = new Camera();
    mCameraLeft.setNearPlane(.01f);
    mCameraLeft.setFieldOfView(getCurrentCamera().getFieldOfView());
    mCameraLeft.setNearPlane(getCurrentCamera().getNearPlane());
    mCameraLeft.setFarPlane(getCurrentCamera().getFarPlane());

    mCameraRight = new Camera();
    mCameraRight.setNearPlane(.01f);
    mCameraRight.setFieldOfView(getCurrentCamera().getFieldOfView());
    mCameraRight.setNearPlane(getCurrentCamera().getNearPlane());
    mCameraRight.setFarPlane(getCurrentCamera().getFarPlane());

    setPupilDistance(mPupilDistance);

    mLeftQuadMaterial = new Material();
    mLeftQuadMaterial.setColorInfluence(0);
    mRightQuadMaterial = new Material();
    mRightQuadMaterial.setColorInfluence(0);

    mSideBySideScene = new RajawaliScene(this);

    mLeftQuad = new ScreenQuad();
    mLeftQuad.setScaleX(.5);
    mLeftQuad.setX(-.25);
    mLeftQuad.setMaterial(mLeftQuadMaterial);
    mSideBySideScene.addChild(mLeftQuad);

    mRightQuad = new ScreenQuad();
    mRightQuad.setScaleX(.5);
    mRightQuad.setX(.25);
    mRightQuad.setMaterial(mRightQuadMaterial);
    mSideBySideScene.addChild(mRightQuad);

    addScene(mSideBySideScene);

    mViewportWidthHalf = (int) (mDefaultViewportWidth * .5f);

    mLeftRenderTarget = new RenderTarget("sbsLeftRT", mViewportWidthHalf, mDefaultViewportHeight);
    mLeftRenderTarget.setFullscreen(false);
    mRightRenderTarget = new RenderTarget("sbsRightRT", mViewportWidthHalf, mDefaultViewportHeight);
    mRightRenderTarget.setFullscreen(false);

    mCameraLeft.setProjectionMatrix(mViewportWidthHalf, mDefaultViewportHeight);
    mCameraRight.setProjectionMatrix(mViewportWidthHalf, mDefaultViewportHeight);

    addRenderTarget(mLeftRenderTarget);
    addRenderTarget(mRightRenderTarget);

    try {
      mLeftQuadMaterial.addTexture(mLeftRenderTarget.getTexture());
      mRightQuadMaterial.addTexture(mRightRenderTarget.getTexture());
    } catch (TextureException e) {
      e.printStackTrace();
    }
  }
 private Material getStandardMaterial() {
   Material newMaterial = new Material();
   newMaterial.enableLighting(true);
   //        newMaterial.setDiffuseMethod(new DiffuseMethod.Lambert());
   newMaterial.setColorInfluence(0);
   Bitmap transparentBitmap = drawTextToBitmap("");
   try {
     newMaterial.addTexture(new Texture("placeholder", transparentBitmap));
   } catch (TextureException e) {
     e.printStackTrace();
   }
   return newMaterial;
 }
  private void createFloor() {
    //
    // -- Load a bitmap that represents the terrain. Its color values will
    //    be used to generate heights.
    //
    Plane mPlane = new Plane(500, 500, 100, 100);
    mPlane.setPosition(0, 0, 0);
    mPlane.setDoubleSided(true);
    Material material1 = new Material();
    material1.setColorInfluence(0);
    Bitmap picTexture =
        BitmapFactory.decodeResource(mContext.getResources(), R.drawable.squares_big);
    try {
      material1.addTexture(new Texture("squares", picTexture));
    } catch (TextureException e) {
      e.printStackTrace();
    }
    mPlane.setMaterial(material1);

    // Set orientation of the plane.
    Quaternion q = new Quaternion();
    q.fromAngleAxis(Vector3.Axis.X, 90);
    mPlane.setOrientation(q);
    getCurrentScene().addChild(mPlane);
    try {
      getCurrentScene()
          .setSkybox(
              R.drawable.right,
              R.drawable.left,
              R.drawable.top,
              R.drawable.bottom,
              R.drawable.front,
              R.drawable.back);
    } catch (TextureException e) {
      e.printStackTrace();
    }
  }
Ejemplo n.º 4
0
 /**
  * Creates a skybox with the specified 6 {@link Bitmap} textures.
  *
  * @param bitmaps {@link Bitmap} array containing the cube map textures.
  */
 public boolean setSkybox(Bitmap[] bitmaps) {
   final AFrameTask task =
       new AFrameTask() {
         @Override
         protected void doTask() {
           for (int i = 0, j = mCameras.size(); i < j; ++i) mCameras.get(i).setFarPlane(1000);
         }
       };
   final Cube skybox = new Cube(700, true);
   final CubeMapTexture texture = new CubeMapTexture("bitmap_skybox", bitmaps);
   texture.isSkyTexture(true);
   final Material material = new Material();
   material.setColorInfluence(0);
   try {
     material.addTexture(texture);
   } catch (TextureException e) {
     RajLog.e(e.getMessage());
   }
   skybox.setMaterial(material);
   synchronized (mNextCameraLock) {
     mNextSkybox = skybox;
   }
   return internalOfferTask(task);
 }