I triangulate all my meshes now, no thanks to our artists, but it just seems weird to me that you would stop at a quad if less faces meant you could run smoother.
I know Z-sorting is a massive pain in my butt atm, and I've thrown everything in the world I can find at it, and if reducing the amount of faces helps thats, I would think that the loaders would give you the best object to meet the engines performance. On May 18, 11:45 am, Fabrice3D <[email protected]> wrote: > obj does parse quad faces > and splits them as 2 faces > but it doesn't support more than 4 vertices per face definition. > > you might need to triangulate/translate as mesh before save as obj. > > also note that obj loader for lite is not in trunk but in lite dev branch, > this means you choose for adventurous coding/dangerous concepts/might never > see the light cases/high risc branches :)) > basically do not expect official support here. > > Of course you could bug Katopz on this issue... > > Fabrice > > On May 18, 2010, at 5:28 PM, Reinorvak wrote: > > > If such is the case where faces make the best for running a smoother > > game. Then there seems to be a problem with .obj loader then. As it > > can't import a circular face, but only the first three vertexes of the > > circle. > > > On May 18, 10:03 am, Rob Bateman <[email protected]> wrote: > >> Hey Shawn > > >> Reinorvak is right is saying that triangles are generally used for > >> rendering > >> because of their simplicity. this is true whether you use quads in Lite or > >> not - geometry will always be subdivided to tris for rendering purposes. > >> However, quads are useful when generating geometry in Lite because they can > >> halve the amount of faces needs to draw a primitive - which leads to less > >> data and faster sorting, moouse events etc. a quad is momentarily converted > >> to two tris on rendering, but keeping the persistent data as a quad has > >> processing benefits that make it worthwhile if your geometry will allow it. > >> would be interested to hear the results of any tests you've been doing. > > >> Rob > > >> On Mon, May 17, 2010 at 6:17 PM, Reinorvak > >> <[email protected]>wrote: > > >>> I'm not sure what Away3D would do in the background, I would suggest > >>> trying a simple test to see which is better, I imagine Triangles will > >>> win, but why guess when we have the opportunity to test it out. Try > >>> drawing some excessive amount of squares on screen, lets say 500? Do > >>> one test with triangles one with quads and have them all rotate. That > >>> should give you a good idea on how everything is working in the > >>> background. > > >>> Not sure how to make it interrupt to make the triangle faces into quad > >>> faces, but best of luck. > > >>> On May 17, 11:57 am, Shawn McInerney <[email protected]> wrote: > >>>> Hi Reinorvak, > > >>>> Thanks for the info! The reason I am considering using quads for > >>> *certain* > >>>> pieces of geometry is that they end up being half the number of faces. > >>> For > >>>> example a primitive cube created with quads can have a minimum of 6 > >>> faces. > >>>> But away3Dlite's cube primitive automatically triangulates each face so > >>> that > >>>> there is a minimum of 12 faces. > > >>>> In the specific case of away3Dlite and primitives, I *think* away3Dlite > >>>> really only does 3 things (although they are 3 incredibly useful > >>> things!): > > >>>> 1. Draws the faces in 2d with correct perspective to emulate 3d (using > >>>> Flash's built in 3d tools). > >>>> 2. Figures out the uv data so that we can put bitmaps on the primitives. > >>>> 3. Figures out what is in front of what with respect to the camera (z > >>>> sorting, culling). > > >>>> If I am correct, I don't see any advantage to triangles in this specific > >>>> particular instance. In fact, drawing 12 faces instead of 6 should be > >>>> slower. Again, please correct me if I am wrong :) I am no expert.. just > >>>> trying to figure this all out. > > >>>> Best, > >>>> Shawn > > >>>> On Mon, May 17, 2010 at 8:28 AM, Reinorvak <[email protected] > >>>> wrote: > > >>>>> Where as its true that triangles speed up the process for lighting and > >>>>> shading, there is a 2nd reason why most to all games use triangles, > >>>>> which I believe Away3D overlooks being a flash program. I'm not sure > >>>>> if Flash can render quads easier then triangles, but for the most part > >>>>> the triangle is selected because its the simplest amount of > >>>>> information to push over to the graphics card, and what most graphic > >>>>> cards are built to handle. > > >>>>> At least for any game that involves a large amount of 3D objects, all > >>>>> models created should be triangulated. Also if you want to obtain any > >>>>> curved surfaces you'd need triangles, I don't believe Quads can do > >>>>> this as effectively. > > >>>>> Again, I don't know if flash compensates for the quads being in a > >>>>> different type of system, but for any game built entirely for 3D, > >>>>> triangles are the geometry you want. > > >>>>> On May 16, 6:35 pm, Shawn <[email protected]> wrote: > >>>>>> I meant backface culling.. not light culling > > >>>>>> On May 16, 3:27 pm, Shawn <[email protected]> wrote: > > >>>>>>> It is my understanding that the main advantage of triangular faces, > >>> as > >>>>>>> opposed to quad faces, is that tri's ensure planarity so that > >>> things > >>>>>>> like shading and lighting can be calculated properly (Please > >>> correct > >>>>>>> me if I am wrong). But since lite does not have shading or > >>> lighting, > >>>>>>> is there any speed advantage to using quads? Would I be screwing up > >>>>>>> other existing away3Dlite such as light culling and z-sorting? > > >>>>>>> Also, are quad faces still an option with lite? I read in this > >>> post: > >>>>>>> <http://groups.google.com/group/away3d-dev/msg/dc6ab0c9a98504d9> > >>> that > >>>>>>> quad faces could be created in Away3DLite by doing the following: > > >>>>>>> "About quads, you can take a look at the primitives' > >>>>>>> buildPrimitive() function. You just need to push > >>>>>>> the 4 faces' indices into the _indices vector, > >>>>>>> and then flag those values as a quad by pushing > >>>>>>> into _faceLengths the value 4. > > >>>>>>> e.g., if you want to create a face from a quad : > > >>>>>>> push the four indices values into _indices : > >>>>>>> _indices.push(a, b, c, d); > > >>>>>>> then push the value 4 into _faceLengths > >>>>>>> to flag it as a quad: > >>>>>>> _faceLengths.push(4); > > >>>>>>> don't forget you must call buildFaces() > >>>>>>> afterwards to create the faces from > >>>>>>> the data you've entered!" > > >>>>>>> But I can't figure out how to implement this technique in the > >>>>>>> primitives' buildPrimitive(). I am using the latest trunk revision, > >>>>>>> Revision 2520 of away3DLite. > > >>>>>>> Thanks in advance, > >>>>>>> Shawn > > >>>> -- > >>>> Shawn McInerney > >>>> MooseMouse Media, Inc.http://moosemouse.com > >>>> [email protected] > > >> -- > >> Rob Bateman > >> Flash Development & Consultancy > > >> [email protected]
