I think you also have to make sure that each object in the OBJ file has a
name given to it, using the "g <objectName>" construct.
Regards,
Manu.
On Fri, 1 Dec 2000, Yazel, David J. wrote:
> Here is an example on how to set attributes on a loaded OBJ file:
>
> package com.xith.java3d.geometry.carpenter;
>
> /**
> * $Id: MakeObjShape.java,v 1.2 2000/11/12 20:45:40 wizofid Exp $
> *
> * $Log: MakeObjShape.java,v $
> * Revision 1.2 2000/11/12 20:45:40 wizofid
> * Removing hard coded paths
> *
> * Revision 1.1 2000/10/08 21:38:20 entropy
> * Initial checkin
> *
> * Revision 1.3 2000/09/23 05:54:45 dyazel
> * Changed location of all the images, textures and shapes to match
> * the cosm archive locations
> *
> * Revision 1.2 2000/09/17 19:56:15 dyazel
> * Updating ID and LOG tags
> *
> */
>
> import com.xith.utility.logs.*;
> import com.xith.client.landscape.*;
> import com.xith.java3d.geometry.shape.*;
> import com.xith.java3d.appearance.texture.*;
> import javax.media.j3d.*;
> import javax.vecmath.*;
> import com.sun.j3d.loaders.Scene;
> import com.sun.j3d.loaders.objectfile.ObjectFile;
> import java.util.*;
> import com.xith.client.engine.*;
>
> public class MakeObjShape implements CarpenterInterface {
>
> SharedGroup highShape = null;
> SharedGroup farRock = null;
> String objName;
> String textureName;
>
> public MakeObjShape(String objName, String textureName) {
> this.objName = objName;
> this.textureName = textureName;
> }
>
> public Node getHighDetail() {
>
> if (highShape==null) {
>
> highShape = new SharedGroup();
>
> ObjectFile obj = new ObjectFile();
>
> obj.setBasePath(XithEngine.getEngine().getProp().shapePath.getString());
>
> try {
> Scene s =
> obj.load(XithEngine.getEngine().getProp().shapePath.getString()+objName);
> Enumeration en = s.getNamedObjects().keys();
> while (en.hasMoreElements()) {
>
> String shapeName = (String)en.nextElement();
> Node node = (Node)s.getNamedObjects().get(shapeName);
> if (node instanceof Shape3D) {
> Shape3D shape = (Shape3D)node;
> Appearance app = shape.getAppearance();
>
> // make sure the material is correct
>
> Material m = new Material();
> m.setEmissiveColor(0.2f,0.2f,0.2f);
> m.setAmbientColor(0.5f,0.5f,0.5f);
> m.setDiffuseColor(0.20f,0.20f,0.20f);
> m.setSpecularColor(0.7f,0.7f,0.7f);
> m.setLightingEnable(true);
> app.setMaterial(m);
>
> // create the texture attributes
>
> TextureAttributes ta = new TextureAttributes();
> ta.setTextureMode(ta.MODULATE);
> ta.setPerspectiveCorrectionMode(ta.NICEST);
> app.setTextureAttributes(ta);
>
> // apply a texture to the appearance
>
>
> app.setTexture(TextureFactory.tf.getWrappableTexture(textureName));
>
> }
> }
>
> highShape.addChild(s.getSceneGroup());
>
>
> } catch (Exception e) {
> Log.log.println(LogType.EXCEPTION,e.getMessage());
> }
> }
> return new Link(highShape);
> }
>
> public Node getLowDetail() {
> return null;
> }
>
> public Node getFarDetail() {
> return null;
> }
>
> public String getName() {
> return "Shape "+objName;
> }
>
> }
>
>
>
>
> > ----------
> > From: Josh Richmond[SMTP:[EMAIL PROTECTED]]
> > Reply To: Discussion list for Java 3D API
> > Sent: Friday, December 01, 2000 9:25 AM
> > To: [EMAIL PROTECTED]
> > Subject: [JAVA3D] how to set transparency of BranchGroup
> >
> > <<File: Josh Richmond.vcf.txt>>
> > Hi,
> >
> > In my application, I'd like to load an .obj file and set the transparency
> > value for all the geometry. I see that transparency can be set on Shape3D
> > objects, but the obj file loader returns only a BranchGroup.
> >
> > Is there an easy way to set transparency for a BranchGroup such that all
> > its children are affected?
> >
> > I tried BranchGroup.getAllChildren(), but when I query the list produced,
> > there is only one Shape3D object; setting its transparency did not seem to
> > work.
> >
> > I appreciate any help you can give me.
> >
> > Thanks!
> > Josh
> >
> >
> > ----------------------------------------------------
> > Joshua L. Richmond, BASc, MSc.
> > Systems Engineering (R&D)
> >
> > MD Robotics
> > 9445 Airport Rd, Brampton, ON, Canada
> > (905) 790-2800 x4332
> > -----------------------------------------------------
> >
> >
>
> ===========================================================================
> 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".