> When you create the plane primitive,
> you're asked how many width and height segments you'd like to have.
> What is the purpose of these parameters?
the higher the settings the higher the subdivision. more faces

>  As far as i know, regardless of the number of segments, of the number of 
> segments, a plane have only one submeshe and
> subgeometry
yes and no. Primitives are not builded to support high poly count yet. As other 
generators/parser already do
normally when reaching the max buffer size of 65k,(non shared faces 22,5k) a 
second submesh is created.
take a look at addFace method in PathExtrude for instance

> What i wanted to do was to get the faces (or segments) of a primitive
> and detect collisions with mouse and 
nothing stops you to do so, only this time faces are not defined as Faces 
instances as in previous engines

In submeshes you can find among other vectors, the basic face definition 
(enough for your hittests) expressed in 3 vectors:
the uv's, the vertices and indices. There are getters and setters for these.

faces are defined by 3 indices in indices vector,
so indices vector length / 3 gives you faces count.

each indice multiplied by 3 points to a vertice.x in vertices vector
so indice[0]*3 +1 give you the vertex  y and + 2  the vertex  z value
to retreive uv's from uvs vector: multiply the indice value *2 gives to get the 
uv.u, add one would give you the uv.v
repeat same for the 3 indices to form the whole face.

during loops to simplify code, we have added value objects in core.base.data
Face, Vertex and UV, handy if you need to manipulate data. But again, these are 
value objects, they are not used by the engine at all.

> it seems like a lot of work (specially identifying the vertices)
Yes GPU may give us speed and nice renderings, it indeed brings a shit load of 
extra work :)
We try to ease all these things but in many cases custom work is required...

We've added Helpers in tools package as well, some might help you or get you 
started to write your own.

> change it's material when this happens.
you cannot change materials per face. materials are to be set at mesh or 
submesh level
per face would be ridiculous, imagine howmany buffers and data you would need 
on a million+ model...
think instead in terms of mapping/material if you need to alter a face "color"

I hope I haven't broken your enthousiasm too much :)

Fabrice

On May 2, 2011, at 4:57 PM, Agoth wrote:

> Hi. I am curious about how to manipulate the subdivisions of an
> primitive, in this case, a plane. When you create the plane primitive,
> you're asked how many width and height segments you'd like to have.
> What is the purpose of these parameters? As far as i know, regardless
> of the number of segments, a plane have only one submeshe and
> subgeometry (the plane itself), and you can't get the segments (faces)
> as if they were one of those.
> 
> What i wanted to do was to get the faces (or segments) of a primitive
> and detect collisions with mouse and change it's material when this
> happens.
> 
> How can i do it? I'm betting that i have to get the individual
> vertices forming the face/segment i want to change. If that's the way,
> it seems like a lot of work (specially identifying the vertices). Is
> that so? Any ideas? Thanks!

Reply via email to