its allways better to make dedicated generators. Cost bits more energy to setup especially the first time, but later on,
you'll be happy you have done it.

You should declare your uvs while adding faces.
For the top, say the pyramidepart, the uv's will become then, counting 4 faces rotated clockwize

uv0,uv1,uv2

.5,.5/0,1/1,1

.5,.5/1,1/1,0

1,0/0,0/.5,.5

0,0/0,1/.5,.5

Other sides counting 2 faces, would keep Cube settings.

About on the Lathe. In previous mail I made mistake confusing subdivision property with other classes subdivision prop. Subdivision is in this case the subdivision per rotation, so in your case it couldn't be else than 4. Lower or higher resulting in another shape. Lathe subdivision is defined by user point inputs, like for segmentExtrude, pathExtrude, skinsExtrude etc...

Fabrice


On Nov 25, 2009, at 7:59 PM, davivid wrote:

I don't think clipping will be a problem from the limited tests I have
done, but poly's certainly are - so I will be keeping these to an
absolute minimum, and so will not be increasing the resolution I would
think.

I'm struggling with the lathe class, setting it to something other
than 1 resulted in other shapes than a cube. I also think that I will
still need to then alter the lathe mesh to say delete the bottom
(hidden) face.

So I think it will probably be best to just create my own coded
primitives, giving most control over them. I just successfully built a
cube, but yet to add the uv's. Drawing it out really helped here!

Is this the correct way of doing this? obviously the values will be
variables later on. thanks.

///Create Vertices
var v0:Vertex = new Vertex(-50,-50,-50);
.......
.......
var v7:Vertex = new Vertex(-50,50,50);

//Create Faces
var f0:Face = new Face(v1, v0, v2); //bottom
var f1:Face = new Face(v3,v2,v0); //bottom
........
........
var f10:Face = new Face(v1,v2,v6); //right
var f11:Face = new Face(v6,v5,v1); //right

// Create mesh:
m0 = new Mesh();
m0.addFace(f0);
.......
.......
m0.addFace(f11);


On Nov 25, 4:29 pm, Fabrice3D <[email protected]> wrote:
the lathe class gives you control of the resolution like the cube
primitive
but doing by hand would not help for the resolution. in this case it
is set to 4. try pass 1...
so indeed building a dedicated primitive would be another option.

I would not extend cube here so... I simply would make new class
in case your of course want resolution on top as well. but in this
case, you end up with same result as with Lathe.

actually, if you have lots of these, the lower poly you use to display
one is better
but if for some clipping reasons or if the map needs to be blowed up,
you better off having slightly more resolution.
so having this option is a great help to find a balance once your
scenery is known/builded.

Fabrice

On Nov 25, 2009, at 3:59 PM, davivid wrote:

sweet, hadn't seen the lathe class - that will come in handy, thanks
fabrice!  However it seems to generate a lot more vertices than are
needed(48 compared to 9), some with many decimal places -  that will
cause a little performance hit no?

Ideally like you suggest Jensa I will need to make a class to generate
these objects. I will be dynamically generating a LOT of these,
amongst some others. Initially passing in some simple
parameters...width,h,d,pointheight,mat,x,y etc. Any tips would be
welcomed! would I go about extending the cube class, and performing
some sort of operation like I did above?

On Nov 25, 1:56 pm, Fabrice3D <[email protected]> wrote:
Well done! That's one way to do it, say the hard way.
So now, you know how to freak around with faces!

Now let me piss you off a bit with the other (easy) way I did'nt
mention in previous mail.
To do this particular shape,  simply use the Lathe class like this:

var easyway:Lathe = new Lathe([new Number3D(0,-100,0),new
Number3D(-100,-100,0) new Number3D(-100,100,0), new
Number3D(0,100,0)], {flip:true, recenter:false, subdivision:4,
material:mat});

done!  :))

Fabrice

On Nov 25, 2009, at 1:33 PM, davivid wrote:

cheers Fabrice,

just what I needed to get me going. I've got it working, and seems
to
be fine - although im quite sure my method of trial and error is not
the best way... Once I found the top faces, I noted them, and
deleted
them. I then created the new 4 faces based on the old two, and went through each of the new faces changing the vertices until everything
lined up. Next I cycled through the vertices of the cube, and
slotted
these into my new faces where they matched.

I'm now wondering if there is likely to be any issues with the way I
have done it? as Im after as much performance as possible. Or is
there
a better way of doing this? thanks.

pointedCube = new Cube( { width:200, height:200, depth:200 } );
view.scene.addChild(pointedCube);

pointedCube.removeFace(pointedCube.faces[8]);
pointedCube.removeFace(pointedCube.faces[8]); //originally face 9

var pointheight:Vertex = new Vertex(0, pointedCube.height, 0); //
Vertex for Point

var one:Face = new Face(pointedCube.vertices[2],
pointedCube.vertices
[6], pointheight,new ColorMaterial(0xff0000));
var two:Face = new Face(pointedCube.vertices[0], pointheight,
pointedCube.vertices[5],new ColorMaterial(0x00ff00));
var three:Face = new Face(pointedCube.vertices[2], pointheight,
pointedCube.vertices[0],new ColorMaterial(0x0000ff));
var four:Face = new Face(pointheight, pointedCube.vertices[6],
pointedCube.vertices[5],new ColorMaterial(0xccff00));

pointedCube.addFace(one);
pointedCube.addFace(two);
pointedCube.addFace(three);
pointedCube.addFace(four);

On Nov 25, 11:30 am, Fabrice3D <[email protected]> wrote:
sure, just insolate the two faces on top
note the four vertexes, delete the faces
and add four new faces.

Fabrice

On Nov 25, 2009, at 11:18 AM, davivid wrote:

Is it possible to modify the cube primitive in such a way that an
extra vertex is added to the centre of say the top the face, and
moved
up to created a pointed/pyramid effect?

like this:
http://away3d-dev.googlegroups.com/web/pointedcube.jpg

thanks.

Reply via email to