 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hello,
I found this in some very old code (2016) :
light_source {
<0, 100, 0>
color White=1
}
and with thise, the light in the scene is red.
of course, back to "normal" color White give white light.
How this <color White=1> is interpreted and why does it turn red?
--
kurtz le pirate
compagnie de la banquise
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
kurtz le pirate <kur### [at] free fr> wrote:
> Hello,
>
>
> I found this in some very old code (2016) :
>
> light_source {
> <0, 100, 0>
> color White=1
> }
> How this <color White=1> is interpreted and why does it turn red?
Yeah, that's weird.
The parser is a strange and wondrous thing.
Presumably you are including colors.inc.
Can you output the color value of White as a 5D vector to the debug stream
before instantiating the light source, and then show what happens to it after?
- BE
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 2026-02-24 12:36 (-4), kurtz le pirate wrote:
>
> How this <color White=1> is interpreted and why does it turn red?
Where does the identifier `White` come from? Like BE, I would like to
know its value.
My understanding of that syntax is that it compares each component of
`White` with 1. But if `White` comes from colors.inc, the
component-wise comparison would still end up as white. The only way I
can see this evaluating as red is if `White.red` is exactly 1, and
`White.green`, `White.blue`, `White.filter`, and `White.transmit` are
all something other than 1.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 25/02/2026 04:21, Cousin Ricky wrote:
> On 2026-02-24 12:36 (-4), kurtz le pirate wrote:
>>
>> How this <color White=1> is interpreted and why does it turn red?
>
> Where does the identifier `White` come from? Like BE, I would like to
> know its value.
White come from "colors.inc"
> My understanding of that syntax is that it compares each component of
> `White` with 1. But if `White` comes from colors.inc, the
> component-wise comparison would still end up as white. The only way I
> can see this evaluating as red is if `White.red` is exactly 1, and
> `White.green`, `White.blue`, `White.filter`, and `White.transmit` are
> all something other than 1.
>
I also thought that "=" was interpreted as a comparison operator.
But since “White” is defined by rgb 1, that doesn't explain anything.
--
kurtz le pirate
compagnie de la banquise
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
[before light_source]
White = <1.000, 1.000, 1.000, 0.000, 0.000>
[after light_source]
White = <1.000, 1.000, 1.000, 0.000, 0.000>
"C:\Users\Mini\Documents\POV-Ray\v3.8-beta\scenes\_CodeScratchPad.pov" line 13:
Parse Warning: Expected pure RGB color expression,
unexpected filter and transmit components will have no effect.
-
"C:\Users\Mini\Documents\POV-Ray\v3.8-beta\scenes\_CodeScratchPad.pov" line 16:
Parse Error: Parse halted by #error directive: No
objects in scene
I'm thinking that the red must be coming from something else.
Post the whole scene, a link, or at least more to work from?
- BE
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Le 2026-02-25 à 06:45, Bald Eagle a écrit :
> [before light_source]
> White = <1.000, 1.000, 1.000, 0.000, 0.000>
>
> [after light_source]
> White = <1.000, 1.000, 1.000, 0.000, 0.000>
> "C:\Users\Mini\Documents\POV-Ray\v3.8-beta\scenes\_CodeScratchPad.pov" line 13:
> Parse Warning: Expected pure RGB color expression,
> unexpected filter and transmit components will have no effect.
> -
> "C:\Users\Mini\Documents\POV-Ray\v3.8-beta\scenes\_CodeScratchPad.pov" line 16:
> Parse Error: Parse halted by #error directive: No
> objects in scene
>
> I'm thinking that the red must be coming from something else.
> Post the whole scene, a link, or at least more to work from?
>
> - BE
>
Just tested, using this : #declare W = (White=1);
And got this :
W = <1.000, 0.000, 0.000, 1.000, 1.000>
NOT what I would expect.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Alain Martel <kua### [at] videotron ca> wrote:
> Just tested, using this : #declare W = (White=1);
> And got this :
>
> W = <1.000, 0.000, 0.000, 1.000, 1.000>
> NOT what I would expect.
Yes indeed, VERY strange.
I was going to do something like that, but I needed to head out.
what if plug (White=1) directly into a debug vstr statement?
- BE
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 226-02-24 12:36 (-4), kurtz le pirate wrote:
>
> How this <color White=1> is interpreted and why does it turn red?
I just tried it with different versions of POV-Ray. It is red only with
POV-Ray 3.8 and the discontinued POV-Ray 3.7.1. It is white for all
versions 3.5 to 3.7.0.10.
This appears to be a bug that was introduced in POV-Ray 3.7.1.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Cousin Ricky <ric### [at] yahoo com> wrote:
> On 226-02-24 12:36 (-4), kurtz le pirate wrote:
> >
> > How this <color White=1> is interpreted and why does it turn red?
>
> I just tried it with different versions of POV-Ray. It is red only with
> POV-Ray 3.8 and the discontinued POV-Ray 3.7.1. It is white for all
> versions 3.5 to 3.7.0.10.
>
> This appears to be a bug that was introduced in POV-Ray 3.7.1.
Nice work, Richard.
So what are you doing that I didn't?
Because as you can see above/below, I'm using 3.8
[after light_source]
White = <1.000, 1.000, 1.000, 0.000, 0.000>
"C:\Users\Mini\Documents\POV-Ray\v3.8-beta\scenes\_CodeScratchPad.pov" line 13:
Parse Warning: Expected pure RGB color expression,
unexpected filter and transmit components will have no effect.
Are you outputting the color value with vstr(), or performing a render using
that light source?
I'm just trying to understand where this all goes off the rails, and where to
look under the hood.
- BE
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 2026-02-25 16:11 (-4), Bald Eagle wrote:
> Cousin Ricky <ric### [at] yahoo com> wrote:
>> On 226-02-24 12:36 (-4), kurtz le pirate wrote:
>>>
>>> How this <color White=1> is interpreted and why does it turn red?
>>
>> I just tried it with different versions of POV-Ray. It is red only with
>> POV-Ray 3.8 and the discontinued POV-Ray 3.7.1. It is white for all
>> versions 3.5 to 3.7.0.10.
>>
>> This appears to be a bug that was introduced in POV-Ray 3.7.1.
>
> Nice work, Richard.
> So what are you doing that I didn't?
> Because as you can see above/below, I'm using 3.8
I just opened a bug report on GitHub, issue #486.
https://github.com/POV-Ray/povray/issues/486
> [after light_source]
> White = <1.000, 1.000, 1.000, 0.000, 0.000>
> "C:\Users\Mini\Documents\POV-Ray\v3.8-beta\scenes\_CodeScratchPad.pov" line 13:
> Parse Warning: Expected pure RGB color expression,
> unexpected filter and transmit components will have no effect.
The warning about unexpected filter and transmit components indicates
that the bug did manifest, but without altering `White`. Did you create
an image output? Did you vstr() the expression `(White=1)`?
> Are you outputting the color value with vstr(), or performing a render using
> that light source?
Both. My source code is in the GitHub report.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|
 |