|
|
Am 15.07.2021 um 02:12 schrieb Bald Eagle:
> OpenGL and Shadertoy seem to have all/most of the things that we want, and
> OpenGL is well established, and presumably geared specifically towards graphics.
> ;)
I have to ask what exactly you are referring to when you say "OpenGL".
At its core, OpenGL is a library (or, more specifically, a library API):
A collection of functions that can be called from various entirely
different programming languages. The most "native" of those would be C/C++.
Are you perhaps referring to the shader language of OpenGL (GLSL)?
If you love GLSL, then I'm surprised you "kinda hate" C++.
Also, I'm not quite sure how a POV-Ray scene could map to GLSL. It seems
to me like it would have to be described in as clunky a way as it would
in C++.
In essence, most program languages have an imperative approach at the
lowest level; to describe data, you have to instruct the computer to
assemble it step by step, like so (pseudocode):
Create a sphere S.
Set the radius of S to 5.
Set the center of S to <0,1,0>.
Create a texture T.
Create a pigment P.
Set the pigment's pattern to 'checker'.
...
Attach P to T.
...
Attach T to S.
Attach S to the scene.
Rather than using a descriptive approach, like so:
The scene has the following objects:
- A sphere, with the following properties:
- a radius of 5.
- a center of <0,1,0>.
- a texture with the following properties:
- a pigment with the following properties:
- pattern 'checker'
While the difference may not seem obvious at first glance, it tends to
make a huge difference in terms of how much repetitive stuff the syntax
requires. For example, in C++ it might be written like so:
Object S = new Sphere();
S.radius = 5;
S.center = Vector3(0,1,0);
Texture T = new Texture();
Pigment P = new Pigment();
P.pattern.set('checker');
...
T.addPigment(P);
...
S.addTexture(T);
Scene.addObject(S);
whereas in a descriptive language it might be as simple as:
sphere {
radius 5
center <0,1,0>
texture {
pigment {
pattern 'checker'
...
}
...
}
}
Post a reply to this message
|
|