Hey there,
I’m at the beginning of new project and its my first time developing with Away3D 4. I know my way around in 3.6, but 4 is still kinda tricky for me, so some recommendations and hints would be greatly appreciated
Some background (just why I’m not just using the Away Colada parser, you could also skip this paragraph): Im trying to built a small framework which takes Colada Models, analyses the Scene, stores it in a MySql Database (some PHP stuff) and generates an easy to read XML for my SWF which then generates the 3D Content via Away. I choose this, because it seemed easier to access the individual containers and children and do whatever I want with them. So basically I use C4D and Collada to easily generate my own primitives and generate the scene and containers with properties and functions as I like.
So I got the Scene and everything set up with a Hovercontroller and two lights. The Scene has 5 ObjectContainer3D and 23 Primitives with 570 Polys all together (which does not seem much to me)
Im generating my own primitives with simple code which i put together from an other post (can’t post the link as it is detected as spam?) with the title “how to create your own primitives - like a plane with rounded edges?”
with added mouseEvent3D’s it looks basically like this (p_rawVertices receives the Vector3D points from its parent, which gets it out of the DB):
public class Room extends PrimitiveBase
{
private var _rawVertices:Vector.<Number>;
private var _rawIndices:Vector.<uint>;
public function Room(p_material:MaterialBase, p_rawVertices:Vector.<Number>, p_rawIndices:Vector.<uint>)
{
super(p_material);
this._rawVertices = p_rawVertices;
this._rawIndices = p_rawIndices;
this.mouseEnabled = true;
this.addEventListener(MouseEvent3D.MOUSE_OVER,hoverIn);
this.addEventListener(MouseEvent3D.MOUSE_OUT,hoverOut);
}
private function hoverIn(e:MouseEvent3D){
Tweener.addTween(e.currentTarget,{y:20, time:.5, transition:"easeOutBack"});
}
private function hoverOut(e:MouseEvent3D){
Tweener.addTween(e.currentTarget,{y:0, time:.5, transition:"easeOutBack"});
}
override protected function buildGeometry(target:SubGeometry):void
{
target.autoDeriveVertexNormals = true;
target.autoDeriveVertexTangents = true;
target.updateVertexData(_rawVertices);
target.updateIndexData(_rawIndices);
}
override protected function buildUVs(target:SubGeometry):void
{
}
The material is bothsides = true and a colorMaterial which has both lights.
So the problem here is that I get poor performance (see Attachment), I don’t know what Im doing wrong, as I’m not so much of a 3D Specialist. I think this will increase to a level where it will suck, as the scene will grow with more Polys.
Can the problem be caused by the
target.autoDeriveVertexNormals = true;
target.autoDeriveVertexTangents = true;
?
Or is there a general performance problem (or just the way it is) with MouseEvents3D?
Any hints or tips would really be appreciated
Michael