> >After implementing the callback functions in my Canvas3D I'm able to draw >the geometry(Thanks Dave and Doug). >When I call the draw many times with seperate geometry it is working fine, >but when I pass a huge geometry object(~25M) it gives an OutOfMemory error. >The same geometry if I break up in number of smaller geometries and call >draw multiple times it works. Is there any specific reason for this.
Since you are not rendering through the renderer thread, we need to pack up the geometry and send it to the renderer thread. This memory behavior is a result of this limitation. All rendering must go through the renderer thread because of threading issues with the low level API's. >And, will I be able to use pick functionality with immediate rendering mode? > No. Picking does not see immediate mode rendering geometry. Doug Twilleager Java 3D Team Sun Microsystems >Thanks, >nitin > >> -----Original Message----- >> From: Yazel, David J. [mailto:[EMAIL PROTECTED]] >> Sent: Thursday, May 16, 2002 10:32 PM >> To: [EMAIL PROTECTED] >> Subject: Re: [JAVA3D] using immediate mode of drawing >> >> >> I stand corrected. >> >> -----Original Message----- >> From: Doug Twilleager [mailto:[EMAIL PROTECTED]] >> Sent: Thursday, May 16, 2002 1:00 PM >> To: [EMAIL PROTECTED] >> Subject: Re: [JAVA3D] using immediate mode of drawing >> >> >> Actually, this is a valid way to do pure immediate mode rendering. >> The problem is that the application does not wait for the paint() >> event to happen. You can't draw to the on screen canvas until it >> is on the screen. >> >> Doug Twilleager >> Java 3D Team >> Sun Microsystems >> >> >> >Subject: Re: [JAVA3D] using immediate mode of drawing >> >To: [EMAIL PROTECTED] >> >MIME-version: 1.0 >> >Delivered-to: [EMAIL PROTECTED] >> > >> >This code is not written according to the specification. >> Accessing and >> >modifying the graphics context needs to be done on a per >> frame basis in the >> >callback functions of a derived canvas3d. >> > >> >Dave >> > >> >-----Original Message----- >> >From: Nitin.Jain [mailto:[EMAIL PROTECTED]] >> >Sent: Thursday, May 16, 2002 9:58 AM >> >To: [EMAIL PROTECTED] >> >Subject: [JAVA3D] using immediate mode of drawing >> > >> > >> > Hi , >> >we are not able to use the immediate mode of rendering of >> Canvas3D. We are >> >doing every thing according to the specification in 1.3 API >> documentation(I >> >think). Is it necessary for us to create our own implementation of >> canvas3d. >> >I'm attaching the code we have written to do the same. >> > >> >Thanks in advance >> >Nitin >> > >> > >> >> import javax.media.j3d.*; >> >> import java.applet.Applet; >> >> import java.awt.BorderLayout; >> >> import java.awt.event.*; >> >> import java.awt.GraphicsConfiguration; >> >> import com.sun.j3d.utils.applet.MainFrame; >> >> import com.sun.j3d.utils.geometry.ColorCube; >> >> import com.sun.j3d.utils.universe.*; >> >> import com.sun.j3d.loaders.objectfile.*; >> >> import com.sun.j3d.loaders.*; >> >> >> >> import javax.vecmath.*; >> >> import java.awt.*; >> >> >> >> import com.sun.j3d.loaders.vrml97.VrmlLoader; >> >> import com.sun.j3d.loaders.vrml97.VrmlScene; >> >> >> >> public class HelloUniverse extends Applet >> >> { >> >> >> >> public HelloUnivers() >> >> { >> >> >> >> } >> >> >> >> public void init() >> >> { >> >> createVirtualUniverse(); >> >> } >> >> >> >> private void createVirtualUniverse() >> >> { >> >> GraphicsConfigTemplate3D template = new >> >> GraphicsConfigTemplate3D(); >> >> GraphicsConfiguration config = >> >> GraphicsEnvironment.getLocalGraphicsEnvironment(). >> >> >> >> getDefaultScreenDevice().getBestConfiguration(template); >> >> >> > Canvas3D myCanvas3D = new Canvas3D(config); >> >> setLayout(new BorderLayout()); >> >> add("Center", myCanvas3D); >> >> >> >> VirtualUniverse myUniverse = new VirtualUniverse(); >> >> Locale myLocale = new Locale(myUniverse); >> >> >> >> myCanvas3D.stopRenderer(); >> >> >> > >> >> BranchGroup viewBranch = buildViewBranch(myCanvas3D); >> >> >> >> >> >> myLocale.addBranchGraph(viewBranch); >> >> >> >> GraphicsContext3D gc3D = myCanvas3D.getGraphicsContext3D(); >> >> gc3D.clear(); >> >> gc3D.draw(new ColorCube(0.5)); >> >> gc3D.flush(false); >> >> myCanvas3D.swap(); >> >> myCanvas3D.startRenderer(); >> >> } >> >> >> >> private BranchGroup buildViewBranch(Canvas3D c) >> >> { >> >> BranchGroup viewBranch = new BranchGroup(); >> >> Transform3D viewXfm = new Transform3D(); >> >> viewXfm.set(new Vector3f(0.0f,0.0f,5.0f)); >> >> TransformGroup viewXfmGroup = new TransformGroup(viewXfm); >> >> ViewPlatform myViewPlatform = new ViewPlatform(); >> >> viewXfmGroup.addChild(myViewPlatform); >> >> viewBranch.addChild(viewXfmGroup); >> >> View myView = new View(); >> >> PhysicalBody mybody = new PhysicalBody(); >> >> PhysicalEnvironment myEnvironment = new >> PhysicalEnvironment(); >> >> myView.setPhysicalBody(mybody); >> >> myView.setPhysicalEnvironment(myEnvironment); >> >> >> >> myView.addCanvas3D(c); >> >> myView.attachViewPlatform(myViewPlatform); >> >> return viewBranch; >> >> } >> >> >> >> public static void main(String[] args) >> >> { >> >> new MainFrame(new HelloUniverse(), 256, 256); >> >> } >> >> } >> > >> >============================================================= >> ============== >> >To unsubscribe, send email to [EMAIL PROTECTED] and >> include in the body >> >of the message "signoff JAVA3D-INTEREST". For general help, >> send email to >> >[EMAIL PROTECTED] and include in the body of the message "help". >> > >> >============================================================= >> ============== >> >To unsubscribe, send email to [EMAIL PROTECTED] and >> include in the body >> >of the message "signoff JAVA3D-INTEREST". For general help, >> send email to >> >[EMAIL PROTECTED] and include in the body of the message "help". >> >> ============================================================== >> ============= >> To unsubscribe, send email to [EMAIL PROTECTED] and >> include in the body >> of the message "signoff JAVA3D-INTEREST". For general help, >> send email to >> [EMAIL PROTECTED] and include in the body of the message "help". >> >> ============================================================== >> ============= >> To unsubscribe, send email to [EMAIL PROTECTED] and >> include in the body >> of the message "signoff JAVA3D-INTEREST". For general help, >> send email to >> [EMAIL PROTECTED] and include in the body of the message "help". >> > >=========================================================================== >To unsubscribe, send email to [EMAIL PROTECTED] and include in the body >of the message "signoff JAVA3D-INTEREST". For general help, send email to >[EMAIL PROTECTED] and include in the body of the message "help". =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".