_dodger opened this issue on Nov 20, 2002 ยท 16 posts
_dodger posted Wed, 20 November 2002 at 7:15 PM
Does anyone know what the objFile in a spotlight is for?
i.e.
light spotLight 1
{
storageOffset 0 0.3487 0
objFileGeom 0 0 :Runtime:geometries:lights:spotLite.obj
}
Beforer any random speculation occurs, let me explain what I've already done investigating this:
I've created two new objects and tried them. I tried a bullseye-lantern shape and a wide open o-ring. I was thinking that it might be possible to make a geometry that would allow me to create an omnidirectional light in Poser, because that would just be really cool.
If there is no difference in effect, why, in fact, does it point to an objFile at all? There doesn't seem to be any reason I can see, and it doesn't use the objFile to create the lights (I haven't tried replacing the objFile directly to see if there is a change that way, but that would be an unwieldy way to work as you would have to replace the objFile each time you wanted to make a new light, and since RSRs lock, you could not use more than one in a scene (or even Poser session).
So, does anyone know more about this mystery than I?
lesbentley posted Wed, 20 November 2002 at 9:48 PM
Some time ago I tried replacing the reference with the P4 box, and have been wondering the same thing ever since. Only thing I can think of is it might be a legacy thing from an earlier version of Poser.
EnglishBob posted Thu, 21 November 2002 at 7:28 AM
Earlier versions didn't have spotlights. :-) If you open spotlight.obj in a viewer, you'll see it looks like the "spotlight" icon that you see when the light is visible in your scene. There are similar objs for magnets as well - it's just what Poser uses to show you where things are.
jkm posted Thu, 21 November 2002 at 11:09 AM
It probably uses the obj file just for display purposes. It needs to get the geometry of the spotlight shpae from somewhere in order to display it.
_dodger posted Thu, 21 November 2002 at 12:21 PM
Um, okay, allow me to repeat at the risk of redundancy... 'There is no difference even in the preview shown -- the preview still shows spotLite.obj regardless of the objFile I point it at.' Look over my post again, please.
EnglishBob posted Thu, 21 November 2002 at 6:16 PM
I replaced spotLite.obj with box.obj, suitably renamed - there was an rsr by the way, and a new one was created - the result is shown in the picture.
Unfortunately, the light's characteristics stayed the same. Only the preview shape was altered. As to why changing the reference line doesn't work: you did change both instances, right? It's now after midnight here, so I'll leave that question for someone else to answer.
_dodger posted Thu, 21 November 2002 at 6:27 PM
<<you did change both instances, right?>> Yup, of course. I didn't get anything different at all and no RSR was created. It was very strange, else I wouldn't have asked. B^)
lesbentley posted Thu, 21 November 2002 at 6:35 PM
Hum... this is interesting, a normal pose file (pz2) can only load channel and mat data, right? I'm not sure. But an lt2 can load a pose and an OBJECT, but only if the object is called "spotLite.obj" ?
_dodger posted Thu, 21 November 2002 at 10:33 PM
I'd guess that any of them can load an object if they have the command in them. I haven't verified that, but I do know that a prop can add a light.
EnglishBob posted Sat, 23 November 2002 at 11:44 AM
I repeated your experiment and got the same result - the "substituted" PZ3 still had spotLite.obj visible in it, even though I'd replaced it with box.obj. On re-saving this file, Poser had put spotLite.obj back in. It must be hard coded in; whenever a spotlight is used, it calls that mesh. The reference in the file is essentially useless.
ToolmakerSteve posted Mon, 02 December 2002 at 12:21 AM
les- "a normal pose file (pz2) can only load channel and mat data, right? I'm not sure. But an lt2 can load a pose and an OBJECT, but only if the object is called "spotLite.obj" ?" pose file can set any attributes of one or more figures or objects, that must already exist in the scene. Apparently, any of the other library files can be edited to load one or more figures or other objects, set to whatever pose each entity had when it was saved to the library. that is, lights could be put in a cr2 or vice versa. My point is, any library file other than pose can "pose" whatever object(s) it is loading... - - - - - - - - - - Re the geometry - I think I've seen .lt2 files that omit the objFileGeom line from a spotlight. Sounds like it is ignored when read in.
_dodger posted Mon, 02 December 2002 at 3:18 AM
anything can be added from any 2 library file with an add command in the doc{block.
lesbentley posted Tue, 03 December 2002 at 6:46 AM
"My point is, any library file other than pose can "pose" whatever object(s) it is loading..." Question is can it pose somthing that is already loaded? The golden goose is a file format/syntax that can pose a preloaded object/figure and add an object at the same time. A pose and prop file rolled into one.
lesbentley posted Tue, 03 December 2002 at 1:21 PM
Dodger you say, in post #12: "anything can be added from any 2 library file with an add command in the doc{block." Have you tried this with a pz2? or is it just theory? I have tried loading a prop from a pz2 in a number of ways and it does not work for me. I am aware that a figure must be loaded and selected for any pz2 to work, and have done this. I have tried renaming a pp2 to a pz2, and that does not work. As a pp2 contains a "doc" element this should work according to your theory, yes? If you have succeeded in loading a prop from a pz2, I would be very interested in the syntax, perhaps you could post an example file, as I have been trying to achieve this for a long time.
ToolmakerSteve posted Fri, 27 February 2004 at 11:38 PM
Thought I'd make one more comment on the "what is the obj line for": There are MANY places in the Poser file formats, where what is spit out is clearly a straight dump of the data format that the programmer (Larry) uses in memory. This is a dubious way to invent a file format, leading to redundant information, or ignored information. But, hey, it was a quick and dirty solution for Poser 1. "obj reference in spotlight" is simply another case of this Poser coding style. Hypothesis: Larry had a data format that has an obj field, because most entities need an obj. Silly for spotlight, which is hard-wired, but it is often easier for a programmer to use a common data structure for all objects. Dumping that raw data format out as the file format isn't exactly a "professional" solution, by today's standards. But it can be made to work. And it wasn't written by a cushy programming team, today. It was hacked out in pre-history by a lone programmer. And Thank God he did - as demonstrated by the fact that we're still using Poser many years later, despite all its deep flaws. Nothing better has come along yet (DAZ Studio still embryonic as I write this).
ToolmakerSteve posted Fri, 27 February 2004 at 11:39 PM
"If you have succeeded in loading a prop from a pz2" Impossible. It ain't gonna happen.