<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>