> 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!
