Hi guys,
I’ve never really had to deal with lots of 3D assets before, and I’m starting to notice that my project’s size is quickly becoming ridiculous (my Skybox.j3o is 18 megabytes large?!?!)
Each of my scene ‘.j3o’ files are 4/5 megabytes each and they’re nowhere near completed, they’re just a bit of (small!!) terrain with a couple of cuboid ‘platforms’ and some teapot meshes; is this normal? Or have I made some sacred rookie mistake?
I was hoping I could zip this up and put it on my website to distribute to people but with a filesize of 50mb once all the libs and assets are in there it’s a bit unrealistic.
Another thing is that due to the large size of my assets I get quite a few heap size exceptions, which makes me reluctant to distribute the program anyway at the minute.
Thanks in advance for the help,
Lolliver.
About texture size:
try to use DDS instead of PNG/TGA.
Install Nvidia OpenGL/DirectX SDK Tools: http://developer.nvidia.com/nvidia-graphics-sdk-11 .
Then right-click on PNG texture and convert PNG to DDS.
And use DXT3/DXT5 compression.
And don’t forget about generating MipMaps fo DDS.
@Mifth,
Thanks for the reply! That’ll definitely help me get the texture sizes down/reduce the filesize of the skybox!
Do you have any advice on reducing the scene file sizes? I currently have a small square block of terrain with 16 teapot meshes inside and it’s totalling 4-6mb each; and I’ve not even started to model the levels properly yet, they’re just placeholders!
Thanks,
Lolliver
just try to get low-poly models. All your scene should have 300-1500 thousands of triangles in a camera view.
How much triangles do you have in your scene?
—
Also try to use instances. for example, you have mesh for 1000 same objects (like doors, stones…)
[java]Spatial stone = new Spatial(…); //your model
Spatial stone2 = stone.clone(false); //another instance
Spatial stone3 = stone.clone(false); //another instance
Spatial stone4 = stone.clone(false); //another instance [/java]
Okay that’s the problem then I guess:
I just dragged teapots into the scene explorer, I’ve not made them in code… Hence the large filesize I guess.
Regarding the triangle count, looking around my pretty terrain I have about 5k triangles on screen, when I look at 2 teapots stacked on top of each other that flies up to 20k.
I’m using the teapot mesh that came with the test-data library, so I guess that’s not optimized in any way.
In the actual game I’ll probably use a completely different mesh that I cobble together in Blender anyway I guess!
Thanks for all of your help Mifth.
Lolliver
one teapot should be 300-800 triangles.
http://files.turbosquid.com/Preview/2011/08/23__17_15_34/123.jpgcaefd17e-9edd-45d1-af8b-b5565ea40030Large.jpg
Ah, yeah the Teapot mesh that ships with JME is smoothed and such, so I assume that’s where the large number of triangles are coming from!
But still, 20k triangles isnt really much unless you are some some very old hardware. I am trying to stay below 1 million triangles.
If you don’t tell us how you create the j3o files then we cannot know why they are so big. @Mifth likes to confuse people with talking about topics that have nothing to do with the thread ^^ The issue probably simply is that you import blend files directly that are using textures and effects that have to be baked into the textures so they are stored inside the j3o file. Make sure you only use a simple uv map for your models. You can also make sure this doesn’t happen by using the OgreXML exporter where you’ll quickly see this because the textures do not get exported at all.
@Johncl,
I assumed that Mifth was talking was implying that more triangles = bigger file size?
I’ve never even gotten close to 1 million tris! ^^
@normen,
As yet I’ve not used Blender for anything at all. All of my scene composition has been done in the scene composer. I’ve simply dragged in a teapot mesh (from the JME test data lib), then copied and pasted it around in the scene composer. Terrain was created with the terrain editor and skybox was created with the skybox Spatial creator. Could this contribute to the large file size at all?
Lolliver.
The terrain easily takes 100.000 triangles and more depending on LOD settings. Before I added the LOD control my terrain would show over 500.000 triangles. Turn on the HUD debug info and you can turn around in your scene and see exactly how many you have visible at any time and see how it affects your framerate. Try adding/removing stuff and you will quickly see the culprit.
When you add meshes like mad the vertex count will inevitably rise yeah :roll:. How about linking models that are supposed to be in multiple times? What are you trying to code anyway? Return of the teapots? I think the only thing thats unrealistic is your tests…
So this topic has gone entirely off of the rails…
@normen
I don’t entirely understand what you mean by linking models? :?
I’m coding a stupid little first person platformer atm to get used to the engine. At the minute I’m using teapots as placeholder collectables.
Also my tests aren’t unrealistic, I’m going by the debug info gained by pressing F5. I’ll post some screenshots in a second.
Lolliver.
The same way you add the teapots, just using “Link in SceneComposer” instead of “Add in SceneComposer”.
Screenshots:
http://i.imgur.com/bEswS.png
^ No teapots on screen
http://i.imgur.com/bfepe.png
^ Two teapots on screen
@normen
Thanks, I’ll take a look into that now then
Okey doke, update time!
@normen,
positives:
Filesize went from 5mb to 23kb o:o
negatives:
No way to remove linked object from scene composer (that I found)
But regardless, until I start making these things properly in Blender it seems that linking’s the way to go.
Thanks for all the help folks!
Lolliver
Also the teapot we have in the test package is not a very good placeholder, it’s around 8k triangles.
You’d better use a sphere.
@lolliver0342 , if you don’t want to use linking to a scene, so you can use Blender2.6 as a scene composer.
I take from a .blend file object’s names and their position/rotation/scale. And then I clone objects with code and place them in the same place where they are in the .blend file.
It gives me easy editing and i can add as many objects as i need.
Here is my test:
test example code - http://code.google.com/p/jme-simple-examples/source/browse/JMESimpleExamples/src/MifthBasics/BlenderSceneComposer.java
.blend file scene - http://jme-simple-examples.googlecode.com/hg/JMESimpleExamples/assets/Models/blender_test_scene/blender_test_scene.blend
Just change .blend file path in the code when you will try to test it.
Here is a screenshot for the blender scene composer.
http://imageshack.us/photo/my-images/585/ee1r.jpg/
Uploaded with ImageShack.us
@nehon said:
Also the teapot we have in the test package is not a very good placeholder, it's around 8k triangles.
You'd better use a sphere.
Actually that makes it nearly a perfect placeholder, cause every real object you have in game later, should have less. So if it works with the teapot your fine :)
@EmpirePhoenix said:
Actually that makes it nearly a perfect placeholder, cause every real object you have in game later, should have less. So if it works with the teapot your fine :)
heheh true.