memory errors of death

Announcements, requests and support regarding the Blender Indigo export script
User avatar
drBouvierLeduc
Posts: 412
Joined: Wed Oct 11, 2006 2:32 am
Location: france

memory errors of death

Post by drBouvierLeduc » Fri Feb 15, 2008 3:37 am

Hi all,
I was wondering, when using latest "official" blendigo version, how do you deal with memory errors ?
From what I understand, memory errors aren't related to the entire polycount of the scene, but rather on the polycount of each mesh.
I believe the limit is around ~300k or something ? So if no mesh is higher then this in the scene, there should be no problem.
In the project I'm working on, lots of meshes are sculpted and quite detailled. So I have split each of them, so that no one is higher than 200k polys. And still I get those memory errors...
So I'm a little lost there...

Smartden, I know you're working on that problem, is it possible to test that version of blendigo ?

User avatar
zsouthboy
Posts: 1395
Joined: Fri Oct 13, 2006 5:12 am

Post by zsouthboy » Fri Feb 15, 2008 4:44 am

Use an x64 build of blender, and x64 python, and add tons of ram.

The magic limit disappears.

(The limit is actually a python problem - our blender exporters essentially try to work on an entire mesh at once..)

User avatar
drBouvierLeduc
Posts: 412
Joined: Wed Oct 11, 2006 2:32 am
Location: france

Post by drBouvierLeduc » Fri Feb 15, 2008 4:57 am

unfortunally I'm on windows, so no x64blender... Anyway I heard that the limit is blowned away in the upcoming version of blendigo.

User avatar
dougal2
Developer
Posts: 2532
Joined: Wed Nov 15, 2006 8:17 am
Location: South London

Post by dougal2 » Fri Feb 15, 2008 5:43 am

can you get blender to dump .obj files instead ?

User avatar
drBouvierLeduc
Posts: 412
Joined: Wed Oct 11, 2006 2:32 am
Location: france

Post by drBouvierLeduc » Fri Feb 15, 2008 5:59 am

You mean export the scene as obj. files then import them in indigo ? Too much work for my lazyness !

User avatar
dougal2
Developer
Posts: 2532
Joined: Wed Nov 15, 2006 8:17 am
Location: South London

Post by dougal2 » Fri Feb 15, 2008 6:13 am

Well, I didn't mean manually, of course that'd be loads of painful work. It was more of an open question/suggestion to the exporter writer(s).

PhilBo
Posts: 87
Joined: Tue Oct 03, 2006 2:09 pm
Location: Michigan, USA

Post by PhilBo » Fri Feb 15, 2008 8:56 am

You could setup a new partition with Linux 64 bit and then do the stuff there. Indigo runs great under wine or you could bring the files back over to the Windows partition and run it from there.

Wedge
Posts: 441
Joined: Sun Jan 14, 2007 11:33 am
Location: East Coast, USA

Post by Wedge » Fri Feb 15, 2008 10:12 am

All I can advise is to use the exporter I maintain until Blendigo is fixed.

Or do something about the big meshes. :)

The limit is not directly your fault. The old Blender exporters (And I'm assuming without looking at Blendigo code, that it exports like the old exporters) try to put all of the mesh data into one string variable. This is bad, and this is the problem.

32 bit system can handle this fine. I export 1 million vert objects for fun on my old computer. (it has 2gb ram)
Content contained in my posts is for informational purposes only and is used at your own risk.

User avatar
zsouthboy
Posts: 1395
Joined: Fri Oct 13, 2006 5:12 am

Post by zsouthboy » Sat Feb 16, 2008 9:47 am

Oh, I forgot to link it - use the LAA compiled Blender.

http://www.graphicall.org/builds/builds ... how&id=493

i was using it for displacement export on win64 - it'll happily take 3g+ of ram before crashing, rather than ~1.2 G

User avatar
OnoSendai
Developer
Posts: 6244
Joined: Sat May 20, 2006 6:16 pm
Location: Wellington, NZ
Contact:

Post by OnoSendai » Sat Feb 16, 2008 1:07 pm

Wedge is correct, I had a quick look at Blendigo, and it keeps the mesh data as one (or more?) temporary variables.
This is probably causing the out of memory errors.
To handle large meshes efficiently, it should write them out to disk as soon as possible.
There may be some issues relating to collapsing shared vertices, but this probably isn't done in Blendigo anyway.

I'm not sure if Smartden is working on this, but I'd be happy personally if someone else fixed it, as it seems a problem for a lot of people :)

User avatar
dougal2
Developer
Posts: 2532
Joined: Wed Nov 15, 2006 8:17 am
Location: South London

Post by dougal2 » Sun Feb 17, 2008 12:35 am

I'm not a python programmer, nor have I ever seen blendigo's source, but shouldn't it be fairly simple to change
var += something
to
file.write( something )
?

I've done precisely this change within MtI for writing large numbers of instances. Much quicker and uses less memory.

User avatar
OnoSendai
Developer
Posts: 6244
Joined: Sat May 20, 2006 6:16 pm
Location: Wellington, NZ
Contact:

Post by OnoSendai » Sun Feb 17, 2008 1:44 am

That's more or less it Dougal2, but it will require a little bit of refactoring.

User avatar
SmartDen
Developer
Posts: 999
Joined: Fri Oct 13, 2006 10:58 pm
Location: Canary Islands
Contact:

Post by SmartDen » Sun Feb 17, 2008 5:01 am

i'm working on it already. and i can say, it's make me pretty "paint in the ass". Ono has right, it needs some refactoring. But i think drBouvierLeduc and me will soon present you new version, that can handle big meshes ;) I plea you, be a little bit longer patient.
Last edited by SmartDen on Sun Feb 17, 2008 7:23 am, edited 1 time in total.

BbB
Posts: 1996
Joined: Fri Feb 09, 2007 8:28 am
Location: Berlin
Contact:

Post by BbB » Sun Feb 17, 2008 6:07 am

Thanks SmartDen. That'd be great. Also suffering from this a bit.

Wedge
Posts: 441
Joined: Sun Jan 14, 2007 11:33 am
Location: East Coast, USA

Post by Wedge » Sun Feb 17, 2008 8:46 am

The exporters are written in modules. Just take out the exportMesh module from mine and throw it in Blendigo. Do you need my help?

Shouldn't take too long. Let it write directly out to file one obj per file like I did. Best way to do it. And object file is better than Indigo format. (no offense) This is because the less characters are used to identify what is what. I'd make obj file even more efficient by using only one letter to represent textures and normals rather than two. For every vert, normal, or texture location all you should need is one letter allowing the program to figure out what it is. Makes file size much smaller when working with large mesh.

Should remove any calling to NMESH as well, it has been deprecated for quite some time now.

I don't mind helping, just have to ask me. I'd like to think that the exporter I work on could be the 'core' of Blendigo and Blendigo can go on making its connection with the user while I fix the problems behind the scene and do not care so much for the ease of use. :)

I just get disappointed to see errors keep showing up months after I fixed them. And even worse to see fixes being brought up that aren't really fixes. :(
Content contained in my posts is for informational purposes only and is used at your own risk.

Post Reply
23 posts

Who is online

Users browsing this forum: No registered users and 27 guests