Looking at the code for model2sprite (http://model2sprite.dev.java.net)
three things might be worth trying:

1) Make sure rendering your scene to a normal canvas actually shows
something.

2) Try using c.getOffscreenBuffer().getImage() after the rendering instead
of relying on you're original image.

3) Try causing the scene to render a few times
(c.renderOffScreenBuffer(),c.waitForOffScreenRendering()) before using the
image, since some behaviors need a few frames to get going.

I'm not sure what you're doing with the View.addCanvas3D() thing, its not
quite the same as how I did it. If you're interested it might be worth
checking out the org/newdawn/model2sprite/OffscreenCanvas3D.java from CVS
on the java.net site above.

Kev

> Hello Java3d Fans,
>
> I am a Java3d beginner and want to programm an servlet, which
> create an JPEG of a JAVA3d-Scene.
>
> I wrote a test class using Canvas 3d in offscreen mode, but all I get is
> an empty Image. What did I wrong? I hope you can help me to fix this ...
>
> Thank you
>
> Here is the program:
>
> [...]
>
> public class Test {
>
>         private SimpleUniverse u;
>
>         public Test(){}
>
>         public BranchGroup createSceneGraph(){
>              [...]
>              return objRoot;
>         }
>
>         public static void main(String[] args) {
>                 Test test = new Test();
>                 GraphicsConfiguration config =
> SimpleUniverse.getPreferredConfiguration(); Canvas3D c =
> new Canvas3D(config,true);
>                 Screen3D sOff = c.getScreen3D();
>
>                 c.getScreen3D().setSize(100,100);
>                 c.getScreen3D().setPhysicalScreenWidth( (0.0254/90.0)*
> 100);
> c.getScreen3D().setPhysicalScreenHeight((0.0254/90.0)*
> 100);
>
>                 BranchGroup scene = test.createSceneGraph();
>                 test.u = new SimpleUniverse();
>                 test.u.getViewingPlatform().setNominalViewingTransform();
> test.u.addBranchGraph(scene);
>
>                 View v = test.u.getViewer().getView();
>                 v.addCanvas3D(c);
>
>                 BufferedImage bImage = new BufferedImage(100, 100,
> BufferedImage.TYPE_INT_RGB);
>                 ImageComponent2D buffer = new
> ImageComponent2D(ImageComponent.FORMAT_RGB,
> bImage);
>                 buffer.setCapability(ImageComponent2D.ALLOW_IMAGE_READ);
>
>                 c.setOffScreenBuffer(buffer);
>                 c.renderOffScreenBuffer();
>                 c.waitForOffScreenRendering();
>
>                 try {
>                         DataOutputStream output = new
> DataOutputStream(new
> FileOutputStream("C:\\borstels-offscreen-test.jpg"));
>                         JPEGImageEncoder encoder =
> JPEGCodec.createJPEGEncoder(output);
> encoder.encode(bImage);
>                         output.flush();
>                         output.close();
>                 } catch (Exception e) {
>                         // TODO Auto-generated catch block
>                         e.printStackTrace();
>                 }
>         }
> }
>
> Thank you for helping
>
> Bj�rn
>
>
> --
>
>
> +++ GMX - Mail, Messaging & more  http://www.gmx.net +++
> Bitte l�cheln! Fotogalerie online mit GMX ohne eigene Homepage!
>
> ===========================================================================
> 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".


--
Jose UML - http://www.newdawnsoftware.com/jose
Warlock - http://www.cokeandcode.com/warlock

===========================================================================
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".

Reply via email to