Android Open Source - min3d Example Multiple Lights






From Project

Back to project page min3d.

License

The source code is released under:

MIT License

If you think the Android project min3d listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.min3d;
/*from  ww w . ja va2 s .  co m*/
import com.min3d.lib.core.Object3dContainer;
import com.min3d.lib.core.RendererActivity;
import com.min3d.lib.objectPrimitives.Box;
import com.min3d.lib.objectPrimitives.Sphere;
import com.min3d.lib.vos.Light;
import com.min3d.lib.vos.LightType;

/**
 * @author Lee
 */
public class ExampleMultipleLights extends RendererActivity
{
  private final float DEGREE = (float)(Math.PI/180);

  Object3dContainer _sphere;
  
  Light _lightRed;
  Light _lightGreen;
  Light _lightBlue;
  Object3dContainer _boxRed;
  Object3dContainer _boxGreen;
  Object3dContainer _boxBlue;

  int _count = 0;


  public void initScene() 
  {
    scene.camera().position.setAll(0,0,5);

    // Add three lights
    
    _lightRed = new Light();
    _lightRed.ambient.setAll(0x88110000);
    _lightRed.diffuse.setAll(0xffff0000);
    _lightRed.type(LightType.POSITIONAL);
    scene.lights().add(_lightRed);

    _lightGreen = new Light();
    _lightGreen.ambient.setAll(0x88001100);
    _lightGreen.diffuse.setAll(0xff00ff00);
    _lightGreen.type(LightType.POSITIONAL);
    scene.lights().add(_lightGreen);

    _lightBlue = new Light();
    _lightBlue.ambient.setAll(0x88000011);
    _lightBlue.diffuse.setAll(0xff0000ff);
    _lightBlue.type(LightType.POSITIONAL); 
    scene.lights().add(_lightBlue);

    // The objects that we'll light up
    
    _sphere = new Sphere(1.0f, 20, 15);
    _sphere.vertexColorsEnabled(false);
    scene.addChild(_sphere);
    
    // Boxes, displayed just as a visualization aid
    
    _boxRed = new Box(0.05f,0.05f,0.05f);
    _boxRed.normalsEnabled(false);
    _boxRed.vertexColorsEnabled(false);
    _boxRed.defaultColor().setAll(0xaaff0000);
    scene.addChild(_boxRed);
    
    _boxGreen = new Box(0.07f,0.07f,0.07f);
    _boxGreen.normalsEnabled(false);
    _boxGreen.vertexColorsEnabled(false);
    _boxGreen.defaultColor().setAll(0xaa00ff00);
    scene.addChild(_boxGreen);

    _boxBlue = new Box(0.05f,0.05f,0.05f);
    _boxBlue.normalsEnabled(false);
    _boxBlue.vertexColorsEnabled(false);
    _boxBlue.defaultColor().setAll(0xaa0000ff);
    scene.addChild(_boxBlue);

    _count = 0;
  }
  
  @Override 
  public void updateScene() 
  {
    // Set lights' position
    
    _lightRed.position.setAll(0, +0.9f, 2.5f);
    float x = (float)(Math.sin(_count%360 * DEGREE) * -1.5f);
    float z = (float)(Math.cos(_count%360 * DEGREE) * 2.25f);
    _lightGreen.position.setAll(x, 0, z);
    _lightBlue.position.setAll(0, -0.9f, 2.5f);
    
    // Sync boxes' position with lights
    
    _boxRed.position().setAllFrom(_lightRed.position.toNumber3d());
    _boxGreen.position().setAllFrom(_lightGreen.position.toNumber3d());
    _boxBlue.position().setAllFrom(_lightBlue.position.toNumber3d());

    // Red light pulses by changing diffuse red property
    
    short mag = (short)(255 - (_count % 60) * (255/60));
    _lightRed.diffuse.r(mag);
    _boxRed.defaultColor().r = mag;

    // Green light blinks on and off using isVisible() property
    
    if (_count % 30 == 0) {
      _lightGreen.isVisible(true);
      _boxGreen.isVisible(true);
    }
    else if (_count % 30 == 20) {
      _lightGreen.isVisible(false);
      _boxGreen.isVisible(false);
    }

    _sphere.rotation().y += 1;
    _count++;
  }
}




Java Source Code List

com.min3d.ApplicationTest.java
com.min3d.ExampleAccelerometer.java
com.min3d.ExampleAnimatedTexture.java
com.min3d.ExampleAnimatingVertices.java
com.min3d.ExampleAssigningTexturesDynamically.java
com.min3d.ExampleCamera.java
com.min3d.ExampleFog.java
com.min3d.ExampleFromScratch.java
com.min3d.ExampleInsideLayout.java
com.min3d.ExampleKeyframeAnimation.java
com.min3d.ExampleLightProperties.java
com.min3d.ExampleLoad3DSFile.java
com.min3d.ExampleLoadMD2File.java
com.min3d.ExampleLoadObjFileMultiple.java
com.min3d.ExampleLoadObjFile.java
com.min3d.ExampleMipMap.java
com.min3d.ExampleMostMinimal.java
com.min3d.ExampleMultiTexture.java
com.min3d.ExampleMultipleLights.java
com.min3d.ExampleRenderType.java
com.min3d.ExampleRotatingPlanets.java
com.min3d.ExampleSubsetOfFaces.java
com.min3d.ExampleTextureOffset.java
com.min3d.ExampleTextureWrap.java
com.min3d.ExampleTextures.java
com.min3d.ExampleTransparentGlSurface.java
com.min3d.ExampleVertexColors.java
com.min3d.ExampleVerticesVariations.java
com.min3d.ScratchActivity.java
com.min3d.SplashActivity.java
com.min3d.lib.AParser.java
com.min3d.lib.ApplicationTest.java
com.min3d.lib.IParser.java
com.min3d.lib.LittleEndianDataInputStream.java
com.min3d.lib.MD2Parser.java
com.min3d.lib.Max3DSParser.java
com.min3d.lib.Min3d.java
com.min3d.lib.ObjParser.java
com.min3d.lib.ParseObjectData.java
com.min3d.lib.ParseObjectFace.java
com.min3d.lib.Parser.java
com.min3d.lib.Shared.java
com.min3d.lib.Utils.java
com.min3d.lib.animation.AnimationObject3d.java
com.min3d.lib.animation.KeyFrame.java
com.min3d.lib.core.Color4BufferList.java
com.min3d.lib.core.FacesBufferedList.java
com.min3d.lib.core.ManagedLightList.java
com.min3d.lib.core.Number3dBufferList.java
com.min3d.lib.core.Object3dContainer.java
com.min3d.lib.core.Object3d.java
com.min3d.lib.core.RenderCaps.java
com.min3d.lib.core.RendererActivity.java
com.min3d.lib.core.Renderer.java
com.min3d.lib.core.Scene.java
com.min3d.lib.core.TextureList.java
com.min3d.lib.core.TextureManager.java
com.min3d.lib.core.UvBufferList.java
com.min3d.lib.core.Vertices.java
com.min3d.lib.interfaces.IDirtyManaged.java
com.min3d.lib.interfaces.IDirtyParent.java
com.min3d.lib.interfaces.IObject3dContainer.java
com.min3d.lib.interfaces.ISceneController.java
com.min3d.lib.objectPrimitives.Box.java
com.min3d.lib.objectPrimitives.HollowCylinder.java
com.min3d.lib.objectPrimitives.Rectangle.java
com.min3d.lib.objectPrimitives.SkyBox.java
com.min3d.lib.objectPrimitives.Sphere.java
com.min3d.lib.objectPrimitives.Torus.java
com.min3d.lib.vos.AbstractDirtyManaged.java
com.min3d.lib.vos.BooleanManaged.java
com.min3d.lib.vos.CameraVo.java
com.min3d.lib.vos.Color4Managed.java
com.min3d.lib.vos.Color4.java
com.min3d.lib.vos.Face.java
com.min3d.lib.vos.FloatManaged.java
com.min3d.lib.vos.FogType.java
com.min3d.lib.vos.FrustumManaged.java
com.min3d.lib.vos.LightType.java
com.min3d.lib.vos.Light.java
com.min3d.lib.vos.Number3dManaged.java
com.min3d.lib.vos.Number3d.java
com.min3d.lib.vos.RenderType.java
com.min3d.lib.vos.ShadeModelManaged.java
com.min3d.lib.vos.ShadeModel.java
com.min3d.lib.vos.TexEnvxVo.java
com.min3d.lib.vos.TextureVo.java
com.min3d.lib.vos.Uv.java
com.min3d.lib.vos.Vertex3d.java