<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>I remember liking the pretty names from other browsers^, but in any case I don't remember doing any fact-checking or conflict testing.</p>
<p>-Doug</p>
<p>more ..</p>
<p>I seemed to remember freewrl wasn't doing/setting some of those variables like the gl modelviewInverse so I had it on my list to look into the whole shader thing, including</p>
<p>- web3d standard naming</p>
<p>-- check for conflicts with gl_ naming, ie can we over-write if already defined for a gl version, otherwise the x3dom names seemed pretty, and didn't conflict/no gl_ prefix</p>
<p>- add ones a particular browser (freewrl) is missing ie modelviewinverse which may require more FLOPS per frame</p>
<p>- and look in detail at Michalis' castle-shader technique:</p>
<p><a href="http://castle-engine.sourceforge.net/compositing_shaders_doc/html/chapter.implementation.html" id="LPlnk141991" title="http://castle-engine.sourceforge.net/compositing_shaders_doc/html/chapter.implementation.html
Ctrl+Click or tap to follow the link">http://castle-engine.sourceforge.net/compositing_shaders_doc/html/chapter.implementation.html</a><br>
</p>
- some freewrl configs use ANGLEPROJECT which translates glsl into directX hlsl, and there are a few things it doesn't do like variable loop terminators in the shader, so some runtime checking with angleproject before committing<br>
<br>
<p class="MsoNormal"><span style="font-size: 11.5pt; font-family: 'Segoe UI'; color: rgb(88, 86, 214); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">^<br>
</span><span style="font-size: 11.5pt; font-family: 'Segoe UI'; color: rgb(33, 33, 33); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">X3DOM:
  </span><a href="http://doc.x3dom.org/tutorials/lighting/customShader/index.html" target="_blank"><span style="font-size: 11.5pt; font-family: 'Segoe UI'; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">http://doc.x3dom.org/tutorials/lighting/customShader/index.html</span></a></p>
<p class="MsoNormal" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">
<span style="font-size:11.5pt;
font-family:"Segoe UI";color:#212121">FreeWRL: <a href="http://freewrl.sourceforge.net/FreeX3D/Component_ProgrammableShaders.html" target="_blank">http://freewrl.sourceforge.net/FreeX3D/Component_ProgrammableShaders.html</a><o:p></o:p></span></p>
<p class="MsoNormal" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">
<span style="font-size:11.5pt;
font-family:"Segoe UI";color:#212121">Cobweb:  <a href="http://titania.create3000.de/cobweb/custom-shaders/" target="_blank">http://titania.create3000.de/cobweb/custom-shaders/</a><o:p></o:p></span></p>
<span style="font-size:11.5pt;font-family:"Segoe UI";mso-fareast-font-family:
"Times New Roman";color:#212121;mso-ansi-language:EN-CA;mso-fareast-language:
EN-CA;mso-bidi-language:AR-SA">BS Contact: <a href="http://www.bitmanagement.com/developer/contact/examples/shader/shader.html" target="_blank">http://www.bitmanagement.com/developer/contact/examples/shader/shader.html</a></span><br>
<div style="color: rgb(0, 0, 0);">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> x3d-public <x3d-public-bounces@web3d.org> on behalf of John Carlson <yottzumm@gmail.com><br>
<b>Sent:</b> March 28, 2016 1:51 PM<br>
<b>To:</b> Don Brutzman<br>
<b>Cc:</b> X3D Graphics public mailing list<br>
<b>Subject:</b> Re: [x3d-public] QA/Validation on uniform/attribute shader variables. [ was: Re: Non-portability of X3D Shaders]</font>
<div> </div>
</div>
<div>
<p dir="ltr">I propose we use the gl_ names for matrices from other versions of GLSL.  how do we vote?  Do we need other variables?</p>
<div class="gmail_quote">On Mar 28, 2016 3:48 PM, "John Carlson" <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br type="attribution">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<p dir="ltr">It would be fine for me to convert a standard to a particular vendor's shader variables.  What's the standard?</p>
<p dir="ltr">Thanks,</p>
<p dir="ltr">John</p>
<div class="gmail_quote">On Mar 28, 2016 1:08 PM, "Don Brutzman" <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>> wrote:<br type="attribution">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
If you and others want to keep track of status, the working group could create a web page to publish & maintain that information.<br>
<br>
Wondering if there is an API call that lists the names you are concerned with.  That might help with run-time discovery.<br>
<br>
Sometimes people write javascript libraries to wrap/normalize different browser idiosyncrasies.  Perhaps a similar approach is appropriate here?<br>
<br>
The great majority of X3D content does not depend on shaders, relying on baseline X3D interoperability instead.  So hopefully this specialization challenge can be decoupled and not become a blocker for most uses of your X3D JSON Loader.<br>
<br>
<br>
On 3/27/2016 7:11 PM, John Carlson wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
This is a problem with X3D vendors use of at least uniform matrix names in GLSL shaders.<br>
<br>
My use of the X3D JSON Loader (most of the bugs introduced, and crashes in the browser) and X3D in general is held up by differences in the X3D Shader variable names (not what they represent) from different vendors. Can we get some support from the Web3D (and/or
 possibly Khronos) consortium on standardizing uniform names (some non-portable matrices commonly supported by vendors, not authors) in (at least) GLSL shaders?   Validation of Shaders (warning for non-portable variables) would be useful. Thanks!<br>
<br>
Do most people do preprocessing, or stick with one vendor?  Not use GLSL?  I think my other alternative on Mac is Metal, which is way too platform specific.<br>
<br>
Thanks,<br>
<br>
John<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
On Mar 26, 2016, at 10:24 PM, John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br>
<br>
I reported earlier on the non-portability of X3D shaders.  How does one address the right working group to get this fixed?  Or am I taking the wrong approach? I really would like to get some good content online and this is hampering me.  Should I generate a
 script for each X3D player? Is the player User Agent information sent to the server?<br>
<br>
Thanks,<br>
<br>
John<br>
</blockquote>
</blockquote>
<br>
all the best, Don<br>
-- <br>
Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><br>
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   <a href="tel:%2B1.831.656.2149" value="+18316562149" target="_blank">+1.831.656.2149</a><br>
X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" rel="noreferrer" target="_blank">
http://faculty.nps.edu/brutzman</a><br>
</blockquote>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</body>
</html>