Memory Conservation/Consumption

I thought I’d post a few tips for conserving memory and improving rendering output. Please feel free to correct or add to this list:

1) Use the 3GB switch on WinXP even if you don’t have 2+ GB.
2) Switch to WinXP X64.
3) Use instanced geometry whenever possible.
4) Reduce polygon count if possible. If you can get away with quality, a plugin like polygon cruncher will help.
5) Check texture sizes.
6) Check texture size DPI. 300 DPI is unnecessary - make it 72 DPI.
7) Create proxies using VRMesh.
8 ) Remove unecessary glass or switch to single-sided geometry.
9) Save out to VRImage.
10) Disable Frame Buffers on final renders and make sure you save.
11) Disable unecessary applications including those in taskbar.
12) Reduce glossies where unecessary.
13) Check for coplanar faces and unwelded imported ACAD geometry/vertices.

Re: Memory Conservation/Consumption

These are some great general tips-things we sometimes forget about but should always keep in mind. 6 however doesn’t seem to make sense to me. Although the image resolution (item 5) is important (e.g. 1024x768, 512x512, etc) the DPI (e.g. 300, 150, 72) should be irrelevant as this is a concern for printing applications. Whether my 2k texture is 72 dpi or 2000 dpi will make no difference.

David

Sometimes when you import another image (such as a picture or a painting) to be put in your scene, it comes in at 300 DPI - this can greatly contribute to the size of an image file. I found by turning these down to 72 DPI I can drastically reduce a bitmaps size thus making renderings less heavy.

I have not found this to be true. As long as the pixel dimensions remain the same the memory usage is the same. Unless you are actually resampling the image in photoshop there will be no change in the file size.

dpi doesnt really have any relevance in 3d stuff (aside from output renders), what does is the pixel width and height of the texture along with the amount of screen the object will take up, and lastly your final picture render size. Ideally you should feed your renderer something twice the quality the texture will display at.

Here’s a bit of a formula:

(Rendered image size) x (percent of screen object will take up) x 2

So if your final render size is 1000 x 1000 and the texured object will take up the full screen that means (1000 x 1000) x 1 x 2 = texture size of 2000 x 2000

If your render size is still 1000 x 1000 and your object will take up half of the screen this means 1000 x 1000 x 0.5 x 2 = 1000 x 1000

If you’re framed where half your object is taking up the full screen, this means 1000 x 1000 x 2 x 2 so a texture size of 4000 x 4000

Hopefully this makes sense :slight_smile:

So you both don’t think loading in a 3mb image versus a 150k image makes a difference? How about a bunch of them in a scene? I beg to differ.

That’s not what he’s saying. He’s saying taking a 300dpi image and changing it to 72dpi doesn’t change the size of the image.

A 300dpi image at 5inches x 10 inches is 1500 x 5000 pixels. Changing it to 72dpi still keeps it 1500 x 5000 pixels, only it is now 20 inches x 40 inches. Now, if you resample the image so that it is 72dpi but still 5 inches x 10 inches, then yes the image will be smaller.

This confusion is why its good to talk about things in size of pixels instead of dpi, especially when working in 3D. The dpi doesn’t matter, I can convert an image to be 1 dpi and still have all the same pixels. The overal pixel size of the image is what matters.

I understand that. …but DPI effects file size which does relate to processing and memory. 5 deals with the actual image size in pixels…

No it doesn’t.

These two images are the same image, with the same size in pixels. The only difference is that they have a different dpi setting (one is at 72, the other at 300).

72 dpi
300 dpi

They are the same size. What matters is not the dpi, what matters is the size of the image in pixels. Max/Vray doesn’t care what the dpi setting is because it is completely arbitrary. Max/Vray deals in pixels, not dpi.

Damn. I’m wrong. Can we go back and erase a few posts? Thanks for setting me straight on this… Sorry guys. :sweat_smile: (hides in corner.)

That being straightened out - does anyone else have any helpful suggestions to add?

does anyone have any further information on the 3GB switch for Windows XP? I’m curious to know more about it.

Here’s a trick for disabling the frame buffers from EGZ:
http://www.chaosgroup.com/forum/phpBB2/viewtopic.php?p=110486#110486

Here’s a method for enabling the 3GB under windows XP:
http://www.chaosgroup.com/forum/phpBB2/viewtopic.php?t=13176&highlight=boot

Assuming you make all your textures in PS using pixels as the intial size measurement then it doesnt matter what DPI is set at.

If for instance you make a new 10cmx10cm image and choose 300DPI then it WILL be much bigger. Just something to be wary of.
And especiall if you download some textures.. and they say they are 300DPI its quite possible that they are infact larger res pictures.

But it all comes down to what the pixel size is.

Absolutely - I always work in pixels in photoshop to avoid this since real world measurements have no real purpose in textures for 3d.

You don´t have to be ashamed when u don´t know something in particular. Computer graphics world is vast and u can´t know everything. I think the forum appreciates your contributions as you are a very active and ready to help member, so don´t worry! :slight_smile:

Not to keep shamin’ Juju on the subject, but I am AMAZED at how many graphic designers even don’t understand that DPI only determines the print size of an image. I can’t count the number of times I’ve sent out a rendering that was 72dpi since that’s what comes out of max and I get an email back from the marketing graphics guy asking for a 300dpi version.

It’s gotten to the point now where I just say “Sure! Check the FTP in a few minutes.” and reset the dpi in Photoshop. It’s so much easier than trying to convince them a 3200x2000 pixel image IS high enough for print, regardless of the 72dpi.

Thanks for the post, Juju. Now I’ve just gotta get everyone else in my office to conform to 8-bit texture resolution sizes.

Shaun

Keep the eye on the prize… eye on the prize…

14) Render to strips: http://www.chaosgroup.com/forum/phpBB2/viewtopic.php?t=13277&highlight=render+passes

15) Render out passes? (links anyone?)

16) A link to clear out Max Undo states to free up memory and also queing up multiple renderings when using Backburner with Proxies:
http://www.chaosgroup.com/forum/phpBB2/viewtopic.php?t=14241

i. Do a garbage collect “gc()” every now and then to get rid of legacy rubbish in your scene.

ii. Attach as many objects together as possible. This means actually attaching objects together, not grouping.

iii. Collapse Modifeir Stacks

20) Supposedly, ungrouping items helps free up memory. I haven’t tried it myself

I found a great script on scriptspot.com for this - it’s called ‘attach selected’ and was written by Neil Blevins. It also comes in handy for creating VRMeshes.