[x3d-public] [x3dom-users] Bad rendering of JSON SimpleShader in X_ITE

John Carlson yottzumm at gmail.com
Thu May 24 12:07:52 PDT 2018


Yes, that JSON format is outdated.

Times change.

John

On Thu, May 24, 2018, 9:48 AM Leonard Daly <Leonard.Daly at realism.com> wrote:

> John,
>
> Yvonne created an example with a JSON loader about 4 years ago. I forget
> the details. Don may remember more. I think she used the NPS Monterey Bay
> Aquarium dolphin.
>
> Leonard Daly
>
>
> On 5/23/2018 9:10 PM, John Carlson wrote:
>
> After some consideration, I will move the JSON -> DOM out of X3DJSONLD and
> into X3DOM, since I already have code for it in X3DOM.  However, I need an
> X3DOM interface for loading JavaScript objects into X3DOM.   Suggestions?
>
> On Wed, May 23, 2018, 11:58 PM Leonard Daly <Leonard.Daly at realism.com>
> wrote:
>
>> On 5/23/2018 7:53 PM, John Carlson wrote:
>>
>> Okay, I tested importDocument, and it works, so that points to X_ITE
>> importJS being the problem.  If someone can get me a way to build x_ite
>> from scratch, I will start work getting JSONParser and the CDATA stuff up
>> to date in X_ITE. If that doesn’t solve the problem I will have to dig
>> deeper.
>>
>>
>>
>> Does anyone know how to deep clone a DOM?  I’d like to render both X_ITE
>> and X3DOM from similar DOM trees without having to retranslate the JSON to
>> DOM (adding another output to X3DJSONLD).
>>
>>
>> John,
>>
>> X3DOM puts internal data structures in the DOM (e.g., the runtime
>> structure is attached to each X3DOM tag). You will need to deal with
>> circular references (legal in DOM, not in JSON) and other very squirrelly
>> things. You can do a clone on a DOM node (deep or shallow) with
>> <element>.cloneNode(). See
>> https://developer.mozilla.org/en-US/docs/Web/API/Node/cloneNode for
>> details.
>>
>>
>> Leonard Daly
>>
>>
>>
>>
>>
>>
>> Thanks,
>>
>>
>>
>> John
>>
>>
>>
>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
>> Windows 10
>>
>>
>>
>> *From: *John Carlson <yottzumm at gmail.com>
>> *Sent: *Wednesday, May 23, 2018 4:30 AM
>> *To: *Don Brutzman <brutzman at nps.edu>; Andreas Plesch
>> <andreasplesch at gmail.com>; holger.seelig at yahoo.de; X3D Graphics public
>> mailing list <x3d-public at web3d.org>; x3dom mlist
>> <x3dom-users at lists.sourceforge.net>
>> *Subject: *RE: Bad rendering of JSON SimpleShader in X_ITE
>>
>>
>>
>> Okay, I’ve narrowed another part of it down to:
>>
>>
>>
>> "#sourceText": [
>>
>>
>> "data:text/plain;charset=utf-8,",
>>
>>
>>
>> Produces correct X_ITE **XML** renderings in X3DJSONLD, translating from
>> JSON to XML.
>>
>>
>>
>> "#sourceText": [
>>
>>                                             "",
>>
>>                                             "
>> data:text/plain;charset=utf-8,",
>>
>>                                             "",
>>
>>
>>
>> Generated by X3dToJson.xslt, does not produce correct XML rendering in
>> X3DJSONLD. And neither does:
>>
>>
>>
>> "#sourceText": [
>>
>>
>>
>>
>>
>> I will trim() strings in X3DJSONLD CDATA sections—I have fixed this in
>> X_ITE as well, but I’ve been unable to build, but may want to rely on
>> X3dToJson.xslt to do the right thing in the future.
>>
>>
>>
>> This does not fix the X_ITE JSON rendering in either X_ITE or X3DJSONLD
>> (X_ITE JSON rendering in X3DJSONLD **is** X_ITE 4.1.5).  There *appears*
>> to be the desire to load ShaderPart CDATA sections (if they are in fact
>> CDATA sections…I have not confirmed this)  as URLs.  Currently, in X_ITE, I
>> convert all #sourceText as a CDATA section using Andreas’ method for
>> creating a CDATA section with DOMParser, which I replaced in X3DJSONLD, due
>> to issues with Edge.
>>
>>
>>
>> So how do we solve the problem of rendering JSON in X_ITE? I am getting
>> the following:
>>
>>
>>
>> Failed to load data:text/plain;charset=utf-8,precision mediump
>> float;uniform mat4 x3d_ProjectionMatrix;uniform mat4
>> x3d_ModelViewMatrix;uniform mat3 x3d_NormalMatrix;attribute vec4
>> x3d_Vertex;attribute vec3 x3d_Normal;varying vec3 normal;void main(){normal
>> = x3d_NormalMatrix * x3d_Normal;gl_Position = x3d_ProjectionMatrix *
>> x3d_ModelViewMatrix * x3d_Vertex;} ?_=1527054157284: Invalid response.
>> Origin 'http://localhost:3000' is therefore not allowed access.
>>
>>
>>
>>
>>
>> There are “network loads” (appear under Network tab in developer tools on
>> Chrome) which don’t appear with the XML version.  The above is one of
>> them.   Apparently the XML version does something different than the JSON
>> version, even though the JSON is translated to DOM in X_ITE.  It is
>> possible that I didn’t actually create a CDATA section with the JSON
>> version, that needs to be checked, if nothing else has been fixed or comes
>> to mind.   This has been a problem with serializing DOM to XML with Edge
>> (CDATA tag disappeared), but I haven’t seen it otherwise.
>>
>>
>>
>> Attached are the tested versions of SimpleShader.json and
>> SimpleShader.x3d, minus non-x_ite shaders.
>>
>>
>>
>> I need help building x_ite from scratch (I removed my copy), see issue on
>> GitHub.  Make all fails.
>>
>>
>>
>> Note:  I have not tested importDocument, just createX3DFromString and
>> importJS and specifying urls on X3DCanvas.
>>
>>
>>
>> Sorry I didn’t get to testing embedded Shaders sooner with X3DOM and
>> X_ITE, it slipped my mind, and I didn’t realize the Examples folder didn’t
>> cover embedded ShaderPart’s.  The Shaders tests are under Components…
>>
>>
>>
>> People can comment on my CDATACreateFunction and fixXML sections of
>> JSONParser (X3DJSONLD.js).  They likely need work.
>>
>> Patches are welcome too!  But please run “sh local.sh” in src/main/shell
>> and peruse the diffs (yes, I know they are horrible).  At a minimum, run
>> “sh quotetest.sh” (I just checked, those diffs are horrible too!).  Sigh!
>> I’m not sure what’s holding this ball of wax together.
>>
>>
>>
>> Does anyone want to do a massive conversion of x_ite’s test Library to
>> X3D JSON?
>>
>>
>>
>> Also help with ProtoExpander on below would be welcome.
>>
>>
>>
>> I think I can finally send this email.
>>
>>
>>
>> John
>>
>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
>> Windows 10
>>
>>
>>
>> *From: *John Carlson <yottzumm at gmail.com>
>> *Sent: *Tuesday, May 22, 2018 5:57 PM
>> *To: *Don Brutzman <brutzman at nps.edu>; Andreas Plesch
>> <andreasplesch at gmail.com>; holger.seelig at yahoo.de; X3D Graphics public
>> mailing list <x3d-public at web3d.org>; x3dom mlist
>> <x3dom-users at lists.sourceforge.net>
>> *Subject: *RE: Bad rendering of JSON SimpleShader in X_ITE -- Also Bug
>> inX3DOMProtoExpander.
>>
>>
>>
>> When I got rid of the space leading into data:text/string in the Cobweb
>> shaders, the XML rendered properly.   So it’s the leading space generate
>> either by the XML -> JSON translation (DOM2JSONSerializer.js) or the JSON
>> -> DOM -> XML which is preventing the XML from rendering. I will switch to
>> X3dToJson.xslt and see if that fixes it.
>>
>>
>>
>> John
>>
>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
>> Windows 10
>>
>>
>>
>> *From: *John Carlson <yottzumm at gmail.com>
>> *Sent: *Tuesday, May 22, 2018 5:30 PM
>> *To: *Don Brutzman <brutzman at nps.edu>; Andreas Plesch
>> <andreasplesch at gmail.com>; holger.seelig at yahoo.de; X3D Graphics public
>> mailing list <x3d-public at web3d.org>; x3dom mlist
>> <x3dom-users at lists.sourceforge.net>
>> *Subject: *RE: Bad rendering of JSON SimpleShader in X_ITE -- Also Bug
>> in X3DOMProtoExpander.
>>
>>
>>
>> Probably it’s not passing schema in X3DJSONLD because of the
>> ProtoExpander.  The ProtoExpander does not exist in X_ITE to my knowledge
>> (but it may have it’s own version).
>>
>>
>> When I turn off the proto expander in X3DJSONLD, and the schema does not
>> report an error.  The shader only takes affect in XML when I load XML.
>> When I turn off the proto expander in X3DJSONLD, the JSON still does not
>> render properly in X_ITE (as evidenced by the previous collection of files
>> I submitted).
>>
>>
>>
>> The online validator reports no error with the non-proto expanded JSON.
>>
>>
>>
>> Attached is the expanded JSON and schema errors.
>>
>>
>>
>> The schema error seems to surround:
>>
>>
>>
>>                             "@decis": [
>>
>>                               0.95,
>>
>>                               0.44,
>>
>>                               0.22
>>
>>                             ],
>>
>>
>>
>> Which should be an @value on the field, so the schema error is definitely
>> an issue with the ProtoExpander.   This may affect and likely does affect
>> X3DOM.
>>
>>
>> I doubt if this will shed light on the X_ITE bug, except to indicate the
>> error is NOT in the XML parser, to my knowledge.
>>
>>
>> I still don’t know why the non-proto expanded JSON does not render
>> properly in X_ITE.  I have just figured out another bug.
>>
>>
>>
>> I believe the ProtoExpander error stems from IS and wanting to fill in an
>> attribute somewhere, but I’m not really sure yet.  I will have to check to
>> see if the target (proto?) field is an attribute or a field, I think.  Hmm.
>>
>>
>>
>> This is probably why I had to get rid of the Proto in X3DOM, the first
>> version of the shader I released for X3DOM.
>>
>>
>>
>> John
>>
>>
>>
>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
>> Windows 10
>>
>>
>>
>> *From: *John Carlson <yottzumm at gmail.com>
>> *Sent: *Tuesday, May 22, 2018 4:51 PM
>> *To: *Don Brutzman <brutzman at nps.edu>; Andreas Plesch
>> <andreasplesch at gmail.com>; holger.seelig at yahoo.de
>> *Subject: *RE: Bad rendering of JSON SimpleShader in X_ITE
>>
>>
>>
>> Note that SimpleShader.json does not pass schema with X3DJSONLD, but does
>> pass schema with my other tools.  Hmm.
>>
>>
>>
>> You may want to try to validate against your own schema.  I will try
>> against my online validator.
>>
>>
>>
>> John
>>
>>
>>
>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
>> Windows 10
>>
>>
>>
>> *From: *John Carlson <yottzumm at gmail.com>
>> *Sent: *Tuesday, May 22, 2018 4:36 PM
>> *To: *Don Brutzman <brutzman at nps.edu>; Andreas Plesch
>> <andreasplesch at gmail.com>; holger.seelig at yahoo.de
>> *Subject: *Bad rendering of JSON SimpleShader in X_ITE
>>
>>
>>
>> Don, I’m not sure if this is a translation issue or an X_ITE issue that
>> the JSON displays just as Material, and doesn’t use the shader.  I thought
>> you would like to be informed.  I tried bringing the “data:text/plain;” to
>> be start of the source text without any change to the rendering, but you
>> may have better luck.
>>
>>
>>
>> You’ll need to remove ../data/ twice in the xhtml.
>>
>>
>>
>> This should be the original SimpleShader.x3d from sourceforge.
>>
>>
>>
>> It might be with data:text/plain, we have to put the entire CDATA section
>> inside a single string in JSON?  I don’t know yet.
>>
>>
>>
>> Or maybe just remove the data:text/plain.  I will try that next.
>>
>> John
>>
>>
>>
>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
>> Windows 10
>>
>>
>>
>> *From: *John Carlson <yottzumm at gmail.com>
>> *Sent: *Tuesday, May 22, 2018 4:20 PM
>> *To: *holger.seelig at yahoo.de; Andreas Plesch <andreasplesch at gmail.com>
>> *Subject: *RE: [x3dom/x3dom] Full patch from
>> coderextreme/x3dom.IncludesJSONloading, protoexpander, inline changes, and
>> field changes (#844)
>>
>>
>>
>> Okay, it looks like there’s an issue with the JSONParser and X_ITE and
>> X3DJSONLD, possibly.  See attached x_itesimpleshader.xhtml for differences
>> between JSON and XML versions.  I haven’t done any debugging yet, there’s
>> probably something on the console, like parsing a data URL (the shader).
>>
>>
>>
>> Here is the original X3D and converted JSON.
>>
>>
>>
>> John
>>
>>
>>
>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
>> Windows 10
>>
>>
>>
>> *From: *John Carlson <yottzumm at gmail.com>
>> *Sent: *Tuesday, May 22, 2018 3:59 PM
>> *To: *Andreas Plesch <andreasplesch at gmail.com>
>> *Subject: *Re: [x3dom/x3dom] Full patch from coderextreme/x3dom.
>> IncludesJSONloading, protoexpander, inline changes, and field changes (#844)
>>
>>
>>
>> Oh, okay.   I guess x_ite was falling back to material in some cases with
>> X3DJSONLD.  Before I started mucking with the Proto from the original.
>>
>> On Tue, May 22, 2018, 3:53 PM Andreas Plesch <andreasplesch at gmail.com>
>> wrote:
>>
>> Thanks, the screenshot came through.
>>
>>
>>
>> But it looks like BSContact does not understand or use the ComposedShader
>> at all. It just falls back to the Material. I think it has a console ?
>>
>>
>>
>>
>>
>> On Tue, May 22, 2018 at 3:25 PM, John Carlson <yottzumm at gmail.com> wrote:
>>
>> Hopefully this BS contact example makes it.
>>
>>
>>
>> ---------- Forwarded message ---------
>> From: John Carlson <yottzumm at gmail.com>
>> Date: Tue, May 22, 2018, 10:13 AM
>> Subject: RE: [x3dom/x3dom] Full patch from coderextreme/x3dom. Includes
>> JSONloading, protoexpander, inline changes, and field changes (#844)
>> To: x3dom/x3dom <
>> reply+000ac4f78369c959aaa1022cea58689148651aac125ae7a492cf00000001171b6f7792a169ce1351f190 at reply.github.com>,
>> x3dom/x3dom <x3dom at noreply.github.com>
>> Cc: Author <author at noreply.github.com>
>>
>>
>>
>> Here it is in BS Contact:
>>
>>
>>
>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
>> Windows 10
>>
>>
>>
>> *From: *Andreas Plesch <notifications at github.com>
>> *Sent: *Tuesday, May 22, 2018 1:41 AM
>> *To: *x3dom/x3dom <x3dom at noreply.github.com>
>> *Cc: *John Carlson <yottzumm at gmail.com>; Author
>> <author at noreply.github.com>
>> *Subject: *Re: [x3dom/x3dom] Full patch from coderextreme/x3dom.
>> Includes JSONloading, protoexpander, inline changes, and field changes
>> (#844)
>>
>>
>>
>>
>> https://rawgit.com/andreasplesch/x3dom/inlineShader/doc/x3doc/base/tutorials/lighting/customShader/example.html
>> is the tutorial example.
>>
>> Here is the simpleShader.x3d for x3dom:
>>
>> https://rawgit.com/andreasplesch/x3dom/inlineShader/test/regression-suite/test/cases/composedShader/inlineShader.xhtml
>> Do you know how it is supposed to look like ? light0 is probably the
>> headlight.
>>
>>>> You are receiving this because you authored the thread.
>> Reply to this email directly, view it on GitHub
>> <https://github.com/x3dom/x3dom/pull/844#issuecomment-390869376>, or mute
>> the thread
>> <https://github.com/notifications/unsubscribe-auth/AArE9_8Wd-sJSolp23LMBxXHsigHw-Weks5t06T3gaJpZM4UDkKu>
>> .[image:
>> https://github.com/notifications/beacon/AArE9183osU_x9UEKTouaAfUXwpLR2Mlks5t06T3gaJpZM4UDkKu.gif]
>>
>>
>>
>>
>>
>>
>>
>> --
>>
>> Andreas Plesch
>> Waltham, MA 02453
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>
>>
>>
>> _______________________________________________
>> X3dom-users mailing listX3dom-users at lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/x3dom-users
>>
>>
>> --
>> *Leonard Daly*
>> 3D Systems & Cloud Consultant
>> LA ACM SIGGRAPH Past Chair
>> President, Daly Realism - *Creating the Future*
>> _______________________________________________
>> x3d-public mailing list
>> x3d-public at web3d.org
>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>
>
>
> _______________________________________________
> x3d-public mailing listx3d-public at web3d.orghttp://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
>
> --
> *Leonard Daly*
> 3D Systems & Cloud Consultant
> LA ACM SIGGRAPH Past Chair
> President, Daly Realism - *Creating the Future*
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20180524/ccb9c64e/attachment-0001.html>


More information about the x3d-public mailing list