POV-Ray : Newsgroups : povray.binaries.scene-files : eval_pigment() and trace() HowTo : Re: eval_pigment() and trace() HowTo Server Time
27 Apr 2024 18:34:14 EDT (-0400)
  Re: eval_pigment() and trace() HowTo  
From: Thomas de Groot
Date: 11 Jul 2016 02:40:23
Message: <57833f57@news.povray.org>
On 10-7-2016 15:28, clipka wrote:
> Am 10.07.2016 um 09:00 schrieb Thomas de Groot:
>> On 9-7-2016 13:42, clipka wrote:
>>> Am 09.07.2016 um 13:17 schrieb Thomas de Groot:
>>>> On 9-7-2016 12:38, clipka wrote:
>>>>> Am 09.07.2016 um 08:52 schrieb Thomas de Groot:
>>>>>> On 7-7-2016 16:02, Bald Eagle wrote:
>>>>>>> I see:
>>>>>>> #declare WriteStrands = off; //set to 'on' for the first pass.
>>>>>>>
>>>>>>> Isn't there a way to just check if the file exists, and if not,
>>>>>>> create
>>>>>>> it?
>>>>>>> I looked - but it's not clear that this is possible.
>>>>>>> Seemed like a useful and desirable feature to be added, if that's the
>>>>>>> case.
>>>>>>>
>>>>>>
>>>>>> In fact, there is a simple reason why I did not use the file_exists(S)
>>>>>> function, now that I think about it. It is that you may want to test
>>>>>> different settings before choosing the final ones (at least that is
>>>>>> how
>>>>>> I work) and so - except for the very first time - there is always a
>>>>>> file
>>>>>> present.
>>>>>
>>>>> You could use something like:
>>>>>
>>>>>     #declare WriteStrands = off; // set to 'on' to force re-writing
>>>>>     ...
>>>>>     #if (!file_exists(...)) #declare WriteStrands = on; #end
>>>>>
>>>>
>>>> But, that would always set it to on, even when you want it to be off, or
>>>> do I misunderstand this?
>>>
>>> It would always set it to on _if_ the file does not already exist, so
>>> you don't need to manually set it to on for the first run.
>>>
>>> Of course if there are any use cases where you might want to have _no_
>>> file at all, then this is of no use.
>>
>> I think you misunderstand my use of the on/off switch.
>
> Not at all. But you apparently misunderstand my use of `file_exists()` ;)

That was a hypothesis I had not considered of course. ;-)

>
>> The writing away
>> of data is only meant as time saving later on when reading the data
>> (always faster than having to do the complete calculations for each
>> run). So, the switching off of the writing section (once you are
>> satisfied with the written data) is essential. A file_exist switch can
>> only make sense to check the existence of a file in the "Read" section
>> of the macro.
>
> No, the `file_exists()` test makes perfect sense before the file
> generation. It's pretty simple:
>
> - You use `#declare WriteStrands = on;` while experimenting, forcing a
> (re-)write on every run.
>
> - You use `#declare WriteStrands = off;` once you're ok, suppressing a
> re-write.
>
> - In case the file does not yet exist, the `#if (!file_exists(...))
> #declare WriteStrands = on; #end` overrides your choice and forces a
> write, thus making sure that the finished scene can be rendered as-is,
> with no tampering necessary even if the data file happens to be missing
> for some reason.
>

I see. Not sure if I want to do it that way though. I keep this in mind 
for when I 'really' need it :-)

-- 
Thomas


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.