Why when i move the object it disappears after some distance?[SOLVED]

Why when i move the object it disappears after some distance?

This is a typical example of a poor question. You provide no code examples, so we have nothing to work from at all. Your question could really be anything. Try posting some code, and if it’s not a logic error from your part then touch up your knowledge of the language.

This is not a poor question. Obviously he has a blind spot in his eye, go to the doctor ASAP.

:slight_smile:

No, I’m pretty sure that then his a part of his screen would disappear, too.

I could try a few guesses as to why, but I’d be throwing chips in the water, hoping a fish would pop up so I could hug it to death with my bear arms.

Ok here is the code:


package com.daltonfilho.tutorials.java3d;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.FileNotFoundException;
import java.util.Enumeration;

import javax.media.j3d.AmbientLight;
import javax.media.j3d.Appearance;
import javax.media.j3d.Background;
import javax.media.j3d.Behavior;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.ColoringAttributes;
import javax.media.j3d.DirectionalLight;
import javax.media.j3d.Shape3D;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.WakeupCriterion;
import javax.media.j3d.WakeupOnElapsedTime;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3d;
import javax.vecmath.Vector3f;

import com.sun.j3d.loaders.Scene;
import com.sun.j3d.loaders.objectfile.ObjectFile;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;

class sss
{
	public void aa()
	{}
	}
public class themain extends Applet implements KeyListener {
	public static void main(String[] args)
	{
		themain aa=  new themain();
		new MainFrame(aa,400,400);
		aa.addKeyListener(aa);
		
	}
	class main extends Behavior
	{
		WakeupCriterion yawn ;
		public main(){
			System.out.println("bbb");
			yawn  = new WakeupOnElapsedTime(30);
		}
		public void initialize() {
			 wakeupOn(yawn);
		}
		public  void processStimulus(Enumeration arg0) {
			
		themain.this.update();
			wakeupOn(yawn);
		}
		}
	

	float posokaz = 0.0f;
	float posokay=0.0f;
	float posokax=5.0f;
	float posoka2z = 10.0f;
	float posoka2y=0.0f;
	float posoka2x=0.0f;
	 Transform3D transform;
	 Vector3f mqsto;
	 Transform3D transform2;
	 Transform3D transform3;
	 Vector3f mqstomishena;
	 TransformGroup view;
	 TransformGroup tg;
	 TransformGroup tg2;
	  DirectionalLight light1;
	  Shape3D korab;
	  Background background =null;
	  Shape3D mishena;
	  Transform3D lookat ;
	   SimpleUniverse universe ;
	   ObjectFile f;
	   Scene s = null;
	   BranchGroup b ;
public themain ()
{
	
   
	setLayout(new BorderLayout());
	 GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
	   Canvas3D canvas = new Canvas3D(config);
  universe = new SimpleUniverse(canvas);
  tg = new TransformGroup();
  tg2 =new TransformGroup();
  

  tg2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
  tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
  transform = new Transform3D();
  transform2 = new Transform3D();
  transform3 = new Transform3D();
  lookat= new Transform3D();
   mqsto =new Vector3f(posokax,posokay,posokaz);
   mqstomishena =new Vector3f(0,0,0);
  // mqstomishena =new Vector3f(20,0,0);
   add( canvas);
   canvas.addKeyListener(this);
   transform.setTranslation(mqsto);
   background=new Background();
   background.setColor(1.0f, 0.0f, 0.0f);
   background.setCapability(Background.ALLOW_APPLICATION_BOUNDS_WRITE);
 
   lookat.lookAt(new Point3d(0,0,0), new Point3d(mqsto.getX(),mqsto.getY(),mqsto.getZ()), new Vector3d() );
   lookat.setTranslation(mqsto);
   transform2.setTranslation(mqstomishena);
   tg.setTransform(transform);

   tg2.setTransform(transform);
   String s1 = "samolet.obj";
   String s2 = "mishena.obj";
   BranchGroup group = new BranchGroup();
   korab=loader(s1);
   b.removeChild(0);
   mishena = loader(s2);
   b.removeChild(0);
   Color3f light1Color = new Color3f(1.8f, 0.1f, 0.1f);
   BoundingSphere bounds = new BoundingSphere();
   Vector3f light1Direction = new Vector3f(4.0f, -7.0f, -12.0f);
    light1 = new DirectionalLight(light1Color, light1Direction);
   light1.setInfluencingBounds(bounds);
   background.setApplicationBounds(bounds);
   
   AmbientLight ambientLightNode = new AmbientLight (light1Color);
	ambientLightNode.setInfluencingBounds (bounds);
   Appearance ap = new Appearance();
    Color3f col = new Color3f(0.0f, 0.0f, 22.0f);
   ColoringAttributes ca = new ColoringAttributes(col, ColoringAttributes.NICEST);
   ap.setColoringAttributes(ca);
   mishena.setAppearance(ap);
   tg.addChild(mishena);
   tg.addChild(new ColorCube(0.4));
   tg2.addChild(korab);
   tg.addChild(view);
   tg.addChild(ambientLightNode);
   MouseRotate myMouseRotate = new MouseRotate();
   myMouseRotate.setTransformGroup(tg);
   myMouseRotate.setSchedulingBounds(new BoundingSphere());
   ap.setColoringAttributes(ca);
    group.addChild(tg);
   group.addChild(background);
    group.addChild(tg2);
  // group.addChild(light1);
    main loop = new main();
    loop.setSchedulingBounds(bounds);
    group.addChild(loop);
    
  universe.getViewingPlatform().setNominalViewingTransform();
//  universe.getViewingPlatform().getViewPlatformTransform().setTransform(transform);
   universe.addBranchGraph(group);
}
public void keyPressed(KeyEvent e){
	if(e.getKeyCode()==KeyEvent.VK_NUMPAD8)
	{
		System.out.println("aa");
	 
posokax=posokax+10.f;
mqsto.setX(posokax);
transform.setTranslation(mqsto);
tg.setTransform(transform);
	}
	if(e.getKeyCode()==KeyEvent.VK_NUMPAD2)
	{
		System.out.println("aa");
posokax=posokax-10.f;
mqsto.setX(posokax);
transform.setTranslation(mqsto);
tg.setTransform(transform);
	}
	if(e.getKeyCode()==KeyEvent.VK_NUMPAD4)
	{
		System.out.println("aa");
posokay=posokay+10.f;
mqsto.setY(posokay);
transform.setTranslation(mqsto);
tg.setTransform(transform);
	}
	if(e.getKeyCode()==KeyEvent.VK_NUMPAD6)
	{
		System.out.println("aa");
posokay=posokay-10.f;
mqsto.setY(posokay);
transform.setTranslation(mqsto);
tg.setTransform(transform);
	}

	}
public void keyReleased(KeyEvent e){

	 }
public void keyTyped(KeyEvent e){

	 }

public Shape3D loader(String s1)
{
	  f = new ObjectFile ();
	   try{
			s = f.load (s1);
		   }
		   catch(FileNotFoundException e)
		   {
			   System.out.println(e);
		   }
       b = s.getSceneGroup();
	   return (Shape3D) b.getChild(0);
}
public  void update()
{posokaz=posokaz-1f;
transform.setTranslation(new Vector3f(posokay,posokax,posokaz));
tg.setTransform(transform);
transform2.setTranslation(new Vector3f(posoka2y,posoka2x,posoka2z));
tg2.setTransform(transform2);
//lookat.lookAt(new Point3d(0,0,0), new Point3d(mqsto.getX(),mqsto.getY(),mqsto.getZ()), new Vector3d() );
//universe.getViewingPlatform().getViewPlatformTransform().setTransform(transform);

}

	}


Oh God. That code. It’s so poorly formatted. The OCD… it burns!

On topic though I’ve never used Java3D so I wouldn’t be of any help, sorry.

Cheers :slight_smile:

Hi

Create a View object, use setBackClipDistance and setFrontClipDistance, then add your canvas to this view (view.addCanvas3D(canvas)). I hope you use the latest version of Java3D (1.6 pre based on JOGL 2.0).

And i got an error: Sharing canvas with multiple views.From where to remove the cavans.

So where is the problem? ???

Your real problem is the distance to the far clipping plane. Geometry is going past it and getting clipped (not rendered). Your secondary problem is virtually nobody (here at least) uses JOGL, so there’s a limited pool of people that can help you fix it.

how to increase the rendering distance


GraphicsConfiguration konfiguracii= SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas = new Canvas3D(konfiguracii);
SimpleUniverse universe = new SimpleUniverse(canvas);
universe.getViewingPlatform().setNominalViewingTransform();
View view = canvas.getView();
view.setBackClipDistance(1000f);

I use JOGL and I come here daily. Several JOGL users come here too but it is better to ask some help on the official JogAmp forum when it deals with APIs we actively maintain, including Java3D 1.6 pre.

I’m glad to see that working :slight_smile:

What is the point of that class? Why don’t you capitalize your class names, too?

| Nathan