Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - censivn

Pages: [1]
1
Support / Re: Why setTransparency would affect all objects?
« on: December 14, 2010, 09:05:54 am »
plane1.setTransparency(100);
plane2.setTransparency(100);

The problem has been solved !thank you very much!

2
Support / Re: Why setTransparency would affect all objects?
« on: December 14, 2010, 06:10:58 am »
I have the same problem    when call setTransparency to "testModel "

"texture1" contains alpha

CODE:


package com.censvin.TestDemo;

import java.lang.reflect.Field;

import javax.microedition.khronos.egl.EGL10;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.egl.EGLDisplay;
import javax.microedition.khronos.opengles.GL10;


import android.app.Activity;
import android.content.res.Resources;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;

import com.threed.jpct.Camera;
import com.threed.jpct.Config;
import com.threed.jpct.FrameBuffer;
import com.threed.jpct.Light;
import com.threed.jpct.Loader;
import com.threed.jpct.Logger;
import com.threed.jpct.Object3D;
import com.threed.jpct.Primitives;

import com.threed.jpct.RGBColor;
import com.threed.jpct.SimpleVector;
import com.threed.jpct.Texture;
import com.threed.jpct.TextureManager;
import com.threed.jpct.World;
import com.threed.jpct.util.MemoryHelper;

/**
 * A simple demo. Slightly more advanced than the HelloWorld example, but still
 * pretty basic.
 *
 * @author EgonOlsen
 *
 */
public class Demo extends Activity {

   // Used to handle pause and resume...
   private static Demo master = null;

   private GLSurfaceView mGLView;
   private MyRenderer renderer = null;
   private FrameBuffer fb = null;
   private World world = null;

   private RGBColor back = new RGBColor(50, 50, 100);


   private Object3D plane1 = null;
   private Object3D plane2 = null;
   private Object3D testModel = null;


   protected void onCreate(Bundle savedInstanceState) {
      Logger.log("onCreate");

      if (master != null) {
         
      }

      super.onCreate(savedInstanceState);
      mGLView = new GLSurfaceView(getApplication());

      mGLView.setEGLConfigChooser(new GLSurfaceView.EGLConfigChooser() {
         public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
            // Ensure that we get a 16bit framebuffer. Otherwise, we'll fall
            // back to Pixelflinger on some device (read: Samsung I7500)
            int[] attributes = new int[] { EGL10.EGL_DEPTH_SIZE, 16, EGL10.EGL_NONE };
            EGLConfig[] configs = new EGLConfig[1];
            int[] result = new int[1];
            egl.eglChooseConfig(display, attributes, configs, 1, result);
            return configs[0];
         }
      });

      renderer = new MyRenderer();
      mGLView.setRenderer(renderer);
      setContentView(mGLView);
   }

   

   protected void onStop() {
      Logger.log("onStop");
      super.onStop();
   }


   class MyRenderer implements GLSurfaceView.Renderer {

      private int fps = 0;
      private int lfps = 0;

      private long time = System.currentTimeMillis();

      private boolean stop = false;

      private SimpleVector sunRot = new SimpleVector(0, 0.05f, 0);

      public MyRenderer() {
         Config.maxPolysVisible = 500;
         Config.farPlane = 1500;
         Config.glTransparencyMul = 0.1f;
         Config.glTransparencyOffset = 0.1f;
         Config.useVBO=true;
         
         Texture.defaultToMipmapping(true);
         Texture.defaultTo4bpp(true);
      }

      public void stop() {
         stop = true;
      }

      public void onSurfaceChanged(GL10 gl, int w, int h) {
         if (fb != null) {
            fb.dispose();
         }

         fb = new FrameBuffer(gl, w, h);

         if (master == null) {
            world = new World();
            Resources res = getResources();

            TextureManager tm = TextureManager.getInstance();

            Texture texture1 = new Texture(res.openRawResource(R.raw.l_32));
            
            Texture texture2 = new Texture(res.openRawResource(R.raw.l_31));

            tm.addTexture("texture1", texture1);
            tm.addTexture("texture2", texture2);
            
            plane1 =  Primitives.getPlane(1, 10);
            plane2 =  Primitives.getPlane(1, 10);
            testModel = Primitives.getPlane(1, 10);
            
            plane1.setTexture("texture1");
            
            plane2.setTexture("texture1");
            
            testModel.setTexture("texture2");

            plane2.translate(-5, -5, -10);
            
            testModel.translate(5, 5, 5);
            
   

            world.addObject(plane1);
            world.addObject(plane2);
            world.addObject(testModel);

            testModel.setTransparency(5);


            world.setAmbientLight(255, 255, 255);
            world.buildAllObjects();

            
            Camera cam = world.getCamera();
            cam.moveCamera(Camera.CAMERA_MOVEOUT, 30);
            cam.lookAt(plane1.getTransformedCenter());

         }
      }

      public void onSurfaceCreated(GL10 gl, EGLConfig config) {
         
         gl.glEnable(GL10.GL_BLEND);
         
         gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA);
      }

      public void onDrawFrame(GL10 gl) {

         try {
            if (!stop) {
               

               fb.clear(back);
               world.renderScene(fb);
               world.draw(fb);

               fb.display();

            
            } else {
               if (fb != null) {
                  fb.dispose();
                  fb = null;
               }
            }
         } catch (Exception e) {
            e.printStackTrace();
            Logger.log("Drawing thread terminated!", Logger.MESSAGE);
         }
      }

      
   }

}

Pages: [1]