[x3d-public] ProtoBody completeness in nested Protos
GPU Group
gpugroup at gmail.com
Mon Apr 25 15:59:38 PDT 2022
http://dug9.users.sourceforge.net/web3d/tests/protos/Proto_context_inherit_and_declare.x3d
http://dug9.users.sourceforge.net/web3d/tests/protos/Proto_context_inherit_and_declare.jpg
http://dug9.users.sourceforge.net/web3d/tests/protos/Proto_context_inherit.jpg
http://dug9.users.sourceforge.net/web3d/tests/protos/Proto_context_inherit.x3d
On Mon, Apr 25, 2022 at 4:11 PM GPU Group <gpugroup at gmail.com> wrote:
>
> http://dug9.users.sourceforge.net/web3d/tests/protos/Proto_context_vs_name.x3d
>
>
>
> http://dug9.users.sourceforge.net/web3d/tests/protos/Proto_context_vs_name.jpg
>
>
>
> On Mon, Apr 25, 2022 at 4:01 PM GPU Group <gpugroup at gmail.com> wrote:
>
>> http://dug9.users.sourceforge.net/web3d/tests/protos/CircleFish.jpg
>>
>>
>> http://dug9.users.sourceforge.net/web3d/tests/protos/Proto_nested.jpg
>>
>>
>> http://dug9.users.sourceforge.net/web3d/tests/protos/Proto_nested.x3d
>>
>>
>>
>> On Mon, Apr 25, 2022 at 1:10 PM Andreas Plesch <andreasplesch at gmail.com>
>> wrote:
>>
>>> Hi Doug,
>>>
>>> Thank you for your response.
>>>
>>> > Date: Mon, 25 Apr 2022 07:09:14 -0600
>>> > From: GPU Group <gpugroup at gmail.com>
>>> >
>>> > freewrl loads extern proto scenes as whole scene files, but as 'dead'
>>> > scenery like a library file: in binary form, ready to binary deep copy
>>> > parts to live scenery, but node initialization functions not yet
>>> > called, and not rendered. Subsequent # references to the same scene
>>> file
>>> > use the same loaded library scene. So any ProtoDeclares outside the
>>> > ProtoBody would be resolved.
>>>
>>> I think the issue in the CircleFishLod prototype is not directly
>>> related to extern proto use, but only to how the local ProtoDeclare
>>> definition needs to reach into the surrounding Scene. It sounds like
>>> freewrl allows for that mixing of Execution Contexts, assuming that
>>> the CircleFishLod proto works in freewrl.
>>>
>>> A stress test example would be a Scene which has two Protos, A and B.
>>>
>>> A is a simple Proto with the name "Joe". The scene uses it in an
>>> instance later.
>>>
>>> B is a nested Proto which internally uses another Proto. This internal
>>> Proto is also named "Joe" and has both a ProtoDeclare and instances
>>> within B. The scene then uses B in an instance later.
>>>
>>> How should a browser resolve which ProtoDeclaration to use for the
>>> internal ProtoInstance "Joe" ? Which one would freewrl choose ? The
>>> first one it finds ?
>>>
>>> Perhaps it is time to draft such a test.
>>>
>>> Thanks, Andreas
>>>
>>> PS: rough draft
>>>
>>> <ProtoDeclare name='Joe'>
>>> <ProtoBody red sphere />
>>> </ProtoDeclare>
>>>
>>> <ProtoDeclare name='nestedBox'>
>>> <ProtoBody>
>>> <ProtoDeclare name='Joe'>
>>> <ProtoBody blue box />
>>> </ProtoDeclare>
>>> <ProtoInstance name='Joe' />
>>> </ProtoBody>
>>> </ProtoDeclare>
>>>
>>> <ProtoInstance name='Joe' />
>>> <ProtoInstance name='nested' />
>>>
>>> Should display a red sphere and blue box.
>>>
>>> > -Doug
>>> > PS this relates to:
>>> >
>>> > PROTOTYPE STYLE IMPORTS
>>> >
>>> > I had mentioned a prototype style import for gltf use:
>>> >
>>> > Shape { url=?library.gltf#shapeName? }
>>> >
>>> > Similar to how we load extern protos as a whole ?dead? scene, and then
>>> do
>>> > binary deep copies where used in the live scene to make live.
>>> >
>>> > But interestingly, the same goes for x3d scenery ? don?t need glTF,
>>> don?t
>>> > need extern protos in library scene, don?t need Inline or IMPORT.
>>> >
>>> > So the concept could be tested first with x3d scenery.
>>> >
>>> > Shape { url=?library.x3dv#shapeName }
>>> >
>>> > And then extended to gltf.
>>> >
>>> > /PROTOTYPE STYLE IMPORTS
>>> >
>>> > On Sun, Apr 24, 2022 at 10:43 PM Brutzman, Donald (Don) (CIV) <
>>> > brutzman at nps.edu> wrote:
>>> >
>>> > > Actually please look a little more closely at that (admittedly
>>> tricky)
>>> > > example.
>>> > >
>>> > > * CircleFish is an ExternProto, separately defined in another file
>>> > > * CircleFishLod is a ProtoDeclare defined in that first file,
>>> > > CircleFishLodPrototype.x3d
>>> > > * CircleFishLod ProtoBody contains two ProtoInstance copies of
>>> CircleFish
>>> > > * CircleFishLod ProtoDeclare is then followed by a CircleFishLod
>>> > > ProtoInstance (again in CircleFishLodPrototype.x3d)
>>> > >
>>> > > So I would expect an X3D Browser to
>>> > >
>>> > > a. load ExternProtoDeclare CircleFish
>>> > > b. build ProtoDeclare CircleFishLod
>>> > > c. create inner ProtoInstance CircleFish for use
>>> > > d. create outer ProtoInstance CircleFishLod
>>> > >
>>> > > Order of steps might vary a bit, but those are the dependencies.
>>> Good luck
>>> > > sir.
>>> > >
>>> > > all the best, Don
>>> > > --
>>> > > Don Brutzman Naval Postgraduate School, Code USW/Br
>>> > > brutzman at nps.edu
>>> > > Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA
>>> > > +1.831.656.2149
>>> > > X3D graphics, virtual worlds, Navy robotics https://
>>> > > faculty.nps.edu/brutzman
>>> > >
>>> > > -----Original Message-----
>>> > > From: x3d-public <x3d-public-bounces at web3d.org> On Behalf Of Andreas
>>> > > Plesch
>>> > > Sent: Sunday, April 24, 2022 9:08 PM
>>> > > To: X3D Graphics public mailing list <x3d-public at web3d.org>
>>> > > Subject: [x3d-public] ProtoBody completeness in nested Protos
>>> > >
>>> > > ProtoDeclarations may use ProtoInstances of other Protos inside their
>>> > > ProtoBody definitions.
>>> > >
>>> > > For example, the CircleFishLod proto here:
>>> > >
>>> > >
>>> > >
>>> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fx3dgraphic
>>> > > s.com
>>> > >
>>> %2Fexamples%2FX3dForWebAuthors%2FKelpForestExhibit%2FCircleFishLodProto
>>> > > typeIndex.html&data=05%7C01%7Cbrutzman%40nps.edu
>>> > > %7C0b4a867ba9874e371f9b0
>>> > >
>>> > >
>>> 8da267152fa%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637864565880708349%
>>> > >
>>> > >
>>> 7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwi
>>> > >
>>> > >
>>> LCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=upr4eckI8axT7MO5fAUvAWfyBzUJfhTwqcp
>>> > > BuH7tZjc%3D&reserved=0
>>> > >
>>> > > uses ProtoInstances of the CircleFish proto.
>>> > >
>>> > > A more extreme case of nesting is:
>>> > >
>>> > >
>>> > >
>>> https://www.web3d.org/x3d/content/examples/ConformanceNist/Miscellaneous/PRO
>>> > > TO/fivedeepnestingIndex.html
>>> > > <
>>> https://www.web3d.org/x3d/content/examples/ConformanceNist/Miscellaneous/PROTO/fivedeepnestingIndex.html
>>> >
>>> > >
>>> > > where Proto1 uses ProtoInstance of Proto2 inside its ProtoBody.
>>> Proto2
>>> > > itself uses a ProtoInstance of Proto3 inside its ProtoBody. And so
>>> on to
>>> > > five levels deep.
>>> > >
>>> > > The second example with the deep nesting currently works with x3dom
>>> but the
>>> > > seemingly simpler CircleFishLod proto does not.
>>> > >
>>> > > The reason is that x3dom expects the complete definition of a proto
>>> to be
>>> > > contained in its ProtoBody. However, The CircleFishLod proto only
>>> contains
>>> > > the CircleFish ProtoInstances in the body but not the associated
>>> CircleFish
>>> > > ProtoDeclaration which for some reason occurs outside the
>>> CircleFishLod
>>> > > ProtoBody (and outside the CircleFishLod ProtoDeclaration).
>>> > >
>>> > > Expecting the ProtoBody to be complete and self-contained seems
>>> rather
>>> > > natural. Is x3dom too strict in this regard, or is there an
>>> oversight in
>>> > > the
>>> > > example ? There is not much guidance in the spec., if any.
>>> > >
>>> > > Thanks, Andreas
>>> > >
>>> > > --
>>> > > Andreas Plesch
>>> > > Waltham, MA 02453
>>> > >
>>> > > _______________________________________________
>>> > > x3d-public mailing list
>>> > > x3d-public at web3d.org
>>> > > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>> > > _______________________________________________
>>> > > x3d-public mailing list
>>> > > x3d-public at web3d.org
>>> > > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>> > >
>>> > -------------- next part --------------
>>> > An HTML attachment was scrubbed...
>>> > URL: <
>>> http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220425/fdcca17c/attachment-0001.html
>>> >
>>> >
>>> > ------------------------------
>>> >
>>> > Message: 4
>>> > Date: Mon, 25 Apr 2022 15:14:25 +0000
>>> > From: "Brutzman, Donald (Don) (CIV)" <brutzman at nps.edu>
>>> > To: Andreas Plesch <andreasplesch at gmail.com>
>>> > Cc: "x3d at web3d.org" <x3d at web3d.org>, Spec Feedback
>>> > <spec-comment at web3d.org>, "X3D Public Mailing List
>>> > (x3d-public at web3d.org)" <x3d-public at web3d.org>, "Brutzman,
>>> Donald
>>> > (Don) (CIV)" <brutzman at nps.edu>
>>> > Subject: Re: [x3d-public] [x3d] Spec Comment by on 19775-1: X3D
>>> > Architecture - V4.0: component support needed for glTF inline
>>> loading
>>> > conversion
>>> > Message-ID:
>>> > <
>>> BY3PR13MB48844D178FEBD3BCA8221B51C4F89 at BY3PR13MB4884.namprd13.prod.outlook.com
>>> >
>>> >
>>> > Content-Type: text/plain; charset="us-ascii"
>>> >
>>> > [cc: x3d-public]
>>> >
>>> > Thanks for insightful comment. Happy to modify this statement to list
>>> all
>>> > appropriate components, possibly Immersive profile.
>>> >
>>> > Michalis, do you have any opinions from writing your glTF->X3D
>>> conversion
>>> > code?
>>> >
>>> > It helps to know full coverage. If there is a glTF test file that
>>> includes
>>> > all constructs, that would also be helpful to convert and add to our
>>> > architecture.
>>> >
>>> > all the best, Don
>>> > --
>>> > Don Brutzman Naval Postgraduate School, Code USW/Br
>>> brutzman at nps.edu
>>> > Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA
>>> +1.831.656.2149
>>> > X3D graphics, virtual worlds, Navy robotics https://
>>> > faculty.nps.edu/brutzman
>>> >
>>> > -----Original Message-----
>>> > From: x3d <x3d-bounces at web3d.org> On Behalf Of Spec Feedback
>>> > Sent: Thursday, April 21, 2022 12:47 PM
>>> > To: x3d at web3d.org
>>> > Subject: [x3d] Spec Comment by on 19775-1: X3D Architecture - V4.0
>>> >
>>> > -- Submitter indicates that this comment may be public: *Yes* --
>>> >
>>> > Comment on 19775-1: X3D Architecture - V4.0
>>> >
>>> >
>>> https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/component
>>> > s/networking.html#X3DUrlObject
>>> >
>>> > -----------------
>>> > "Support for loading glTF assets (see 2.[GLTF]) also requires support
>>> for
>>> > Shape component level 2 and Lighting component level 4."
>>> >
>>> > Many different data fragments may be contained in the current standard
>>> gltf
>>> > asset structure, even animation data, so maybe also more general
>>> statement?
>>> >
>>> >
>>> >
>>> > -----------------
>>> >
>>> > Submitted on Thursday, 2022, April 21 - 12:47pm by (Joe D Williams )
>>> > IP: 12.206.82.58
>>> >
>>> > See: https://www.web3d.org/node/1694/submission/5663
>>> >
>>> >
>>> > _______________________________________________
>>> > x3d mailing list
>>> > x3d at web3d.org
>>> > http://web3d.org/mailman/listinfo/x3d_web3d.org
>>> > -------------- next part --------------
>>> > A non-text attachment was scrubbed...
>>> > Name: smime.p7s
>>> > Type: application/pkcs7-signature
>>> > Size: 5353 bytes
>>> > Desc: not available
>>> > URL: <
>>> http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220425/1630c2b4/attachment.p7s
>>> >
>>> >
>>> > ------------------------------
>>> >
>>> > Subject: Digest Footer
>>> >
>>> > _______________________________________________
>>> > x3d-public mailing list
>>> > x3d-public at web3d.org
>>> > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>> >
>>> >
>>> > ------------------------------
>>> >
>>> > End of x3d-public Digest, Vol 157, Issue 93
>>> > *******************************************
>>>
>>>
>>>
>>> --
>>> Andreas Plesch
>>> Waltham, MA 02453
>>>
>>> _______________________________________________
>>> x3d-public mailing list
>>> x3d-public at web3d.org
>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220425/bc638b0c/attachment-0001.html>
More information about the x3d-public
mailing list