Wednesday, January 8, 2003 15:13
MST (GMT -0700)
NOTE : This page is in the process of being written (I am updating periodically as I write). Some of the information on this page may not make sense until the document is complete, but it is being provided in the event that the information I already covered helps someone with a project they are working on at the moment.
Now you're gonna feel a little sting, okay? (Delta Injection)
Author : Rob Whisenant (aka "rbtwhiz")
Delta, when speaking in terms of mathematics, is a symbol or term used to denote a quantitative [expressible] change. In Poser, delta is used to describe a change in the XYZ coordinates of any given vertex [index], in any given group, with regard to morph targets. Morph targets are stored within Poser cr2 files as a list of vertices that have changed from their original [default] location, and what that new location is. Delta Injection, is a way to store the information in a remote location and place it into play when needed so as to limit system resources afforded to morphs that are not being used. It also provides a very plausible way to update a single morph without need to update an entire figure for the sake of that one morph.
Who & When:
Delta Injection first appeared in Poser-land when Ron 'DraX' DeFreitas released his Musclebound Michael character for DAZ's Michael figure, in November 2001. He made first mention of the hack in September 2001. Until that point, there had been a few "what if..." discussions in the various forums and newsgroups, but nobody actually tried it.
First things first, in order for delta injection to work, the channel you are "injecting" into... must already exist. Think of it more as delta replacement, rather than actual "injection". Even if you are replacing nothing [an empty container] with something of substance.
Included within the 3rd generation Millennium figures, are several channels that are meant for expansion (by both DAZ and the community DAZ serves). These channels exists in each bodypart and begin with either "PBMDC_" or "PBMCC_". The ones labeled "PBMDC_" are reserved for DAZ; so that DAZ doesn't inadvertently overwrite a community members injected morph... While the "PBMCC_" are meant specifically for third party developers, the community. The initial release of Victoria 3 contained 20 reserved DAZ channels in each bodypart, and 10 for the community. The head and neck included 10 additional channels. Victoria 3 Service Release 1 (sr1) changes that by increasing those values to 30 for both DAZ and the community, in each bodypart, and 50 each in the head and neck.
Due the nature of how delta injection works, for any number of morphs built to occupy the same channel... the last one applied in the sequence will be the one that prevails and thus the one that the user will see when the associated dial is adjusted in the figure itself.
Okay... but HOW?
Below is another example that includes two groups that share a morph across group boundaries. I've also incorporated ERC to slave the neck morph channel to the appropriate channel in the head.
One thing to note in regard to injecting ERC
is that while you can inject it, you cannot remove it in the same manner.
Also, attempts at replacing injected ERC code from a previous attempt
will result in each subsequent attempt becoming additive... meaning the
referrences will stack, not replace.
Copyright © 2002 Robert E. Whisenant. All Rights Reserved. www.rbtwhiz.com