Hi, Two problems this time round:
1. I'm using my own behaviour to control a Switch which has a number of models. I want to guarantee a frame rate or at least get an average which is pretty close because the result is intended to be a 3D film displayed in real time. However the behaviour I'm using isn't going fast enough. For the moment I'm trying to get 25fps by specifying a wakeup condition of wakeupOnElapsedTime(40). I've taken into account the amount of time taken to actually execute the processStimulus() method and have reduced the delay by that amount but rendering isn't reaching 25fps. I've even tried reducing the delay down to 1 with no improvement. I know my models can be rendered faster because when I specify wakeupOnElapsedFrames(0) the rendering goes at about 35fps or more executing exactly the same pieces of my code. Typically the time between consecutive calls to the processStimulus() method is a minimum of about 60ms no matter how small a delay I use. Is this just overhead associated with the elapsedtime condition? Or is there likely to be some deeper problem? Has anyone tried this before? got any ideas? Is there perhaps a way to control the speed of the renderer so that I could control frame rates and use the ElapsedFrames(0) condition? Thanks in advance. Ok problem no. 2 Using a GeometryInfo object to construct my models and all was working fine until I added in normals. However whenever I construct a model that has normals (hasNormals = true) then the getGeometry method doesn't return. And I get a null being echoed to standard out. But there are no exceptions being generated. Below is the code that obtains the GeometryArray form my GeometryInfo, if anyone can see what I'm doing wrong then I'd be very grateful. I'm using jdk1.4.0 beta3 and j3d1.3 beta1. Sorry about the length of this one but they've been driving me nuts, thanks, Ewan GeometryInfo geometry = new GeometryInfo(GeometryInfo.POLYGON_ARRAY); geometry.setCoordinates(coordinates); geometry.setCoordinateIndices(coordIndices); geometry.setContourCounts(contourCounts); geometry.setStripCounts(stripCounts); if (hasTexture) { geometry.setTextureCoordinateParams(1, 2); geometry.setTextureCoordinates(0, textureCoords); geometry.setTextureCoordinateIndices(0, coordIndices); } // If normals have been provided then use them if (hasNormals) { geometry.setNormals(normals); geometry.setNormalIndices(coordIndices); } // Otherwise generate normals automatically else { NormalGenerator ng = new NormalGenerator(); ng.setCreaseAngle((double)creaseAngle); ng.generateNormals(geometry); } // Stripify geometry to improve performance Stripifier st = new Stripifier(); st.stripify(geometry); return geometry.getGeometryArray(); =========================================================================== 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".