Bug in 6.6 SP2 ? RAM limitations 2004-03-02 - By Kris Krieger
Back At 08:37 AM 02-03-04, Baker, Ed wrote: >It works fine now. I think it was just a glitch in that scene. I don't >use alphas either. I stay with transparency maps too. Like I said, once >I Re-opened it in 6.6. Everything worked just fine. Through multiple >changes and a couple of start overs too I think. So, it was just a one >time bug as far as I can tell.
My guess, then, is that the RAM was getting full. My observations suggest that happens is: tS tries to hold as much of the scene, including copies of altered objects (which allows the UnDo and ReDo functions to work) in the RAM so that they're right at the user's fingertips.
If you have a lot of RAM (i.e., like 2-3 GBs as the new machines can carry) and the OS to handle it, *or* you keep your scenes small in terms not only of polygons but also in terms of texture complexity, this works out OK.
((NOTE: I will keep saying "RAM" but I'm sure that the Video Card memory also plays a significant part in the whole affair - I'm just to lazy to continually tyupe "RAM and/or video card memory", so I'm just going to type "RAM".))
The thing is that layered textures are quite memory-intensive - my observations have been that, assuming the lighting is the same in 2 scenes, that one with huge (interms of polygons/faces) objects that have simple texturing will render more quickly, and also will be more nimble in terms of real-time response, than a simpler set of objects with complex multilayered textures. IOW, sometimes you're better off, in terms of speed, if you used a shelled object, where the outermost one uses transparency, than you are if you try to use a multilayered texture that includes the transparency.
Does that make sense? I'm generally not very good with explaining/describing things, so hopefully that is a bit mproe clear than mud...
The drawback to shells, however, is that (at least in my experience) the inner or bottom object's reflectance will be affected by the reflectance of the upper/outer "shell" oibject, because even tho' you've applied your transparency map to the shell, that transparency evidently does not translate through to the refelctance.
I found this out while trying to "hang ivy over a wall" - first thing I tried was the obvious one of applying the Ivy transparency, bump, and texture onto a cube, and placing the cube over a wall object. The reflectances were, of course, different (matte wall, somewhat shiny ivy), and since I did want the ivy to cast shadows onto the wall, given that the different reflectance and the shadows were the whole reason to bother doing this in the first place. IOW, I could not set the ivy object to be "no shadows cast/received", because that would trash the whole appearance. Ergo, the reflectance of the wall was negatively affected by the "transparent" sections of the ivy-cube.
To get around that one, having already used PSP to create a 16-color (B&W) BMP transparency map (tS will not utilize 2-color BMPs - minimum # of colors has to be 16, dunno whay that's just how it is), I opened the map in PSP again, colored in all the areas that were to be covered by the actual ivy texture, and saved as a PCX file that I could then open in Micrografx Designer (Cretaceous Era Version, but hey, it works...), traced the outline, exported as DXF, and finagled in tS to end up with a 3D shape that exactly matched the shape of the ivy texture.
So, in the end: To cast shadows, use "shell" object shaped like your texture object. To add non-shadow texture effect, add another layer to your material, and place the transparency map there (remembering that Layer 1 sees white as opaque but layer 2 and above see black as opaque), and apply to texture, bump, and reflectance as required.
Re: how much RAM is used, tho' (since that was the original subject =:-o !), I'm pretty sure that the multilayerd texture version is actually more memory-intensive than is the "shell object" version. And I think that's why the texture preview sphere/plane sometimes gets a little "tired" and might not show the texture accurately - i.e., not enough RAM left over for it. That's just a guess but it does explain what I've observed over the years, and seems logical.
To clear the RAM, save a new version of the scene (in case you need to go back to the original for something), and close tS. This seems to free up a lot of the memory, I think because now, the scene info is saved to the HD (or whatever) and tS can just refer to it from there, rather than having to keep nearly everything in RAM.
Again, the mechanism is just guesswork on my part but it seems to explain what I've been observing and it seems to make sense (famous last words, right <g>?). If the mechanism is something different, hopefully someone will offer the correct explanation :) .
I hope that made some sense. HTH - let me know if I was confusing in any part and I'll try to make more sense (difficult tho' that may be <LOL!>
- Kris
- Kris M. Krieger http://www.pterochromics.com
|
|