main: update documentation
This commit is contained in:
parent
676b8d1fd2
commit
a54ff56a8d
|
@ -208,8 +208,8 @@ Instead of forcing authors to combine 3D/2D objects programmatically (publishing
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>#pos</code></td>
|
<td><code>#pos</code></td>
|
||||||
<td>vector3</td>
|
<td>vector3</td>
|
||||||
<td><code>#pos=0.5,0,0</code> <code>#pos=room</code> <code>pos=cam2</code></td>
|
<td><code>#pos=0.5,0,0</code> <code>#pos=room</code> <code>#pos=cam2</code></td>
|
||||||
<td>positions camera (or XR floor) to xyz-coord/object/camera</td>
|
<td>positions/parents camera(rig) (or XR floor) to xyz-coord/object/camera</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -745,8 +745,14 @@ For example, to render a portal with a preview-version of the scene, create an 3
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>#pos</b>=0,0,0</td>
|
<td><b>#pos</b>=0,0,0</td>
|
||||||
<td>vector3 or string</td>
|
<td>vector3</td>
|
||||||
<td>(re)position camera based on coordinates directly, or indirectly using objectname (its worldposition)</td>
|
<td>position camera to 0,0,0 (+userheight in VR)</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><b>#pos</b>=room</td>
|
||||||
|
<td>string</td>
|
||||||
|
<td>position camera to position of objectname <code>room</code> (+userheight in VR)</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -759,15 +765,18 @@ For example, to render a portal with a preview-version of the scene, create an 3
|
||||||
<p><a href="https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js">» example implementation</a><br>
|
<p><a href="https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js">» example implementation</a><br>
|
||||||
<a href="https://github.com/coderofsalvation/xrfragment/issues/5">» discussion</a><br></p>
|
<a href="https://github.com/coderofsalvation/xrfragment/issues/5">» discussion</a><br></p>
|
||||||
|
|
||||||
|
<p>Here’s the basic <strong>level1</strong> flow (with optional level2 features):</p>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>the Y-coordinate of <code>pos</code> identifies the floorposition. This means that desktop-projections usually need to add 1.5m (average person height) on top (which is done automatically by VR/AR headsets).</li>
|
<li>the Y-coordinate of <code>pos</code> identifies the floorposition. This means that desktop-projections usually need to add 1.5m (average person height) on top (which is done automatically by VR/AR headsets), except in case of camera-switching.</li>
|
||||||
<li>set the position of the camera accordingly to the vector3 values of <code>#pos</code></li>
|
<li>set the position of the camera accordingly to the vector3 values of <code>#pos</code></li>
|
||||||
<li><code>rot</code> sets the rotation of the camera (only for non-VR/AR headsets)</li>
|
<li>if the referenced <code>#pos</code> object is animated, parent the current camera to that object (so it animates too)</li>
|
||||||
<li>mediafragment <code>t</code> in the top-URL sets the playbackspeed and animation-range of the global scene animation</li>
|
<li><code>rot</code> sets the rotation of the camera (only for non-VR/AR headsets, however a camera-value overrules this)</li>
|
||||||
|
<li><strong>level2</strong>: mediafragment <code>t</code> in the top-URL sets the playbackspeed and animation-range of the global scene animation</li>
|
||||||
<li>before scene load: the scene is cleared</li>
|
<li>before scene load: the scene is cleared</li>
|
||||||
<li>after scene load: in case the scene (rootnode) contains an <code>#</code> default view with a fragment value: execute non-positional fragments via the hashbus (no top-level URL change)</li>
|
<li><strong>level2</strong>: after scene load: in case the scene (rootnode) contains an <code>#</code> default view with a fragment value: execute non-positional fragments via the hashbus (no top-level URL change)</li>
|
||||||
<li>after scene load: in case the scene (rootnode) contains an <code>#</code> default view with a fragment value: execute positional fragment via the hashbus + update top-level URL</li>
|
<li><strong>level2</strong>: after scene load: in case the scene (rootnode) contains an <code>#</code> default view with a fragment value: execute positional fragment via the hashbus + update top-level URL</li>
|
||||||
<li>in case of no default <code>#</code> view on the scene (rootnode), default player(rig) position <code>0,0,0</code> is assumed.</li>
|
<li><strong>level2</strong>: in case of no default <code>#</code> view on the scene (rootnode), default player(rig) position <code>0,0,0</code> is assumed.</li>
|
||||||
<li>in case a <code>href</code> does not mention any <code>pos</code>-coordinate, the current position will be assumed</li>
|
<li>in case a <code>href</code> does not mention any <code>pos</code>-coordinate, the current position will be assumed</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
|
|
|
@ -201,7 +201,7 @@ XR Fragments utilizes URLs:
|
||||||
|
|
||||||
| fragment | type | example | info |
|
| fragment | type | example | info |
|
||||||
|-------------------|------------|--------------------|----------------------------------------------------------------------|
|
|-------------------|------------|--------------------|----------------------------------------------------------------------|
|
||||||
| `#pos` | vector3 | `#pos=0.5,0,0` `#pos=room` `pos=cam2` | positions camera (or XR floor) to xyz-coord/object/camera |
|
| `#pos` | vector3 | `#pos=0.5,0,0` `#pos=room` `#pos=cam2` | positions/parents camera(rig) (or XR floor) to xyz-coord/object/camera |
|
||||||
| `#rot` | vector3 | `#rot=0,90,0` | rotates camera to xyz-coord 0.5,0,0 |
|
| `#rot` | vector3 | `#rot=0,90,0` | rotates camera to xyz-coord 0.5,0,0 |
|
||||||
| [Media Fragments](https://www.w3.org/TR/media-frags/) | [media fragment](#media%20fragments%20and%20datatypes) | `#t=0,2&loop` | play (and loop) 3D animation from 0 seconds till 2 seconds|
|
| [Media Fragments](https://www.w3.org/TR/media-frags/) | [media fragment](#media%20fragments%20and%20datatypes) | `#t=0,2&loop` | play (and loop) 3D animation from 0 seconds till 2 seconds|
|
||||||
|
|
||||||
|
@ -430,7 +430,6 @@ Example URI's:
|
||||||
|----------|--------|------------------------------|
|
|----------|--------|------------------------------|
|
||||||
| <b>#pos</b>=0,0,0 | vector3 |position camera to 0,0,0 (+userheight in VR) |
|
| <b>#pos</b>=0,0,0 | vector3 |position camera to 0,0,0 (+userheight in VR) |
|
||||||
| <b>#pos</b>=room | string | position camera to position of objectname `room` (+userheight in VR) |
|
| <b>#pos</b>=room | string | position camera to position of objectname `room` (+userheight in VR) |
|
||||||
| <b>#pos</b>=cam02 | string | set camera with name `cam02` as active cam (follow animation e.g.) |
|
|
||||||
| <b>#rot</b>=0,90,0 | vector3 | rotate camera |
|
| <b>#rot</b>=0,90,0 | vector3 | rotate camera |
|
||||||
|
|
||||||
[» example implementation](https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js)<br>
|
[» example implementation](https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js)<br>
|
||||||
|
@ -440,13 +439,14 @@ Here's the basic **level1** flow (with optional level2 features):
|
||||||
|
|
||||||
1. the Y-coordinate of `pos` identifies the floorposition. This means that desktop-projections usually need to add 1.5m (average person height) on top (which is done automatically by VR/AR headsets), except in case of camera-switching.
|
1. the Y-coordinate of `pos` identifies the floorposition. This means that desktop-projections usually need to add 1.5m (average person height) on top (which is done automatically by VR/AR headsets), except in case of camera-switching.
|
||||||
2. set the position of the camera accordingly to the vector3 values of `#pos`
|
2. set the position of the camera accordingly to the vector3 values of `#pos`
|
||||||
3. `rot` sets the rotation of the camera (only for non-VR/AR headsets, however a camera-value overrules this)
|
3. if the referenced `#pos` object is animated, parent the current camera to that object (so it animates too)
|
||||||
4. **level2**: mediafragment `t` in the top-URL sets the playbackspeed and animation-range of the global scene animation
|
4. `rot` sets the rotation of the camera (only for non-VR/AR headsets, however a camera-value overrules this)
|
||||||
5. before scene load: the scene is cleared
|
5. **level2**: mediafragment `t` in the top-URL sets the playbackspeed and animation-range of the global scene animation
|
||||||
6. **level2**: after scene load: in case the scene (rootnode) contains an `#` default view with a fragment value: execute non-positional fragments via the hashbus (no top-level URL change)
|
6. before scene load: the scene is cleared
|
||||||
7. **level2**: after scene load: in case the scene (rootnode) contains an `#` default view with a fragment value: execute positional fragment via the hashbus + update top-level URL
|
7. **level2**: after scene load: in case the scene (rootnode) contains an `#` default view with a fragment value: execute non-positional fragments via the hashbus (no top-level URL change)
|
||||||
8. **level2**: in case of no default `#` view on the scene (rootnode), default player(rig) position `0,0,0` is assumed.
|
8. **level2**: after scene load: in case the scene (rootnode) contains an `#` default view with a fragment value: execute positional fragment via the hashbus + update top-level URL
|
||||||
9. in case a `href` does not mention any `pos`-coordinate, the current position will be assumed
|
9. **level2**: in case of no default `#` view on the scene (rootnode), default player(rig) position `0,0,0` is assumed.
|
||||||
|
10. in case a `href` does not mention any `pos`-coordinate, the current position will be assumed
|
||||||
|
|
||||||
Here's an ascii representation of a 3D scene-graph which contains 3D objects `◻` and their metadata:
|
Here's an ascii representation of a 3D scene-graph which contains 3D objects `◻` and their metadata:
|
||||||
|
|
||||||
|
|
|
@ -95,13 +95,13 @@ Table of Contents
|
||||||
8.2. media fragments and datatypes . . . . . . . . . . . . . . 13
|
8.2. media fragments and datatypes . . . . . . . . . . . . . . 13
|
||||||
9. Navigating 3D . . . . . . . . . . . . . . . . . . . . . . . . 16
|
9. Navigating 3D . . . . . . . . . . . . . . . . . . . . . . . . 16
|
||||||
10. Top-level URL processing . . . . . . . . . . . . . . . . . . 17
|
10. Top-level URL processing . . . . . . . . . . . . . . . . . . 17
|
||||||
11. Embedding XR content using src . . . . . . . . . . . . . . . 17
|
11. Embedding XR content using src . . . . . . . . . . . . . . . 18
|
||||||
12. Navigating content href portals . . . . . . . . . . . . . . . 20
|
12. Navigating content href portals . . . . . . . . . . . . . . . 20
|
||||||
12.1. Walking surfaces . . . . . . . . . . . . . . . . . . . . 21
|
12.1. Walking surfaces . . . . . . . . . . . . . . . . . . . . 21
|
||||||
12.2. UX spec . . . . . . . . . . . . . . . . . . . . . . . . 21
|
12.2. UX spec . . . . . . . . . . . . . . . . . . . . . . . . 22
|
||||||
12.3. Scaling instanced content . . . . . . . . . . . . . . . 22
|
12.3. Scaling instanced content . . . . . . . . . . . . . . . 22
|
||||||
13. XR Fragment: pos . . . . . . . . . . . . . . . . . . . . . . 22
|
13. XR Fragment: pos . . . . . . . . . . . . . . . . . . . . . . 22
|
||||||
14. XR Fragment: rot . . . . . . . . . . . . . . . . . . . . . . 22
|
14. XR Fragment: rot . . . . . . . . . . . . . . . . . . . . . . 23
|
||||||
15. XR Fragment: t . . . . . . . . . . . . . . . . . . . . . . . 23
|
15. XR Fragment: t . . . . . . . . . . . . . . . . . . . . . . . 23
|
||||||
16. XR audio/video integration . . . . . . . . . . . . . . . . . 23
|
16. XR audio/video integration . . . . . . . . . . . . . . . . . 23
|
||||||
17. XR Fragment filters . . . . . . . . . . . . . . . . . . . . . 23
|
17. XR Fragment filters . . . . . . . . . . . . . . . . . . . . . 23
|
||||||
|
@ -115,26 +115,26 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
17.2. Filter Parser . . . . . . . . . . . . . . . . . . . . . 25
|
17.2. Filter Parser . . . . . . . . . . . . . . . . . . . . . 25
|
||||||
18. Visible links . . . . . . . . . . . . . . . . . . . . . . . . 25
|
18. Visible links . . . . . . . . . . . . . . . . . . . . . . . . 26
|
||||||
19. Text in XR (tagging,linking to spatial objects) . . . . . . . 26
|
19. Text in XR (tagging,linking to spatial objects) . . . . . . . 26
|
||||||
19.1. Default Data URI mimetype . . . . . . . . . . . . . . . 28
|
19.1. Default Data URI mimetype . . . . . . . . . . . . . . . 29
|
||||||
19.2. URL and Data URI . . . . . . . . . . . . . . . . . . . . 29
|
19.2. URL and Data URI . . . . . . . . . . . . . . . . . . . . 30
|
||||||
20. Importing/exporting . . . . . . . . . . . . . . . . . . . . . 30
|
20. Importing/exporting . . . . . . . . . . . . . . . . . . . . . 31
|
||||||
21. Reflection Mapping . . . . . . . . . . . . . . . . . . . . . 30
|
21. Reflection Mapping . . . . . . . . . . . . . . . . . . . . . 31
|
||||||
22. Transclusion (broken link) resolution . . . . . . . . . . . . 30
|
22. Transclusion (broken link) resolution . . . . . . . . . . . . 31
|
||||||
23. Topic-based index-less Webrings . . . . . . . . . . . . . . . 31
|
23. Topic-based index-less Webrings . . . . . . . . . . . . . . . 32
|
||||||
24. URI Templates (RFC6570) . . . . . . . . . . . . . . . . . . . 32
|
24. URI Templates (RFC6570) . . . . . . . . . . . . . . . . . . . 33
|
||||||
25. Additional scene metadata . . . . . . . . . . . . . . . . . . 32
|
25. Additional scene metadata . . . . . . . . . . . . . . . . . . 33
|
||||||
26. Accessibility interface . . . . . . . . . . . . . . . . . . . 33
|
26. Accessibility interface . . . . . . . . . . . . . . . . . . . 34
|
||||||
26.1. Two-button navigation . . . . . . . . . . . . . . . . . 34
|
26.1. Two-button navigation . . . . . . . . . . . . . . . . . 35
|
||||||
26.2. Overlap with fileformat-specific extensions . . . . . . 35
|
26.2. Overlap with fileformat-specific extensions . . . . . . 36
|
||||||
26.3. Vendor Prefixes . . . . . . . . . . . . . . . . . . . . 35
|
26.3. Vendor Prefixes . . . . . . . . . . . . . . . . . . . . 36
|
||||||
27. Security Considerations . . . . . . . . . . . . . . . . . . . 38
|
27. Security Considerations . . . . . . . . . . . . . . . . . . . 39
|
||||||
28. FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
|
28. FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
|
||||||
29. authors . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
|
29. authors . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
|
||||||
30. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39
|
30. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40
|
||||||
31. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 39
|
31. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 40
|
||||||
32. Appendix: Definitions . . . . . . . . . . . . . . . . . . . . 39
|
32. Appendix: Definitions . . . . . . . . . . . . . . . . . . . . 40
|
||||||
|
|
||||||
1. Introduction
|
1. Introduction
|
||||||
|
|
||||||
|
@ -287,10 +287,11 @@ Internet-Draft XR Fragments October 2024
|
||||||
+=======================+======================================+============+=============+
|
+=======================+======================================+============+=============+
|
||||||
|fragment |type |example |info |
|
|fragment |type |example |info |
|
||||||
+=======================+======================================+============+=============+
|
+=======================+======================================+============+=============+
|
||||||
|#pos |vector3 |#pos=0.5,0,0|positions |
|
|#pos |vector3 |#pos=0.5,0,0|positions/ |
|
||||||
| | |#pos=room |camera (or XR|
|
| | |#pos=room |parents |
|
||||||
| | |pos=cam2 |floor) to |
|
| | |#pos=cam2 |camera(rig) |
|
||||||
| | | |xyz- |
|
| | | |(or XR floor)|
|
||||||
|
| | | |to xyz- |
|
||||||
| | | |coord/object/|
|
| | | |coord/object/|
|
||||||
| | | |camera |
|
| | | |camera |
|
||||||
+-----------------------+--------------------------------------+------------+-------------+
|
+-----------------------+--------------------------------------+------------+-------------+
|
||||||
|
@ -331,7 +332,6 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 6]
|
van Kammen Expires 10 April 2025 [Page 6]
|
||||||
|
|
||||||
|
@ -844,18 +844,20 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
9. Navigating 3D
|
9. Navigating 3D
|
||||||
|
|
||||||
+====================+=========+=============================+
|
+====================+=========+==========================+
|
||||||
| fragment | type | functionality |
|
| fragment | type | functionality |
|
||||||
+====================+=========+=============================+
|
+====================+=========+==========================+
|
||||||
| <b>#pos</b>=0,0,0 | vector3 | (re)position camera based |
|
| <b>#pos</b>=0,0,0 | vector3 | position camera to 0,0,0 |
|
||||||
| | or | on coordinates directly, or |
|
| | | (+userheight in VR) |
|
||||||
| | string | indirectly using objectname |
|
+--------------------+---------+--------------------------+
|
||||||
| | | (its worldposition) |
|
| <b>#pos</b>=room | string | position camera to |
|
||||||
+--------------------+---------+-----------------------------+
|
| | | position of objectname |
|
||||||
| <b>#rot</b>=0,90,0 | vector3 | rotate camera |
|
| | | room (+userheight in VR) |
|
||||||
+--------------------+---------+-----------------------------+
|
+--------------------+---------+--------------------------+
|
||||||
|
| <b>#rot</b>=0,90,0 | vector3 | rotate camera |
|
||||||
|
+--------------------+---------+--------------------------+
|
||||||
|
|
||||||
Table 7
|
Table 7
|
||||||
|
|
||||||
» example implementation
|
» example implementation
|
||||||
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
|
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
|
||||||
|
@ -863,33 +865,31 @@ Internet-Draft XR Fragments October 2024
|
||||||
» discussion (https://github.com/coderofsalvation/xrfragment/
|
» discussion (https://github.com/coderofsalvation/xrfragment/
|
||||||
issues/5)
|
issues/5)
|
||||||
|
|
||||||
1. the Y-coordinate of pos identifies the floorposition. This means
|
Here's the basic *level1* flow (with optional level2 features):
|
||||||
that desktop-projections usually need to add 1.5m (average person
|
|
||||||
height) on top (which is done automatically by VR/AR headsets).
|
|
||||||
2. set the position of the camera accordingly to the vector3 values
|
|
||||||
of #pos
|
|
||||||
3. rot sets the rotation of the camera (only for non-VR/AR headsets)
|
|
||||||
4. mediafragment t in the top-URL sets the playbackspeed and
|
|
||||||
animation-range of the global scene animation
|
|
||||||
5. before scene load: the scene is cleared
|
|
||||||
6. after scene load: in case the scene (rootnode) contains an #
|
|
||||||
default view with a fragment value: execute non-positional
|
|
||||||
fragments via the hashbus (no top-level URL change)
|
|
||||||
7. after scene load: in case the scene (rootnode) contains an #
|
|
||||||
default view with a fragment value: execute positional fragment
|
|
||||||
via the hashbus + update top-level URL
|
|
||||||
8. in case of no default # view on the scene (rootnode), default
|
|
||||||
player(rig) position 0,0,0 is assumed.
|
|
||||||
9. in case a href does not mention any pos-coordinate, the current
|
|
||||||
position will be assumed
|
|
||||||
|
|
||||||
Here's an ascii representation of a 3D scene-graph which contains 3D
|
|
||||||
objects ◻ and their metadata:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
1. the Y-coordinate of pos identifies the floorposition. This
|
||||||
|
means that desktop-projections usually need to add 1.5m (average
|
||||||
|
person height) on top (which is done automatically by VR/AR
|
||||||
|
headsets), except in case of camera-switching.
|
||||||
|
2. set the position of the camera accordingly to the vector3 values
|
||||||
|
of #pos
|
||||||
|
3. if the referenced #pos object is animated, parent the current
|
||||||
|
camera to that object (so it animates too)
|
||||||
|
4. rot sets the rotation of the camera (only for non-VR/AR
|
||||||
|
headsets, however a camera-value overrules this)
|
||||||
|
5. *level2*: mediafragment t in the top-URL sets the playbackspeed
|
||||||
|
and animation-range of the global scene animation
|
||||||
|
6. before scene load: the scene is cleared
|
||||||
|
7. *level2*: after scene load: in case the scene (rootnode)
|
||||||
|
contains an # default view with a fragment value: execute non-
|
||||||
|
positional fragments via the hashbus (no top-level URL change)
|
||||||
|
8. *level2*: after scene load: in case the scene (rootnode)
|
||||||
|
contains an # default view with a fragment value: execute
|
||||||
|
positional fragment via the hashbus + update top-level URL
|
||||||
|
9. *level2*: in case of no default # view on the scene (rootnode),
|
||||||
|
default player(rig) position 0,0,0 is assumed.
|
||||||
|
10. in case a href does not mention any pos-coordinate, the current
|
||||||
|
position will be assumed
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -898,6 +898,9 @@ van Kammen Expires 10 April 2025 [Page 16]
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
Here's an ascii representation of a 3D scene-graph which contains 3D
|
||||||
|
objects ◻ and their metadata:
|
||||||
|
|
||||||
+────────────────────────────────────────────────────────+
|
+────────────────────────────────────────────────────────+
|
||||||
│ │
|
│ │
|
||||||
│ index.gltf │
|
│ index.gltf │
|
||||||
|
@ -939,13 +942,10 @@ Internet-Draft XR Fragments October 2024
|
||||||
5. IF a #cube matches anything else in the XR Word Graph (XRWG) draw
|
5. IF a #cube matches anything else in the XR Word Graph (XRWG) draw
|
||||||
wires to them (text or related objects).
|
wires to them (text or related objects).
|
||||||
|
|
||||||
11. Embedding XR content using src
|
|
||||||
|
|
||||||
src is the 3D version of the <a target="_blank"
|
|
||||||
href="https://www.w3.org/html/wiki/Elements/iframe">iframe</a>.
|
|
||||||
It instances content (in objects) in the current scene/asset, and
|
|
||||||
follows similar logic like the previous chapter, except that it does
|
|
||||||
not modify the camera.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -954,6 +954,14 @@ van Kammen Expires 10 April 2025 [Page 17]
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
11. Embedding XR content using src
|
||||||
|
|
||||||
|
src is the 3D version of the <a target="_blank"
|
||||||
|
href="https://www.w3.org/html/wiki/Elements/iframe">iframe</a>.
|
||||||
|
It instances content (in objects) in the current scene/asset, and
|
||||||
|
follows similar logic like the previous chapter, except that it does
|
||||||
|
not modify the camera.
|
||||||
|
|
||||||
+========+========+===================================================+
|
+========+========+===================================================+
|
||||||
|fragment|type |example value |
|
|fragment|type |example value |
|
||||||
+========+========+===================================================+
|
+========+========+===================================================+
|
||||||
|
@ -992,14 +1000,6 @@ Internet-Draft XR Fragments October 2024
|
||||||
│ │
|
│ │
|
||||||
+────────────────────────────────────────────────────────+
|
+────────────────────────────────────────────────────────+
|
||||||
|
|
||||||
An XR Fragment-compatible browser viewing this scene, lazy-loads and
|
|
||||||
projects painting.png onto the (plane) object called canvas (which is
|
|
||||||
copy-instanced in the bed and livingroom).
|
|
||||||
Also, after lazy-loading ocean.com/aquarium.gltf, only the queried
|
|
||||||
objects fishbowl (and bass and tuna) will be instanced inside
|
|
||||||
aquariumcube.
|
|
||||||
Resizing will be happen accordingly to its placeholder object
|
|
||||||
aquariumcube, see chapter Scaling.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1010,6 +1010,15 @@ van Kammen Expires 10 April 2025 [Page 18]
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
An XR Fragment-compatible browser viewing this scene, lazy-loads and
|
||||||
|
projects painting.png onto the (plane) object called canvas (which is
|
||||||
|
copy-instanced in the bed and livingroom).
|
||||||
|
Also, after lazy-loading ocean.com/aquarium.gltf, only the queried
|
||||||
|
objects fishbowl (and bass and tuna) will be instanced inside
|
||||||
|
aquariumcube.
|
||||||
|
Resizing will be happen accordingly to its placeholder object
|
||||||
|
aquariumcube, see chapter Scaling.
|
||||||
|
|
||||||
| Instead of cherrypicking a rootobject #fishbowl with src,
|
| Instead of cherrypicking a rootobject #fishbowl with src,
|
||||||
| additional filters can be used to include/exclude certain objects.
|
| additional filters can be used to include/exclude certain objects.
|
||||||
| See next chapter on filtering below.
|
| See next chapter on filtering below.
|
||||||
|
@ -1049,6 +1058,14 @@ Internet-Draft XR Fragments October 2024
|
||||||
object belongs.
|
object belongs.
|
||||||
12. when only one object was cherrypicked (#cube e.g.), set its
|
12. when only one object was cherrypicked (#cube e.g.), set its
|
||||||
position to 0,0,0
|
position to 0,0,0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
van Kammen Expires 10 April 2025 [Page 19]
|
||||||
|
|
||||||
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
13. when the enduser clicks an href with #t=1,0,0 (play) will be
|
13. when the enduser clicks an href with #t=1,0,0 (play) will be
|
||||||
applied to all src mediacontent with a timeline (mp4/mp3 e.g.)
|
applied to all src mediacontent with a timeline (mp4/mp3 e.g.)
|
||||||
14. a non-euclidian portal can be rendered for flat 3D objects
|
14. a non-euclidian portal can be rendered for flat 3D objects
|
||||||
|
@ -1058,14 +1075,6 @@ Internet-Draft XR Fragments October 2024
|
||||||
* model/gltf-binary
|
* model/gltf-binary
|
||||||
* model/gltf+json
|
* model/gltf+json
|
||||||
* image/png
|
* image/png
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 19]
|
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
|
||||||
|
|
||||||
|
|
||||||
* image/jpg
|
* image/jpg
|
||||||
* text/plain;charset=utf-8
|
* text/plain;charset=utf-8
|
||||||
|
|
||||||
|
@ -1103,6 +1112,16 @@ Internet-Draft XR Fragments October 2024
|
||||||
than 5 meter away from the portal/object containing the href (to
|
than 5 meter away from the portal/object containing the href (to
|
||||||
prevent accidental navigation e.g.)
|
prevent accidental navigation e.g.)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
van Kammen Expires 10 April 2025 [Page 20]
|
||||||
|
|
||||||
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
4. URL navigation should always be reflected in the client URL-bar
|
4. URL navigation should always be reflected in the client URL-bar
|
||||||
(in case of javascript: see [here
|
(in case of javascript: see [here
|
||||||
(https://github.com/coderofsalvation/xrfragment/blob/dev/src/3rd/
|
(https://github.com/coderofsalvation/xrfragment/blob/dev/src/3rd/
|
||||||
|
@ -1114,14 +1133,6 @@ Internet-Draft XR Fragments October 2024
|
||||||
(https://github.com/coderofsalvation/xrfragment/blob/dev/example/
|
(https://github.com/coderofsalvation/xrfragment/blob/dev/example/
|
||||||
aframe/sandbox/index.html#L26-L29) for an example wearable)
|
aframe/sandbox/index.html#L26-L29) for an example wearable)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 20]
|
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
|
||||||
|
|
||||||
|
|
||||||
6. make sure that the ''back-button'' of the ''browser-history''
|
6. make sure that the ''back-button'' of the ''browser-history''
|
||||||
always refers to the previous position (see [here (https://github
|
always refers to the previous position (see [here (https://github
|
||||||
.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/
|
.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/
|
||||||
|
@ -1159,6 +1170,14 @@ Internet-Draft XR Fragments October 2024
|
||||||
| optionally the viewer can offer thumbstick, mouse or joystick
|
| optionally the viewer can offer thumbstick, mouse or joystick
|
||||||
| teleport-tools for non-roomscale VR/AR setups.
|
| teleport-tools for non-roomscale VR/AR setups.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
van Kammen Expires 10 April 2025 [Page 21]
|
||||||
|
|
||||||
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
12.2. UX spec
|
12.2. UX spec
|
||||||
|
|
||||||
End-users should always have read/write access to:
|
End-users should always have read/write access to:
|
||||||
|
@ -1169,15 +1188,6 @@ Internet-Draft XR Fragments October 2024
|
||||||
another scene/file (and coordinate e.g. in case the URL contains
|
another scene/file (and coordinate e.g. in case the URL contains
|
||||||
XR Fragments).
|
XR Fragments).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 21]
|
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
|
||||||
|
|
||||||
|
|
||||||
12.3. Scaling instanced content
|
12.3. Scaling instanced content
|
||||||
|
|
||||||
Sometimes embedded properties (like src) instance new objects.
|
Sometimes embedded properties (like src) instance new objects.
|
||||||
|
@ -1216,16 +1226,6 @@ Internet-Draft XR Fragments October 2024
|
||||||
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
|
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
|
||||||
three/xrf/pos.js])]
|
three/xrf/pos.js])]
|
||||||
|
|
||||||
14. XR Fragment: rot
|
|
||||||
|
|
||||||
[[» example implementation|https://github.com/coderofsalvation/xrfrag
|
|
||||||
ment/blob/main/src/3rd/js/three/xrf/pos.js]
|
|
||||||
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
|
|
||||||
three/xrf/pos.js])]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1234,6 +1234,13 @@ van Kammen Expires 10 April 2025 [Page 22]
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
14. XR Fragment: rot
|
||||||
|
|
||||||
|
[[» example implementation|https://github.com/coderofsalvation/xrfrag
|
||||||
|
ment/blob/main/src/3rd/js/three/xrf/pos.js]
|
||||||
|
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
|
||||||
|
three/xrf/pos.js])]
|
||||||
|
|
||||||
15. XR Fragment: t
|
15. XR Fragment: t
|
||||||
|
|
||||||
[[» example implementation|https://github.com/coderofsalvation/xrfrag
|
[[» example implementation|https://github.com/coderofsalvation/xrfrag
|
||||||
|
@ -1264,6 +1271,25 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
Include, exclude, hide/shows objects using space-separated strings:
|
Include, exclude, hide/shows objects using space-separated strings:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
van Kammen Expires 10 April 2025 [Page 23]
|
||||||
|
|
||||||
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
+====================+===========================================+
|
+====================+===========================================+
|
||||||
| example | outcome |
|
| example | outcome |
|
||||||
+====================+===========================================+
|
+====================+===========================================+
|
||||||
|
@ -1281,15 +1307,6 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
Table 10
|
Table 10
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 23]
|
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
|
||||||
|
|
||||||
|
|
||||||
It's simple but powerful syntax which allows filtering the scene
|
It's simple but powerful syntax which allows filtering the scene
|
||||||
using searchengine prompt-style feeling:
|
using searchengine prompt-style feeling:
|
||||||
|
|
||||||
|
@ -1308,6 +1325,27 @@ Internet-Draft XR Fragments October 2024
|
||||||
object (not their children) will be toggled (in)visible when
|
object (not their children) will be toggled (in)visible when
|
||||||
selecting.
|
selecting.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
van Kammen Expires 10 April 2025 [Page 24]
|
||||||
|
|
||||||
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
+==========+==============================================+
|
+==========+==============================================+
|
||||||
| operator | info |
|
| operator | info |
|
||||||
+==========+==============================================+
|
+==========+==============================================+
|
||||||
|
@ -1338,14 +1376,6 @@ Internet-Draft XR Fragments October 2024
|
||||||
» example implementation
|
» example implementation
|
||||||
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
|
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
|
||||||
three/xrf/q.js) » example 3D asset
|
three/xrf/q.js) » example 3D asset
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 24]
|
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
|
||||||
|
|
||||||
|
|
||||||
(https://github.com/coderofsalvation/xrfragment/blob/main/example/
|
(https://github.com/coderofsalvation/xrfragment/blob/main/example/
|
||||||
assets/filter.gltf#L192) » discussion
|
assets/filter.gltf#L192) » discussion
|
||||||
(https://github.com/coderofsalvation/xrfragment/issues/3)
|
(https://github.com/coderofsalvation/xrfragment/issues/3)
|
||||||
|
@ -1364,6 +1394,14 @@ Internet-Draft XR Fragments October 2024
|
||||||
5. detect number values like foo=1 (reference regex= /^[0-9\.]+$/ )
|
5. detect number values like foo=1 (reference regex= /^[0-9\.]+$/ )
|
||||||
6. detect operators so you can easily strip keys (reference regex=
|
6. detect operators so you can easily strip keys (reference regex=
|
||||||
/(^-|\*$)/ )
|
/(^-|\*$)/ )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
van Kammen Expires 10 April 2025 [Page 25]
|
||||||
|
|
||||||
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
7. detect exclude keys like -foo (reference regex= /^-/ )
|
7. detect exclude keys like -foo (reference regex= /^-/ )
|
||||||
8. for every filter token split string on =
|
8. for every filter token split string on =
|
||||||
9. and we set root to true or false (true=/ root selector is
|
9. and we set root to true or false (true=/ root selector is
|
||||||
|
@ -1394,14 +1432,6 @@ Internet-Draft XR Fragments October 2024
|
||||||
src/3rd/js/XRWG.js)), which basically has all these things already
|
src/3rd/js/XRWG.js)), which basically has all these things already
|
||||||
collected/organized for you during scene-load.
|
collected/organized for you during scene-load.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 25]
|
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
|
||||||
|
|
||||||
|
|
||||||
*UX*
|
*UX*
|
||||||
|
|
||||||
4. do not update the wires when the enduser moves, leave them as is
|
4. do not update the wires when the enduser moves, leave them as is
|
||||||
|
@ -1417,6 +1447,17 @@ Internet-Draft XR Fragments October 2024
|
||||||
| (https://github.com/coderofsalvation/xrfragment/blob/feat/macros/
|
| (https://github.com/coderofsalvation/xrfragment/blob/feat/macros/
|
||||||
| src/3rd/js/XRWG.js)), augmented by Bib(s)Tex.
|
| src/3rd/js/XRWG.js)), augmented by Bib(s)Tex.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
van Kammen Expires 10 April 2025 [Page 26]
|
||||||
|
|
||||||
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
Instead of just throwing together all kinds media types into one
|
Instead of just throwing together all kinds media types into one
|
||||||
experience (games), what about their tagged/semantical relationships?
|
experience (games), what about their tagged/semantical relationships?
|
||||||
Perhaps the following question is related: why is HTML adopted less
|
Perhaps the following question is related: why is HTML adopted less
|
||||||
|
@ -1453,7 +1494,22 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 26]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
van Kammen Expires 10 April 2025 [Page 27]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -1509,7 +1565,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 27]
|
van Kammen Expires 10 April 2025 [Page 28]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -1565,7 +1621,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 28]
|
van Kammen Expires 10 April 2025 [Page 29]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -1621,7 +1677,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 29]
|
van Kammen Expires 10 April 2025 [Page 30]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -1677,7 +1733,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 30]
|
van Kammen Expires 10 April 2025 [Page 31]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -1733,7 +1789,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 31]
|
van Kammen Expires 10 April 2025 [Page 32]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -1789,7 +1845,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 32]
|
van Kammen Expires 10 April 2025 [Page 33]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -1845,7 +1901,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 33]
|
van Kammen Expires 10 April 2025 [Page 34]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -1901,7 +1957,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 34]
|
van Kammen Expires 10 April 2025 [Page 35]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -1957,7 +2013,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 35]
|
van Kammen Expires 10 April 2025 [Page 36]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -2013,7 +2069,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 36]
|
van Kammen Expires 10 April 2025 [Page 37]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -2069,7 +2125,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 37]
|
van Kammen Expires 10 April 2025 [Page 38]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -2125,7 +2181,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 38]
|
van Kammen Expires 10 April 2025 [Page 39]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -2181,7 +2237,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 39]
|
van Kammen Expires 10 April 2025 [Page 40]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -2237,7 +2293,7 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 40]
|
van Kammen Expires 10 April 2025 [Page 41]
|
||||||
|
|
||||||
Internet-Draft XR Fragments October 2024
|
Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
@ -2293,4 +2349,4 @@ Internet-Draft XR Fragments October 2024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
van Kammen Expires 10 April 2025 [Page 41]
|
van Kammen Expires 10 April 2025 [Page 42]
|
||||||
|
|
|
@ -135,8 +135,8 @@ But approaches things from a higherlevel feedbackloop/hypermedia browser-perspec
|
||||||
<tr>
|
<tr>
|
||||||
<td><tt>#pos</tt></td>
|
<td><tt>#pos</tt></td>
|
||||||
<td>vector3</td>
|
<td>vector3</td>
|
||||||
<td><tt>#pos=0.5,0,0</tt> <tt>#pos=room</tt> <tt>pos=cam2</tt></td>
|
<td><tt>#pos=0.5,0,0</tt> <tt>#pos=room</tt> <tt>#pos=cam2</tt></td>
|
||||||
<td>positions camera (or XR floor) to xyz-coord/object/camera</td>
|
<td>positions/parents camera(rig) (or XR floor) to xyz-coord/object/camera</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -629,8 +629,14 @@ For example, to render a portal with a preview-version of the scene, create an 3
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>#pos</b>=0,0,0</td>
|
<td><b>#pos</b>=0,0,0</td>
|
||||||
<td>vector3 or string</td>
|
<td>vector3</td>
|
||||||
<td>(re)position camera based on coordinates directly, or indirectly using objectname (its worldposition)</td>
|
<td>position camera to 0,0,0 (+userheight in VR)</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><b>#pos</b>=room</td>
|
||||||
|
<td>string</td>
|
||||||
|
<td>position camera to position of objectname <tt>room</tt> (+userheight in VR)</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -643,16 +649,18 @@ For example, to render a portal with a preview-version of the scene, create an 3
|
||||||
|
|
||||||
<eref target="https://github.com/coderofsalvation/xrfragment/issues/5">» discussion</eref><br />
|
<eref target="https://github.com/coderofsalvation/xrfragment/issues/5">» discussion</eref><br />
|
||||||
</t>
|
</t>
|
||||||
|
<t>Here's the basic <strong>level1</strong> flow (with optional level2 features):</t>
|
||||||
|
|
||||||
<ol spacing="compact">
|
<ol spacing="compact">
|
||||||
<li>the Y-coordinate of <tt>pos</tt> identifies the floorposition. This means that desktop-projections usually need to add 1.5m (average person height) on top (which is done automatically by VR/AR headsets).</li>
|
<li>the Y-coordinate of <tt>pos</tt> identifies the floorposition. This means that desktop-projections usually need to add 1.5m (average person height) on top (which is done automatically by VR/AR headsets), except in case of camera-switching.</li>
|
||||||
<li>set the position of the camera accordingly to the vector3 values of <tt>#pos</tt></li>
|
<li>set the position of the camera accordingly to the vector3 values of <tt>#pos</tt></li>
|
||||||
<li><tt>rot</tt> sets the rotation of the camera (only for non-VR/AR headsets)</li>
|
<li>if the referenced <tt>#pos</tt> object is animated, parent the current camera to that object (so it animates too)</li>
|
||||||
<li>mediafragment <tt>t</tt> in the top-URL sets the playbackspeed and animation-range of the global scene animation</li>
|
<li><tt>rot</tt> sets the rotation of the camera (only for non-VR/AR headsets, however a camera-value overrules this)</li>
|
||||||
|
<li><strong>level2</strong>: mediafragment <tt>t</tt> in the top-URL sets the playbackspeed and animation-range of the global scene animation</li>
|
||||||
<li>before scene load: the scene is cleared</li>
|
<li>before scene load: the scene is cleared</li>
|
||||||
<li>after scene load: in case the scene (rootnode) contains an <tt>#</tt> default view with a fragment value: execute non-positional fragments via the hashbus (no top-level URL change)</li>
|
<li><strong>level2</strong>: after scene load: in case the scene (rootnode) contains an <tt>#</tt> default view with a fragment value: execute non-positional fragments via the hashbus (no top-level URL change)</li>
|
||||||
<li>after scene load: in case the scene (rootnode) contains an <tt>#</tt> default view with a fragment value: execute positional fragment via the hashbus + update top-level URL</li>
|
<li><strong>level2</strong>: after scene load: in case the scene (rootnode) contains an <tt>#</tt> default view with a fragment value: execute positional fragment via the hashbus + update top-level URL</li>
|
||||||
<li>in case of no default <tt>#</tt> view on the scene (rootnode), default player(rig) position <tt>0,0,0</tt> is assumed.</li>
|
<li><strong>level2</strong>: in case of no default <tt>#</tt> view on the scene (rootnode), default player(rig) position <tt>0,0,0</tt> is assumed.</li>
|
||||||
<li>in case a <tt>href</tt> does not mention any <tt>pos</tt>-coordinate, the current position will be assumed</li>
|
<li>in case a <tt>href</tt> does not mention any <tt>pos</tt>-coordinate, the current position will be assumed</li>
|
||||||
</ol>
|
</ol>
|
||||||
<t>Here's an ascii representation of a 3D scene-graph which contains 3D objects <tt>◻</tt> and their metadata:</t>
|
<t>Here's an ascii representation of a 3D scene-graph which contains 3D objects <tt>◻</tt> and their metadata:</t>
|
||||||
|
|
12
index.html
12
index.html
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue