doing a stress test for irrlicht with sibenik cathedral using lightmaps and ZDimitors my3d format, i'm getting the following error:
"could not draw triangles, too many vertices (99198), maximum is 65535"
the output is shown, but only partially.
any ideas? is this a limitation of irrlicht or of the my3d format?
thanks oconv
could not draw triangles, too many vertices...with sibenik
It's actually a bug with Irrlicht. It's passing the vertex count to check how many primitives are being drawn. I've explained how to fix that here.
http://irrlicht.sourceforge.net/phpBB2/ ... php?t=5176
http://irrlicht.sourceforge.net/phpBB2/ ... php?t=5176
thanks spintz
actually your code solved the problem for directx8/9. with opengl it still exists.
(probably my fault, i will have a look at this again.)
the sibenik model was just token as it is, a rough radiostiy solution was done in max and exported to my3d format with lightmaps included.
45fps with 45k triangels isn't too bad on a cheap fx 5200 card
actually your code solved the problem for directx8/9. with opengl it still exists.
(probably my fault, i will have a look at this again.)
the sibenik model was just token as it is, a rough radiostiy solution was done in max and exported to my3d format with lightmaps included.
45fps with 45k triangels isn't too bad on a cheap fx 5200 card
Spintz:
are you exporting the MY3d file as a single mesh? (multitextured), cause it also seems like the engine is getting confused because of this. I got similar results in my first tests w/zdimitor's format so he told me each thing should be a separate mesh, and each mesh should have it's own texture. This way geometry shows up properly.
are you exporting the MY3d file as a single mesh? (multitextured), cause it also seems like the engine is getting confused because of this. I got similar results in my first tests w/zdimitor's format so he told me each thing should be a separate mesh, and each mesh should have it's own texture. This way geometry shows up properly.
afecelis I don't even know what the MY3D format is! I wasn't the one that originally asked that question!
the MY3D file should have nothing to do with the drawPrimitive functions. The problem is in OpenGL, even if you use the proper fix ( which I believe Niko put into 0.8 ), OpenGL has a hardcoded limit for the number of vertices.
For instance, my DX CAPS tells me I have a MaxPrimitiveCount of 1,048,575 and a Max Vertex Index of 16,777,215. There is no way that I know of in OpenGL to determine this max, so it's hard coded as 65536 ( which is WAY TOO LOW ). That hard coding is in CVideoNull.cpp in the function - getMaximalPrimitiveCount.
the MY3D file should have nothing to do with the drawPrimitive functions. The problem is in OpenGL, even if you use the proper fix ( which I believe Niko put into 0.8 ), OpenGL has a hardcoded limit for the number of vertices.
For instance, my DX CAPS tells me I have a MaxPrimitiveCount of 1,048,575 and a Max Vertex Index of 16,777,215. There is no way that I know of in OpenGL to determine this max, so it's hard coded as 65536 ( which is WAY TOO LOW ). That hard coding is in CVideoNull.cpp in the function - getMaximalPrimitiveCount.
afecelis:
yes, that was a single my3d file, and absolute no optimizing on the original sibenik file was done. i did several high poly architectural walkthroughs with max/my3d/irrlicht in a single mesh now, and never had this "confused engine" problem again.
in irrlicht 0.7, spintz advices solved the "too many vertices" problem also for opengl. i just overlooked some lines to change in the code.
seperate meshes make sense. so you have the ability to exclude things from collision detection, what speedups things quite a bit.
yes, that was a single my3d file, and absolute no optimizing on the original sibenik file was done. i did several high poly architectural walkthroughs with max/my3d/irrlicht in a single mesh now, and never had this "confused engine" problem again.
in irrlicht 0.7, spintz advices solved the "too many vertices" problem also for opengl. i just overlooked some lines to change in the code.
seperate meshes make sense. so you have the ability to exclude things from collision detection, what speedups things quite a bit.