Fri, Nov 22, 7:21 PM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2024 Nov 21 6:06 am)



Subject: Morphs and rendering time. Do morphs matter?


AnAardvark ( ) posted Tue, 10 October 2006 at 1:40 PM · edited Fri, 22 November 2024 at 7:18 PM

Do morphs matter for rendering time? In particular, do morphs with zero values matter?

Also, when you set the maximum texture size for Firefly, how does it handle textures that are larger. Does it reduce their size, or does it do something else arcane. (I've read that you can reduce the size of textures yourself -- this is pretty straightforward and I know how to do it, but does it really matter if you have reduced the maximum texture size to 1024 in Firefly?)


stewer ( ) posted Tue, 10 October 2006 at 2:00 PM

Morphs don't influence render time. Textures that are larger than the maximum texture size will get resized automatically.


diolma ( ) posted Tue, 10 October 2006 at 4:41 PM

Stewer is correct, except in critcical situations.

Morphs just change the existing geometry. The amount of data needed to re-locate a vertex of  the geometry is very small. For single characters, the difference is insignificant. However, if you have lots of characters in your scene, then the bytes can add up.. Probably not worth worrying about tho' unless you a seriously lacking memory.

Textures: A similar sort of thing, but textures (even with maximum texture size reduced in FireFly), still take up the same amount of memory inside Poser. The texture-size reduction takes place at render-time only, so the whole texture is still sitting there in Poser's memory area. And FireFly will be fractionally slower, as it has to do all the calculations to reduce the texture size as it renders.

If you only have a few figures/props, then the difference can probably be measured in milliseconds. But if you have a large number of figures/props (eg, 4 V3's) all with (eg) 4000x4000 textures, then it's better to create reduced size textures outside of Poser and use those instead. Especially for any figures/props in the background.

And once you've reduced your textures, be sure to:
a) Load your PZ3 scene (the one with the big textures).
b) Load and apply any (externally) reduced textures.
c) Re-save the scene (as a PZ3, preferably under a new name)
d) Exit Poser.
e) Restart poser and load the recently created scene.

That will flush any large texture out of memory (Poser will otherwise try to plod on with all those large textures still hogging memory, even though they're no longer used).

Hope that helps
Cheers,
Diolma



Dizzi ( ) posted Wed, 11 October 2006 at 3:10 AM

Quote - The texture-size reduction takes place at render-time only, so the whole texture is still sitting there in Poser's memory area.

If it was like that, then this option would be completely useless. And that's why it's not that way. Textures are reduced after loading so they only take the memory of the reduced texture's (uncompressed) size.



diolma ( ) posted Wed, 11 October 2006 at 2:14 PM · edited Wed, 11 October 2006 at 2:16 PM

@Dizzi

I don't think I am wrong...

From the manual:
The FireFly renderer has the capability to load texture maps at any given size, regardless of the actual map size.
(My italics).

Note that it's the RENDERER that loads the reduced texture, not Poser.
When you assign a texture in Poser's Materials room, it comes in at full size, regardless.  Firefly loads a new copy of the texture for its own use (while sitting there displaying the "loading objects" message).

Poser still has to load its own copy of the texture so it can be used in the Pose Room preview when using Texture Shaded mode, and also (IIRC) for the P4 renderer..

However, maybe I phrased what I was trying to explain badly.

Cheers,
Diolma



Dizzi ( ) posted Wed, 11 October 2006 at 3:21 PM

Quote - When you assign a texture in Poser's Materials room, it comes in at full size, regardless.  Firefly loads a new copy of the texture for its own use (while sitting there displaying the "loading objects" message).

Poser still has to load its own copy of the texture so it can be used in the Pose Room preview when using Texture Shaded mode, and also (IIRC) for the P4 renderer..

Well, you're correct in that firefly loads a new copy, but so does the P4 renderer as a low res version is used for the preview in the pose room.



stewer ( ) posted Wed, 11 October 2006 at 3:28 PM · edited Wed, 11 October 2006 at 3:29 PM

Quote - When you assign a texture in Poser's Materials room, it comes in at full size, regardless.

No, it doesn't. The textures for preview in the material room come in at 256x256, there's no benefit in going any higher than that. > Quote - Poser still has to load its own copy of the texture so it can be used in the Pose Room preview

This one is at 256x256, shared with the material room. > Quote - when using Texture Shaded mode, and also (IIRC) for the P4 renderer..

For the P4 renderer they are loaded at full size and unloaded after rendering.


Angelouscuitry ( ) posted Wed, 11 October 2006 at 8:24 PM

AnAardvark - You've thrown everybody off coarse by asking for "Speed."  Morphs may not alter render time, but that's not to say(especially considering "0" valued morphs) they wo'nt easily become your bottleneck.

You're RAM will dictate what gets rendered and what does not when you factor how large a scene you want to load Vs. how large a file you want to output.

I have 2 V3.PZ3s(With only V3 inside) for this reason.  One archives all of my morphs and magents, is a 250MB.PZ3, and only used for sculpting.  The other is identical, has only 1 morph per part, is a 12MB.PZ3, and used for Final Renders, Posing, etc.

There are a couple of ways to perform this reduction, that depend on whether you're talking about Magnets, also, or not:

With magnets the only one way to accomplish this is to:

A.) Export morph.OBJs for each body part.

B.)  Load the fat .PZ3 into Morphmanager, strip every morph you can find.

C.) Load that new .PZ3 into poser, and then import each morph.obj one at a time.

If you're not concerned about Magnets it's alot easier:

1.) First run SVDL's SpawnCharacter.PY

2.) Run Ockhams ZeroMorphs.PY

3.)  Run SVDL's RemoveMorphs.PY (Note:If you delete everything inside SVDLs .exc file, for the character you are using, then the script will remove expression/phoneme morphs as well.)

4.) Run the INJ you made in step 1.

5.)  Go tell SVDL and Ockham I sent you!

Or(For the Flash-Bang effect):

Just do steps 3, and 4, to remove all morphs with a value of Zero...

:tt2:


AnAardvark ( ) posted Thu, 12 October 2006 at 9:19 AM

It looks to me that I can just run SVDL's RemoveMorphs once I've got all the figures posed. Of course, if I need to change their expressons, or whatever afterward, then I will need to reinject, but I don't think that its much of a problem. It looks like I can even dispense with the exclusion files once I'm ready for a final render. Thanks a lot, I think this will help.


Angelouscuitry ( ) posted Thu, 12 October 2006 at 9:23 AM · edited Thu, 12 October 2006 at 9:25 AM

The idea behind using the other Pythons it to take morphspace economics to the last level.  Instaed of shedding what  your not using consilidating, shedding as much as logically possible, and running with the 1.


AnAardvark ( ) posted Thu, 12 October 2006 at 9:30 AM

I see. I've used SVDL's SpawnCharacter morph to get a single morph for a character, mostly in order to use MorphManager with it, but found that the problem with creating a single morph is it makes conforming clothes harder.  I also found that I was noticing differences between my figure as I created it in a character file, and when I used a minimized injection file. (Don't know why really.) I've gone to just using the PZ3s for my continuing characters. (Almost all of my art is based around a handful of characters, so I'm willing to trade space in my runtime for convenience). It sounds like RemoveMorphs works while Poser is running, so that is probably the way to go...

thanks a lot folks


AnAardvark ( ) posted Mon, 16 October 2006 at 11:14 AM

Remove morphs worked well. I'm now going to see if it can remove the unused morph channels from some of the character hair (which has a bunch of channels as well).


Angelouscuitry ( ) posted Mon, 16 October 2006 at 12:20 PM


Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.