<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">I have another discussion topic. This
time it is shaders. I have included Michalis's response to another
post because it is a good place to start.<br>
<br>
There are two places in the X3D specification that are not
declarative -- Script and Shaders. I wish to discuss shaders in
this thread.<br>
<br>
At the time the Shader node was developed, there were two primary
shader languages - GLSL and HLSL (Wikipedia lists 8 real-time
languages <a class="moz-txt-link-freetext" href="https://en.wikipedia.org/wiki/Shading_language">https://en.wikipedia.org/wiki/Shading_language</a>). X3D
uses those two plus nVidia's CG. Note that Wikipedia states that
Cg is deprecated. Use of the Shader node requires some rather
detailed knowledge about the hardware that is available on the
target system. If the target system is unknown, then X3D's Shader
node allows multiple versions to be included to support all common
hardware. <br>
<br>
This is rather deep and certainly not declarative knowledge needed
for someone to use. In the case of display in a web browser
(meaning integrated DOM), then the target language is reduced to
GLSL. However, it still requires someone to know how to write a
shader.<br>
<br>
Instead of providing an interface that allows shaders to be
written in the X3D environment, should X3D provide a library of
possible effects? This could be things like sandpaper, fuzzy
material, hard shinny steel, etc. Because there would be so many
different possibilities, I think a library would be necessary.
This is also important in the commercial realm where shader
programmers make almost 3X a 3d artist (see graphcs at
<a class="moz-txt-link-freetext" href="https://www.indeed.com/q-Shader-Programmer-jobs.html">https://www.indeed.com/q-Shader-Programmer-jobs.html</a> and
<a class="moz-txt-link-freetext" href="https://www.indeed.com/jobs?q=3d+artist&l=">https://www.indeed.com/jobs?q=3d+artist&l=</a>).<br>
<br>
<br>
Leonard Daly<br>
<br>
<br>
<br>
<br>
On 4/25/2017 10:51 PM, Michalis Kamburelis wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAKzBGZPwNsZMimBKdo4wcANO639zpGHHOnQESuBube0O8+fZ+w@mail.gmail.com">
<pre wrap="">2017-04-26 7:31 GMT+02:00 Michalis Kamburelis <a class="moz-txt-link-rfc2396E" href="mailto:michalis.kambi@gmail.com"><michalis.kambi@gmail.com></a>:
</pre>
<blockquote type="cite">
<pre wrap="">E.g. I will definitely defend cube maps, 3D textures and
generated texture coordinates
</pre>
</blockquote>
<pre wrap="">
Although, while I will defend cube maps and 3D textures, I will not
defend (as much) the current MultiTexture or
ComposedTexture3D or ComposedCubeMapTexture.
- If we add CommonSurfaceShader to the spec, it can fill many usecases
where right now people use (with varying success) MultiTexture. I can
easily see that the MultiTexture component gets removed at that point.
- ComposedTexture3D and ComposedCubeMapTexture could be in principle
removed. The existing ImageTexture3D and ImageCubeMapTexture could
perform all their roles (but we should recommend there some formats
with a good and open specification, like Khronos KTX; the existing
prose for ImageCubeMapTexture recommends only Microsoft DDS). So the
cube maps could be specified as "generated" or "url(xxx.ktx)", and
that's it.
- Some of the TextureProperties information can be derived from other
information, or implementation-dependent (e.g. whether to use texture
compression). But not all (e.g. anisotropicDegree really needs to be
specified per-texture by a graphic artist, there is no escape from
that, with existing technology).
IOW, I do see various ways in how the current specification could be
simplified, to have less nodes (and thus, enable more concise
description of some features). I do think that the optimum may be
somewhere between the current specification and your flat Mesh
proposal.
Best regards,
Michalis
</pre>
</blockquote>
<p><br>
</p>
<div class="moz-signature">-- <br>
<font class="tahoma,arial,helvetica san serif" color="#333366">
<font size="+1"><b>Leonard Daly</b></font><br>
3D Systems & Cloud Consultant<br>
LA ACM SIGGRAPH Chair<br>
President, Daly Realism - <i>Creating the Future</i>
</font></div>
</body>
</html>