POV-Ray : Newsgroups : povray.general : POV-CSDL (or Java Binding?) Server Time
10 Aug 2024 11:23:07 EDT (-0400)
  POV-CSDL (or Java Binding?) (Message 63 to 72 of 92)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: Chris Huff
Subject: Re: POV-CSDL (or Java Binding?)
Date: 14 Mar 2000 07:13:13
Message: <chrishuff_99-9DE9DD.07150614032000@news.povray.org>
In article <9=XNONfHim9haARAc396blnM8yDn@4ax.com>, Glen Berry 
<7no### [at] ezwvcom> wrote:

> Perhaps the parser could scan for such interactive features first, and
> let the user know that they need to watch the screen to add input to
> the scene data. If no interactive features were found in the scene
> files, then the parser could even issue a statement to that effect,
> and proceed to render the scene while you went out for the weekend.

There is still the problem of having to wait for the dialog/prompt to 
pop up while the scene is parsing. I have had scenes that took 45 
minutes to parse.


> It should also be possible to "remember" the values entered during the
> last rendering of an interactive scene file, and use them for
> "default" values when queried by the current interactive rendering.
> Let's say you have ten seconds to change the default value, or the
> scene continues parsing with the default value. Hitting the "return"
> key would simply accept the default value as-is, and avoid the ten
> second delay. In order to store the previous query values, POV's
> text-file output capabilities can be put to use in a method similar to
> Nathan's use of an external file for storing photon or radiosity data
> for subsequent renders.

This is getting too interface-dependant. I would rather not have 
language features depend on the interfaces of different platforms.
And what about automatic rendering? If POV is being controlled through 
something like a web page, this kind of feature would have to be removed 
or heavily modified.

It is simple enough to make an include file with the variables you want 
to use so you don't have to remember the names, or you can put them in 
the main file and just use comments well. And this doesn't have the 
complications of a user prompt.

-- 
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/


Post a reply to this message

From: Gilles Tran
Subject: Re: POV-CSDL (or Java Binding?)
Date: 14 Mar 2000 08:38:10
Message: <38CE40F8.611CD1F7@inapg.inra.fr>
Glen Berry wrote:

> It isn't to me, but it is for some people. I would rather see old
> versions of POV used to handle old POV code, than trying to make a new
> version of POV bend over backwards and parse legacy code. It usually
> isn't that hard to update a POV scene to fit a revised syntax. With
> the exception of halos, the feature set only seems to grow, never
> shrink. Even in the case of halos, there are work-arounds.

Hmm. Actually there are people with a large amounts of legacy code and
who are very thankful for backward compatibility ! I can work fast on
very complex scenes today because I can re-use code written 4 years ago
with little changes, apart the occasional missing semi-colon. And I'm not
talking about code that would only take 10-20 minutes of rewriting (this
is the time it may take already to track missing semi-colons).
I do update old code but, believe me, a minimal backward compatibility
is heaven-sent.

Also, I think that one of the big strengthes of POV is that is has been very
stable over the years, possibly at the expense of new stuff coming in.
POV users are basically hobbyists : unlike users working in a professional
environment (who have to keep up with every new thing because the market
demands it) they use it at their own pace, and on their spare time.
We often rely on "old stuff" to have fun, from utilities to macros, include files

or even translated manuals (for the non-English speaking people).
This legacy may be seen as a burden (it certainly is), but it is also one
of the things that keeps POV alive, because it has allowed people to become
experienced and thus make better scenes and share knowledge with new users.


G.


Post a reply to this message

From: Glen Berry
Subject: Re: POV-CSDL (or Java Binding?)
Date: 14 Mar 2000 13:39:42
Message: <GIHOOHWP57GVgbOx81s8aTSybt3d@4ax.com>
On Tue, 14 Mar 2000 07:15:06 -0500, Chris Huff
<chr### [at] yahoocom> wrote:

>In article <9=XNONfHim9haARAc396blnM8yDn@4ax.com>, Glen Berry 
><7no### [at] ezwvcom> wrote:
>
>> Perhaps the parser could scan for such interactive features first, and
>> let the user know that they need to watch the screen to add input to
>> the scene data. If no interactive features were found in the scene
>> files, then the parser could even issue a statement to that effect,
>> and proceed to render the scene while you went out for the weekend.
>
>There is still the problem of having to wait for the dialog/prompt to 
>pop up while the scene is parsing. I have had scenes that took 45 
>minutes to parse.

I can't imagine how it would possibly take anything approaching 45
minutes to scan for the appearance of a few interactive keywords,
requiring user data input,  in a POV scene file. If some are found,
the values would be entered at that time, before the "real" parsing
would begin. There should be no such thing as sitting in front of your
monitor for 45 minutes waiting to enter data into a scene that is
parsing.

>> It should also be possible to "remember" the values entered during the
>> last rendering of an interactive scene file, and use them for
>> "default" values when queried by the current interactive rendering.
>> Let's say you have ten seconds to change the default value, or the
>> scene continues parsing with the default value. Hitting the "return"
>> key would simply accept the default value as-is, and avoid the ten
>> second delay. In order to store the previous query values, POV's
>> text-file output capabilities can be put to use in a method similar to
>> Nathan's use of an external file for storing photon or radiosity data
>> for subsequent renders.
>
>This is getting too interface-dependant. I would rather not have 
>language features depend on the interfaces of different platforms.

Are you telling me that ASCII text file reading and writing is a
highly platform-dependent operation? What about asking an end user to
interactively type a variable in response to an ASCII screen prompt,
are you saying that is also highly platform-dependent? It just so
happens that these operations are found in every basic C/C++ book I
have seen. I always thought they were considered portable.

>And what about automatic rendering? If POV is being controlled through 
>something like a web page, this kind of feature would have to be removed 
>or heavily modified.

Just because a feature might not be useful to you for every scene you
write, doesn't mean the feature shouldn't exist. Do you currently use
every keyword in POV for each scene you create? I think not.

If you have an objection to user-interactive pre-parsing, no one will
make you use it. At this point, I'm wondering if there is *any*
feature-set change I could suggest for POV-Ray and get a favorable
response from you.

>It is simple enough to make an include file with the variables you want 
>to use so you don't have to remember the names, or you can put them in 
>the main file and just use comments well. And this doesn't have the 
>complications of a user prompt.

"...complications of a user prompt"?

Some would say that a user prompt would greatly simplify some things.
One wouldn't have to remember all the names of all the variables in a
scene file that frequently needed changing. The script would prompt
you for values as it needed them. One person could write an
interactive include file and another person could run it without ever
having to look inside the source code to find all the variables that
need to be changed to suit their particular needs. There would be no
more searching through convoluted code, possibly scattered through
several include files.

You seem to have the mind set that in the future all scripts would be
interactive and you wouldn't be able to overide that interactivity. No
one is proposing a scenario like that. If my earlier suggestion for a
default value that is used after time-out period doesn't suit you, it
would also be possible for POV to simply ask if you wanted to
pre-parse the scene in interactive mode, or simply use the last
user-entered values. If no user-entered values existed, default values
could be written into the script. This would be a global rejection of
user-input as compared to the earlier example of line-by-line
bypassing of prompts. Furthermore, both the global and the
line-by-line rejection options could be incorporated into POV-Ray for
the most flexibility.

Later,
Glen Berry


Post a reply to this message

From: Glen Berry
Subject: Re: POV-CSDL (or Java Binding?)
Date: 14 Mar 2000 14:24:16
Message: <+ozOOO82jFKweHVYJ8CXviwm5ISB@4ax.com>
On Tue, 14 Mar 2000 14:39:04 +0100, Gilles Tran <tra### [at] inapginrafr>
wrote:

>Hmm. Actually there are people with a large amounts of legacy code and
>who are very thankful for backward compatibility ! I can work fast on
>very complex scenes today because I can re-use code written 4 years ago
>with little changes, apart the occasional missing semi-colon. And I'm not
>talking about code that would only take 10-20 minutes of rewriting (this
>is the time it may take already to track missing semi-colons).
>I do update old code but, believe me, a minimal backward compatibility
>is heaven-sent.

I can't deny that many people do like a certain level of
backwards-compatibiliy. It might surpise some people to know that *I*
even appreciate a *little* stability. For example, I wouldn't want POV
mutating into something totally incompatible with its previous
incarnation every other week.   :)

It just seems to me that there are people that take a negative
knee-jerk reaction to a proposed changed in POV, and wave the
backwards compatibility flag without giving it much thought. They are
often very vocal and dominating in their quest to crush a new idea.
Often times, they don't understand the new idea they are fighting
against. This can be dangerous.

My recent posts expousing my personal acceptance of breaking backwards
compatibility, to gain advanced features or improve quality is meant
to offer an opposing voice to some of these people. It seemed that few
people were speaking up in opposition, and I felt someone should take
the other side. It's hard to make an enlightened decision until both
sides of an argument are properly presented.

I'm sure that a certain amount of backwards compatibility will always
exist in POV. I'm sure that many people will be comforted by that
notion. My personal situation and feelings will not be applicable to
everyone, but expressing them might give the POV coders a better
understanding of the diversity of their user base.

Later,
Glen Berry


Post a reply to this message

From: Chris Huff
Subject: Re: POV-CSDL (or Java Binding?)
Date: 14 Mar 2000 16:38:08
Message: <chrishuff_99-6B3EA2.16395914032000@news.povray.org>
In article <GIHOOHWP57GVgbOx81s8aTSybt3d@4ax.com>, Glen Berry 
<7no### [at] ezwvcom> wrote:

> I can't imagine how it would possibly take anything approaching 45
> minutes to scan for the appearance of a few interactive keywords,
> requiring user data input,  in a POV scene file. If some are found,
> the values would be entered at that time, before the "real" parsing
> would begin. There should be no such thing as sitting in front of your
> monitor for 45 minutes waiting to enter data into a scene that is
> parsing.

Some of them would not be encountered at first, and some of them would 
be used in calculations already partly done. And you couldn't simply 
scan the file for them and substitute them with values as a 
preprocessing step without following the conditionals and loops, which 
would mean there would be delays(although shorter than if full parsing 
was being done) and it would be significantly harder to implement. You 
might want to just rely on people writing friendly code that requests 
all variables at once before anything is done, but you still can't 
guarantee that your code will be reached early in the parsing.



> >This is getting too interface-dependant. I would rather not have 
> >language features depend on the interfaces of different platforms.
> 
> Are you telling me that ASCII text file reading and writing is a
> highly platform-dependent operation? What about asking an end user to
> interactively type a variable in response to an ASCII screen prompt,
> are you saying that is also highly platform-dependent? It just so
> happens that these operations are found in every basic C/C++ book I
> have seen. I always thought they were considered portable.

No, I am saying ASCII is platform independant, but a user prompt feature 
would be very interface-dependant. On Mac and Windows(and a few Linux 
versions), it might be a dialog with a text field(which might do direct 
text replacement, with what you input being directly entered into the 
parser). On other systems, it would be a command-line prompt, or an 
automatically generated web page with text boxes for the entered text. 
Although it would be possible for each of these, there would not be a 
portable way of doing it.


> >And what about automatic rendering? If POV is being controlled through 
> >something like a web page, this kind of feature would have to be removed 
> >or heavily modified.
> 
> Just because a feature might not be useful to you for every scene you
> write, doesn't mean the feature shouldn't exist. Do you currently use
> every keyword in POV for each scene you create? I think not.
> 
> If you have an objection to user-interactive pre-parsing, no one will
> make you use it. At this point, I'm wondering if there is *any*
> feature-set change I could suggest for POV-Ray and get a favorable
> response from you.

You haven't seen my suggestions in the past, have you? :-)
I support adding the #for() loop, I would like to see a #set command to 
change variables instead of making new ones, I wrote patches for several 
patterns(solid, blob, blob pigment, proximity, object), I wrote the 
vtransform(), eval_pigment(), eval_pattern(), and noise3d() function 
patches.(NOT the noise3d used in isosurfaces, my patch allows that 
function to be used outside isosurface functions)
I also wrote a kind of z-buffer patch, and a blurred transparence patch.
I have also suggested completely changing the language, starting over 
from scratch to create a language which is easier to learn and use, more 
flexible, and more consistant(although it certainly wasn't a new idea). 
The problems with that idea have made me start work on C-SDL(see my 
posts in .off-topic).
I actually don't have any objection to the idea of interactive scene 
files, I just don't see how they could be done well in POV-Script and in 
POV-Ray.


> >It is simple enough to make an include file with the variables you want 
> >to use so you don't have to remember the names, or you can put them in 
> >the main file and just use comments well. And this doesn't have the 
> >complications of a user prompt.
> 
> "...complications of a user prompt"?
> 
> Some would say that a user prompt would greatly simplify some things.
> One wouldn't have to remember all the names of all the variables in a
> scene file that frequently needed changing. The script would prompt
> you for values as it needed them. One person could write an
> interactive include file and another person could run it without ever
> having to look inside the source code to find all the variables that
> need to be changed to suit their particular needs. There would be no
> more searching through convoluted code, possibly scattered through
> several include files.

This could be done now by using comments to remind you of the variable 
names or by having the variables be declared in a separate file which 
you edit. Not perfect, but quite useable and they exist now.


> You seem to have the mind set that in the future all scripts would be
> interactive and you wouldn't be able to overide that interactivity. No
> one is proposing a scenario like that.

I certainly didn't mean to sound like that. Like I said, I don't have 
any problem with the idea of an interactive script, it would just be too 
difficult to implement in POV-Script and impossible to implement in a 
cross-platform manner(with the current state of POV-Ray, anyway).


> If my earlier suggestion for a default value that is used after 
> time-out period doesn't suit you, it would also be possible for POV 
> to simply ask if you wanted to pre-parse the scene in interactive 
> mode, or simply use the last user-entered values. If no user-entered 
> values existed, default values could be written into the script. This 
> would be a global rejection of user-input as compared to the earlier 
> example of line-by-line bypassing of prompts. Furthermore, both the 
> global and the line-by-line rejection options could be incorporated 
> into POV-Ray for the most flexibility.

The function could be something like this:
user_prompt("message string", "default parameter string")
Things like expiration time(and auto-entering of last-used values) would 
be set by user preferences(the .ini file for most platforms), and the 
entered string would be directly copied into the file(not in the 
original, of course. In the parser.). I don't think there is a problem 
with the idea of a time delay(as long as you can turn it off and adjust 
it's length), just problems with it's implementation.

And then you have to write the dialog code for Mac and Windows, and 
dialog/command line code for DOS and Linux, and anyone doing a port 
would have to modify that portion of the core code(which is supposed to 
be platform independant). The code for one platform could not be used 
for the others. You could just have it always use the defaults if the 
platform doesn't have the user prompt implemented, but I don't think 
that is a good general solution.

And with the modifications that would have to be made to the parser, 
this would not be a small feature to add, it is much more than just a 
little function or block of code somewhere.

This would be a nice feature, and probably something to think about for 
POV 4.0(which is planned to be a rewrite in C++. It might allow the 
modifications for the different platforms to be made more easily, and a 
pre-processing stage could be added during the parser 
rewrite/conversion), but in the current state of POV is just not very 
plausible. Another good addition to the wish-list, though.

-- 
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/


Post a reply to this message

From: Ken
Subject: Re: POV-CSDL (or Java Binding?)
Date: 14 Mar 2000 17:01:38
Message: <38CEB739.73D6F151@pacbell.net>
Chris Huff wrote:

> The function could be something like this:
> user_prompt("message string", "default parameter string")

I was thinking along the same lines ( as far as syntax ) but wonder
if it would be as difficult as you make it sound to pass these user
submitted values to a function. For example what if you simply declared
the user_prompt command as one of your variables -

#declare Var_1 = user_prompt("message string", "default parameter string")

#declare A = 0;
 #while ( A < Var_1 }
  object.....

etc.

In principal it would act as any pre-declared value and is held in
memory before the loop structure is encountered. As long as the
person writing the scene code that utilizes this places the user
prompts before anything else in the scene then you will only encounter
the user prompt during the first few seconds of parsing activity.

-- 
Ken Tyler -  1300+ Povray, Graphics, 3D Rendering, and Raytracing Links:
http://home.pacbell.net/tylereng/index.html http://www.povray.org/links/


Post a reply to this message

From: Chris Huff
Subject: Re: POV-CSDL (or Java Binding?)
Date: 14 Mar 2000 17:43:02
Message: <chrishuff_99-A47538.17445714032000@news.povray.org>
In article <38CEB739.73D6F151@pacbell.net>, lin### [at] povrayorg 
wrote:

> In principal it would act as any pre-declared value and is held in
> memory before the loop structure is encountered. As long as the
> person writing the scene code that utilizes this places the user
> prompts before anything else in the scene then you will only encounter
> the user prompt during the first few seconds of parsing activity.

Yes, that would work...as long as you put everything at the start of the 
scene. Which isn't always possible, with includes and macros for example.
You could just ignore this problem and use a default value/expiry time 
system, but you still have to figure out how to get input from the user 
in a platform-independant way.
My idea would be a standard set of user input-output functions for POV 
4.0. These would be internal to the platform-specific part of the code 
and very general in action, and could be used for user interaction as 
well as things like #warning and #debug as well as prompt_user(). Since 
they would be part of the platform-specific code and called from the 
core code, the problems with making those modifications to the core code 
would be gone.

Or maybe something similar exists already, I admit I haven't looked at 
that part of the code.

-- 
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/


Post a reply to this message

From: Nigel Stewart
Subject: Re: POV-CSDL (or Java Binding?)
Date: 15 Mar 2000 07:36:50
Message: <38CF8393.4C9C700B@nigels.com>
> > At this point, I'm wondering if there is *any*
> > feature-set change I could suggest for POV-Ray and get a favorable
> > response from you.
>
> I actually don't have any objection to the idea of interactive scene
> files, I just don't see how they could be done well in POV-Script and in
> POV-Ray.

	The "base level interface" of POV has always been a command
	line with standard input and standard output available.
	I'm sure the Windows guys can supply you with a dialog box,
	and similarly for other non-text-terminal style incarnations
	could manage this very basic requirement.

> it would just be too difficult to implement in POV-Script 

	<disbelief> Huh? </disbelief>

> and impossible to implement in a cross-platform manner

	<amusement> Refer to ANSI C Standard: scanf(...) </amusement>

> And then you have to write the dialog code for Mac and Windows
	
	No, you provide a hook with sensible default behaviour.
	(if there is no function pointer, don't prompt.  Simple huh?)

> but I don't think that is a good general solution.

	By your definition, there is no such thing as a general
	solution.

> This would be a nice feature, and probably something to think about for
> POV 4.0

	<sarcasm>
	Ooooh.... That's an ambitous goal - a C++ port in order to
	support a prompt.  Good thinking.  Perhaps C++ would also
	help with "general solutions" that don't exist.
	</sarcasm>
	
> but in the current state of POV is just not very
> plausible. Another good addition to the wish-list, though.

	Wish list?  I just about tempted to hack this into POV
	and post a binary just to prove you wrong. Let's see,
	one reserved word, two numerical parameters, a bit
	of cut-paste-and-edit.  Sounds more than plausible.

--
Nigel Stewart (nig### [at] nigelscom)
Research Student, Software Developer
Y2K is the new millenium for the mathematically challenged.


Post a reply to this message

From: Nigel Stewart
Subject: Re: POV-CSDL (or Java Binding?)
Date: 15 Mar 2000 07:49:50
Message: <38CF869F.1C9FA350@nigels.com>
> Yes, that would work...as long as you put everything at the start of the
> scene. Which isn't always possible, with includes and macros for example.

Here is a model which might be closer to a solution:

One limitation of POV script is that it's not possible to
pass values into it without editing the source.  There is
no C-style main(int argc,char *argv[]) and no way to
read environment variables.  In this sense, a pov scene
is a void main(void) except that you can control the
clock timer variable.

I would suggest a mechanism where values can be passed
at the command line, or alternatively, edited at an 
interactive prompt in text or GUI form.  You support
some sort of block declaration at the start of the POV
file that _allows_ but doesn't _require_ passing from 
command line or a text or GUI editor.  You only support
it if it's the first thing in the file, and you take
notice of the first block only.  The defaults are used
for subsequent blocks.

If you try to pass something on the command line that
isn't in the first block, an error results.  If you
want to edit the parameters manually, you must enable
it via command line or in the GUI.

An example:

interface 
{
	#declare X = 0;
	#declare Y = 1;
	#decalre Z = "hello";
}

c:\> povray +w320 +h240 +ifile.pov +DX=5 +DY=0 +DZ=bye

That's the idea anyway - it solves the parser stalling
problem, and it simplifies the prompting, because no
timeout is necessary.

And, I think it's not so ambitous that we'd be 
waiting around for POV 4.0 to implement it.

--
Nigel Stewart (nig### [at] nigelscom)
Research Student, Software Developer
Y2K is the new millenium for the mathematically challenged.


Post a reply to this message

From: Ken
Subject: Re: POV-CSDL (or Java Binding?)
Date: 15 Mar 2000 08:04:17
Message: <38CF8AB8.70A6D3DF@pacbell.net>
Nigel Stewart wrote:

> If you try to pass something on the command line that
> isn't in the first block, an error results.  If you
> want to edit the parameters manually, you must enable
> it via command line or in the GUI.

Speaking of errors something else that will have to be address is
error handling of erroneous input. If the user_prompt is looking for
a specific input and a wrong value is entered there needs to be
some form of error trapping to get the right value from the user.

-- 
Ken Tyler -  1300+ Povray, Graphics, 3D Rendering, and Raytracing Links:
http://home.pacbell.net/tylereng/index.html http://www.povray.org/links/


Post a reply to this message

<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>

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