 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Chris Cason <del### [at] deletethistoo povray org> wrote:
> I'd already raised the issue that I felt that a byte-coded (or JIT'd) back-
> end to any SDL was necessary for speed. If this was exposed and formally
> documented then, firstly, more or less any language could be used with it
> (assuming someone wants to write the translator), and secondly, portability
> is at least vaguely possible by providing a reverse-compiler that outputs
> some form of 'standard' SDL (whatever we end up calling 'standard' is up to
> question of course).
Maybe we need something more POV-Ray specific, but I thought I should bring
this up anyway... Have you heard of the Parrot bytecode[1]?
Languages already supported (even if they are incomplete and experimental):
Perl 6, APL, BASIC, Befunge, Brainfuck, Cola, Forth, Jako, Lisp, m4,
Miniperl, Parakeet, OpenComal, PHP, Plot, Pheme, Punie, Python, Ruby,
Scheme, Span, Tcl (aka partcl), URM, YAL, and Zork Z-code.
[1] http://en.wikipedia.org/wiki/Parrot_virtual_machine
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Chris Cason <del### [at] deletethistoo povray org> wrote:
> C coding with a basic understanding of C++ would probably be sufficient for
> many of the tasks in re-writing the code that has to be replaced. Recall that
> all the POV code was originally c, and the fundamental core of the algorithms
> and objects are still readable by a C programmer.
Please don't let POV-Ray be written in "C plus classes". C++ is so much more
than that! :)
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Chris Cason <del### [at] deletethistoo povray org> wrote:
> Thorsten Froehlich wrote:
> > The solution to the parse vs render time limits would be to make all
> > features of a scene object replaceable by the user from within the language
> > - i.e. even replace the intersection algorithm or the transformation
> > computations. That would also put POV on-par with Renderman.
>
> That would be rather neat.
I would like to have *everything* easily changed by tweaking the sourcecode.
Say, make a *totally different* renderer like WinOSI [1] while keeping all
the objects and textures that POV-Ray gives. (WinOSI has some great
lighting but it doesn't even have CSG!).
[1] http://www.winosi.onlinehome.de/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Chris Cason <del### [at] deletethistoo povray org> wrote:
> andrel wrote:
> > Can someone set something up somewhere?
>
> Can someone recommend specific Wiki software?
>
> It'd need to support external authentication (to link in to the POV user
> registration system), and captchas or other anti-spam measures.
>
> Anyone have any experience with this?
Somebody managed to "link" MediaWiki with BOINC accounts, and even with some
features like if somebody gets banned from the BOINC forum, he can't edit
the wiki either. I think there was also some experiments about making page
editing permission dependent on how much CPU time you had contributed to
the project!
http://pirates.spy-hill.net/glossary/
I can give you the admin's email if you want to.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Nicolas Alvarez wrote:
> Chris Cason <del### [at] deletethistoo povray org> wrote:
>> I'd already raised the issue that I felt that a byte-coded (or JIT'd) back-
>> end to any SDL was necessary for speed. If this was exposed and formally
>> documented then, firstly, more or less any language could be used with it
>> (assuming someone wants to write the translator), and secondly, portability
>> is at least vaguely possible by providing a reverse-compiler that outputs
>> some form of 'standard' SDL (whatever we end up calling 'standard' is up to
>> question of course).
>
> Maybe we need something more POV-Ray specific, but I thought I should bring
> this up anyway... Have you heard of the Parrot bytecode[1]?
Check out llvm.org
Thorsten
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Tim Attwood wrote:
> 1) An optional "environment {}" command section where
> the command line options for a scene can be placed within
> the scene file (like the COBOL environment section).
> One objection I've read on this is that letting the
> environment (image size, animation options, etc.) be set
> from inside the scene file breaks compatibility with the old
> system, but it would be easy to get around that by just
The real objection seems to be that this would make it harder to
separate the front end and back end of the program, and make it harder
to do things like distributed renders.
> 3) Binary reading from files.
Hmm, could be useful for parsing oddball 3D formats in POV code.
At the very least, it would be nice to have more flexibility in reading
ASCII files. I would like to be able to parse files that are not
comma-delimited. :-) Any thoughts on supporting a scanf-style syntax?
> 4) Post processing of images. This could fall under something
> like a post_process{} section. One thing that might be nice
> here would be the ability to directly produce animation files in a
> couple of formats.
That would be cool.
> 5) Allow the linking of external libraries, so that POV can
> access custom programming routines from various languages.
I'm of two minds on this.
This would be *very* useful. If there's something that you can't do in
SDL, you can add it. :-)
On the other hand, it becomes possible to write malicious POV files. How
would you like to download a scene file and have it erase all your files
when you try to render it? Not good.
That's a tough one, because it's not a technological problem so much as
a social one. :-(
- --
William Tracy
afi### [at] gmail com -- wtr### [at] calpoly edu
You know you've been raytracing too long when someone shows you a
photograph of their new rough-slate kitchen floor and you say "nice
normals".
-- Tom Melly
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFG/a1bcCmTzQ++ZncRAlfgAJ46lgwdHuaBtvWR07zC8IaepfFvWgCgjngm
PmiieCkTgNo9vMhHPctVQOA=
=mF0i
-----END PGP SIGNATURE-----
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On Mon, 24 Sep 2007 17:47:45 +1000, Chris Cason wrote:
> andrel wrote:
>> Can someone set something up somewhere?
>
> Can someone recommend specific Wiki software?
>
> It'd need to support external authentication (to link in to the POV user
> registration system), and captchas or other anti-spam measures.
Hey, Chris - willing to help out here, but I do need to understand a bit
more about the user registration system. I'm sure there's a way to make
it work with Mediawiki.
I can be reached at hendersj at gmail (just realised I post with a fake e-
mail address here, so you may have wanted to contact me but were unable
to)
Jim
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Nicolas Alvarez wrote:
> Chris Cason <del### [at] deletethistoo povray org> wrote:
>
>>C coding with a basic understanding of C++ would probably be sufficient for
>>many of the tasks in re-writing the code that has to be replaced. Recall that
>>all the POV code was originally c, and the fundamental core of the algorithms
>>and objects are still readable by a C programmer.
>
>
> Please don't let POV-Ray be written in "C plus classes". C++ is so much more
> than that! :)
Well, since you were the first one to say it...
Yeah, C++ has more features than the classes, but the classes provide a
great deal of the advantage that C++ has over C, mainly because of the
way that classes lead to better organization of code.
The polymorphism helps a lot, too, but on a project as large as POV-Ray,
the ability to organize code in a consistent way will bring benefits
that will make the benefit from other features easy to overlook.
Regards,
John
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> Nicolas Alvarez wrote:
>>
>>
>> Please don't let POV-Ray be written in "C plus classes". C++ is so
>> much more
>> than that! :)
>
> Well, since you were the first one to say it...
>
> Yeah, C++ has more features than the classes, but the classes provide a
> great deal of the advantage that C++ has over C, mainly because of the
> way that classes lead to better organization of code.
>
> The polymorphism helps a lot, too, but on a project as large as POV-Ray,
> the ability to organize code in a consistent way will bring benefits
> that will make the benefit from other features easy to overlook.
>
> Regards,
> John
Of course classes are one big advantage over plain C. But (following
your example) polymorphism helps a *big* lot to something like POV-Ray.
You have an abstract Object class (in C++ that would mean it has pure
virtual methods), and classes that extend it like Sphere, Cylinder,
Isosurface, and probably CSG objects too (I don't know how CSG code is
organized currently). You can also have a Camera class with the
different projections inheriting from it, instead of the *big* switch
block that is used now. Classes give "the ability to organize code in a
consistent way". Polymorphism gives the ability to use those classes in
a consistent (or should I say *identical*?) way.
Objects all have the same basic interface after all. Intersect ray,
is-point-inside-object, etc. So do camera projections, they basically
just have to convert a 2D point (pixel in final image) into a starting
point and a direction.
I can imagine it would be a lot easier to add a new object / camera
projection / pattern on an unofficial POV if it's all nice OOP. For
example, the parser could be split that way too (ObjectParser where
SphereParser etc extend from). Not much more than write two classes and
add new keywords to the lexer and you're done...
What about exceptions? Probably not very useful for the renderer, but I
think they could help for the parser, or the frontend-backend separation
"thing".
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
William Tracy nous apporta ses lumieres en ce 2007/09/28 21:41:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Tim Attwood wrote:
>> 1) An optional "environment {}" command section where
>> the command line options for a scene can be placed within
>> the scene file (like the COBOL environment section).
>> One objection I've read on this is that letting the
>> environment (image size, animation options, etc.) be set
>> from inside the scene file breaks compatibility with the old
>> system, but it would be easy to get around that by just
>
> The real objection seems to be that this would make it harder to
> separate the front end and back end of the program, and make it harder
> to do things like distributed renders.
>
>> 3) Binary reading from files.
>
> Hmm, could be useful for parsing oddball 3D formats in POV code.
>
> At the very least, it would be nice to have more flexibility in reading
> ASCII files. I would like to be able to parse files that are not
> comma-delimited. :-) Any thoughts on supporting a scanf-style syntax?
>
>> 4) Post processing of images. This could fall under something
>> like a post_process{} section. One thing that might be nice
>> here would be the ability to directly produce animation files in a
>> couple of formats.
>
> That would be cool.
>
>> 5) Allow the linking of external libraries, so that POV can
>> access custom programming routines from various languages.
>
> I'm of two minds on this.
>
> This would be *very* useful. If there's something that you can't do in
> SDL, you can add it. :-)
>
> On the other hand, it becomes possible to write malicious POV files. How
> would you like to download a scene file and have it erase all your files
> when you try to render it? Not good.
>
> That's a tough one, because it's not a technological problem so much as
> a social one. :-(
>
> - --
> William Tracy
> afi### [at] gmail com -- wtr### [at] calpoly edu
>
> You know you've been raytracing too long when someone shows you a
> photograph of their new rough-slate kitchen floor and you say "nice
> normals".
> -- Tom Melly
>
That last point can be elliminated by strictly enforcing I/O restrictions for
ANY external addon. An external module/addon/plugin could be strictly forbiden
to erase any file, modify any file that don't share the same base name as the
current scene, create any file outside the default write permition.
Going further, strictly forbide any I/O operation to any external library.
--
Alain
-------------------------------------------------
You know you've been raytracing too long when your personal correspondence to
friends starts out with #Dear Linda =
Ken Tyler
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|
 |