[x3d-public] ProtoBody completeness in nested Protos

GPU Group gpugroup at gmail.com
Mon Apr 25 15:11:37 PDT 2022


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/a100b5d4/attachment-0001.html>


More information about the x3d-public mailing list