{"id":434,"date":"2026-03-11T16:58:57","date_gmt":"2026-03-11T15:58:57","guid":{"rendered":"https:\/\/www.youbiquo.eu\/leonardoxr\/?page_id=434"},"modified":"2026-10-09T13:41:44","modified_gmt":"2026-10-09T11:41:44","slug":"samples-guide-leonardoxr-sdk","status":"publish","type":"page","link":"https:\/\/www.youbiquo.eu\/leonardoxr\/manuali_duso\/samples-guide-leonardoxr-sdk\/","title":{"rendered":"Samples Guide \u2014 LeonardoXR SDK"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"434\" class=\"elementor elementor-434\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-85281d7 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"85281d7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d04b0b7 elementor-widget elementor-widget-heading\" data-id=\"d04b0b7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Samples Guide \u2014 LeonardoXR SDK<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-541389f e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"541389f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-df9a2de e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"df9a2de\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-69e47bc elementor-widget__width-initial elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents\" data-id=\"69e47bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;headings_by_tags&quot;:[&quot;h3&quot;,&quot;h4&quot;,&quot;h5&quot;,&quot;h6&quot;],&quot;exclude_headings_by_selector&quot;:&quot;footer&quot;,&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;far fa-dot-circle&quot;,&quot;library&quot;:&quot;fa-regular&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\\&quot;e-font-icon-svg e-far-dot-circle\\&quot; viewBox=\\&quot;0 0 512 512\\&quot; xmlns=\\&quot;http:\\\/\\\/www.w3.org\\\/2000\\\/svg\\&quot;&gt;&lt;path d=\\&quot;M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\\&quot;&gt;&lt;\\\/path&gt;&lt;\\\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;Non sono state trovate intestazioni in questa pagina.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__header\">\n\t\t\t\t\t\t<h2 class=\"elementor-toc__header-title\">\n\t\t\t\tSamples Guide \u2014 LeonardoXR SDK\t\t\t<\/h2>\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__69e47bc\" aria-expanded=\"true\" aria-label=\"Apri l&#039;indice dei contenuti\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/div>\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__69e47bc\" aria-expanded=\"true\" aria-label=\"Chiudi l&#039;indice dei contenuti\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<div id=\"elementor-toc__69e47bc\" class=\"elementor-toc__body\">\n\t\t\t<div class=\"elementor-toc__spinner-container\">\n\t\t\t\t<svg class=\"elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading\" aria-hidden=\"true\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-677117a e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"677117a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1a4d842 elementor-widget elementor-widget-text-editor\" data-id=\"1a4d842\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 id=\"samples-guide--leonardoxr-sdk\" class=\"code-line code-active-line\" dir=\"auto\" data-line=\"0\">Samples Guide \u2014 LeonardoXR SDK<\/h2><blockquote class=\"code-line\" dir=\"auto\" data-line=\"2\"><p class=\"code-line\" dir=\"auto\" data-line=\"2\"><strong>Version:<\/strong>\u00a01.0.2\u00a0<strong>Target Device:<\/strong>\u00a0Youbiquo Leonardo XR<br \/><strong>Base SDK:<\/strong>\u00a0Snapdragon Spaces 1.0.4<\/p><\/blockquote><p class=\"code-line\" dir=\"auto\" data-line=\"6\">I sample sono organizzati in due sezioni:<\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"8\"><li class=\"code-line\" dir=\"auto\" data-line=\"8\"><strong>LeonardoXR Samples<\/strong>\u00a0\u2014 sample specifici per le features proprietarie di Leonardo XR.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"9\"><strong>Snapdragon Spaces Core Samples<\/strong>\u00a0\u2014 sample forniti da Qualcomm per le features AR\/XR di base.<\/li><\/ul><hr class=\"code-line\" dir=\"auto\" data-line=\"11\" \/><h3 id=\"importazione-dei-samples\" class=\"code-line\" dir=\"auto\" data-line=\"13\">Importazione dei Samples<\/h3><h4 id=\"snapdragon-spaces-core-samples\" class=\"code-line\" dir=\"auto\" data-line=\"15\">Snapdragon Spaces Core Samples<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"17\">Il pacchetto\u00a0<strong>Core Samples<\/strong>\u00a0\u00e8 importabile da\u00a0<strong>Window &gt; Package Manager &gt; Snapdragon Spaces &gt; Core Samples<\/strong>. Dopo l&#8217;import, aggiungi tutte le scene al build tramite\u00a0<strong>Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings<\/strong>.<\/p><h4 id=\"leonardoxr-core-samples\" class=\"code-line\" dir=\"auto\" data-line=\"19\">LeonardoXR Core Samples<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"21\">Il pacchetto\u00a0<strong>LeonardoXR Core Samples<\/strong>\u00a0\u00e8 importabile da\u00a0<strong>Window &gt; Package Manager &gt; LeonardoXR &gt; Core Samples<\/strong>. Dopo l&#8217;import, le scene sono disponibili nella cartella\u00a0<code>Samples\/LeonardoXR\/[versione]\/Core Samples\/Scenes\/<\/code>.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"23\" \/><h3 id=\"leonardoxr-samples\" class=\"code-line\" dir=\"auto\" data-line=\"25\">LeonardoXR Samples<\/h3><h4 id=\"dual-camera-access-sample\" class=\"code-line\" dir=\"auto\" data-line=\"27\">Dual Camera Access Sample<\/h4><blockquote class=\"code-line\" dir=\"auto\" data-line=\"29\"><p class=\"code-line\" dir=\"auto\" data-line=\"29\"><strong>\u26a0\ufe0f Documentazione in preparazione.<\/strong><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"31\">Questo sample dimostrer\u00e0 come accedere ai frame sincronizzati delle due camere di Leonardo XR tramite la feature Dual Camera Access.<\/p><p class=\"code-line\" dir=\"auto\" data-line=\"33\"><strong>Scena:<\/strong>\u00a0<code>Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/DualCameraAccess<\/code><br \/><strong>Prerequisiti:<\/strong>\u00a0Feature\u00a0<strong>Dual Camera Access<\/strong>\u00a0abilitata in LeonardoXR feature group.<\/p><\/blockquote><hr class=\"code-line\" dir=\"auto\" data-line=\"36\" \/><h4 id=\"qnn-inference-sample\" class=\"code-line\" dir=\"auto\" data-line=\"38\">QNN Inference Sample<\/h4><blockquote class=\"code-line\" dir=\"auto\" data-line=\"40\"><p class=\"code-line\" dir=\"auto\" data-line=\"40\"><strong>\u26a0\ufe0f Documentazione in preparazione.<\/strong><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"42\">Questo sample dimostrer\u00e0 come caricare ed eseguire un modello di inferenza neurale sull&#8217;NPU di Leonardo XR tramite il QNN Inference Plugin.<\/p><p class=\"code-line\" dir=\"auto\" data-line=\"44\"><strong>Scena:<\/strong>\u00a0<code>Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/QnnInference<\/code><br \/><strong>Prerequisiti:<\/strong>\u00a0Feature\u00a0<strong>QNN Inference Plugin<\/strong>\u00a0abilitata in LeonardoXR feature group.<\/p><\/blockquote><hr class=\"code-line\" dir=\"auto\" data-line=\"47\" \/><h4 id=\"intercept-openxr-function-sample\" class=\"code-line\" dir=\"auto\" data-line=\"49\">Intercept OpenXR Function Sample<\/h4><blockquote class=\"code-line\" dir=\"auto\" data-line=\"51\"><p class=\"code-line\" dir=\"auto\" data-line=\"51\"><strong>\u26a0\ufe0f Documentazione in preparazione.<\/strong><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"53\">Questo sample dimostrer\u00e0 come intercettare funzioni OpenXR a basso livello tramite la feature InterceptOpenXRFunction.<\/p><p class=\"code-line\" dir=\"auto\" data-line=\"55\"><strong>Scena:<\/strong>\u00a0<code>Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/InterceptOpenXRFunction<\/code><br \/><strong>Prerequisiti:<\/strong>\u00a0Feature\u00a0<strong>Intercept OpenXR Function<\/strong>\u00a0abilitata in LeonardoXR feature group.<\/p><\/blockquote><hr class=\"code-line\" dir=\"auto\" data-line=\"58\" \/><hr class=\"code-line\" dir=\"auto\" data-line=\"60\" \/><h3 id=\"snapdragon-spaces-core-samples-1\" class=\"code-line\" dir=\"auto\" data-line=\"62\">Snapdragon Spaces Core Samples<\/h3><h4 id=\"local-anchors-sample\" class=\"code-line\" dir=\"auto\" data-line=\"64\">Local Anchors Sample<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"66\"><strong>Scena:<\/strong>\u00a0<code>Samples\/Snapdragon Spaces\/...\/Core Samples\/Scenes\/Anchor<\/code><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"68\">Questo sample dimostra come creare e distruggere anchor locali per tracciare con precisione un punto nel mondo reale. Richiede la feature\u00a0<strong>Spatial Anchors<\/strong>\u00a0abilitata in OpenXR.<\/p><h5 id=\"come-funziona\" class=\"code-line\" dir=\"auto\" data-line=\"70\">Come Funziona<\/h5><p class=\"code-line\" dir=\"auto\" data-line=\"72\">Un gizmo di posizionamento trasparente fluttua a 1 metro davanti alla camera. Quando\u00a0<strong>Place anchor on surfaces<\/strong>\u00a0\u00e8 abilitato, viene proiettato un ray in avanti ogni frame. Quando una superficie viene colpita il gizmo diventa giallo. Toccare il touchpad o usare il gaze interactor crea un\u00a0<code>ARAnchor<\/code>\u00a0con un gizmo di tracking.<\/p><pre><code class=\"code-line language-csharp\" dir=\"auto\" data-line=\"74\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">OnAnchorsChanged<\/span>(<span class=\"hljs-params\">ARAnchorsChangedEventArgs args<\/span>)<\/span>\n{\n    <span class=\"hljs-keyword\">foreach<\/span> (<span class=\"hljs-keyword\">var<\/span> anchor <span class=\"hljs-keyword\">in<\/span> args.updated)\n    {\n        Destroy(anchor.transform.GetChild(<span class=\"hljs-number\">0<\/span>).gameObject);\n        <span class=\"hljs-keyword\">var<\/span> newGizmo = Instantiate(\n            anchor.trackingState == TrackingState.None\n                ? GizmoUntrackedAnchor\n                : GizmoTrackedAnchor);\n        newGizmo.transform.SetParent(anchor.transform, <span class=\"hljs-literal\">false<\/span>);\n    }\n}\n<\/code><\/pre><h5 id=\"salvataggio-eliminazione-e-caricamento-degli-anchor\" class=\"code-line\" dir=\"auto\" data-line=\"89\">Salvataggio, Eliminazione e Caricamento degli Anchor<\/h5><ul class=\"code-line\" dir=\"auto\" data-line=\"91\"><li class=\"code-line\" dir=\"auto\" data-line=\"91\">Abilita\u00a0<strong>Save new anchors to local store<\/strong>\u00a0per persistere ogni nuovo anchor.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"92\">Un cubo bianco sul gizmo = anchor salvato e tracciato; cubo rosso = non tracciato.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"93\"><strong>Load All Saved Anchors<\/strong>\u00a0\u2014 carica e tenta di localizzare tutti gli anchor memorizzati.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"94\"><strong>Clear Store<\/strong>\u00a0\u2014 elimina tutti gli anchor memorizzati (non distrugge gli anchor gi\u00e0 caricati).<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"95\"><strong>Destroy All Anchors<\/strong>\u00a0\u2014 distrugge tutti i GameObject anchor attivi (con un breve ritardo).<\/li><\/ul><hr class=\"code-line\" dir=\"auto\" data-line=\"97\" \/><h4 id=\"hand-tracking-sample\" class=\"code-line\" dir=\"auto\" data-line=\"99\">Hand Tracking Sample<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"101\"><strong>Scena:<\/strong>\u00a0<code>Samples\/Snapdragon Spaces\/...\/Core Samples\/Scenes\/HandTracking<\/code><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"103\">Dimostra la visualizzazione delle giunture della mano e il riconoscimento dei gesti tramite il pacchetto di interazione QCHT. Richiede la feature\u00a0<strong>Hand Tracking<\/strong>\u00a0e i pacchetti QCHT \/ XR Hands.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"105\" \/><h4 id=\"hit-testing-sample\" class=\"code-line\" dir=\"auto\" data-line=\"107\">Hit Testing Sample<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"109\"><strong>Scena:<\/strong>\u00a0<code>Samples\/Snapdragon Spaces\/...\/Core Samples\/Scenes\/HitTesting<\/code><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"111\">Dimostra l&#8217;hit testing continuo tramite raycast contro piani e mesh del mondo reale usando\u00a0<code>ARRaycastManager<\/code>. Il sample mostra come posizionare oggetti virtuali sulle superfici rilevate.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"113\" \/><h4 id=\"image-tracking-sample\" class=\"code-line\" dir=\"auto\" data-line=\"115\">Image Tracking Sample<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"117\"><strong>Scena:<\/strong>\u00a0<code>Samples\/Snapdragon Spaces\/...\/Core Samples\/Scenes\/ImageTracking<\/code><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"119\">Dimostra il tracking di immagini di riferimento stampate e la sovrapposizione di contenuto virtuale. Supporta librerie di immagini statiche e mutabili.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"121\" \/><h4 id=\"plane-detection-sample\" class=\"code-line\" dir=\"auto\" data-line=\"123\">Plane Detection Sample<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"125\"><strong>Scena:<\/strong>\u00a0<code>Samples\/Snapdragon Spaces\/...\/Core Samples\/Scenes\/PlaneDetection<\/code><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"127\">Dimostra il rilevamento e la visualizzazione di piani orizzontali e verticali tramite\u00a0<code>ARPlaneManager<\/code>. Supporta modalit\u00e0 di rilevamento e piani convex hull opzionali.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"129\" \/><h4 id=\"camera-frame-access-sample\" class=\"code-line\" dir=\"auto\" data-line=\"131\">Camera Frame Access Sample<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"133\"><strong>Scena:<\/strong>\u00a0<code>Samples\/Snapdragon Spaces\/...\/Core Samples\/Scenes\/CameraFrameAccess<\/code><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"135\">Dimostra il recupero di frame camera raw (YUV \/ YUYV) dal dispositivo usando\u00a0<code>ARCameraManager<\/code>. Include estrinseci del sensore, query sul numero di camere e accesso ai frame accelerato da GPU.<\/p><blockquote class=\"code-line\" dir=\"auto\" data-line=\"137\"><p class=\"code-line\" dir=\"auto\" data-line=\"137\"><strong>Importante:<\/strong>\u00a0Richiede\u00a0<strong>Allow &#8216;unsafe&#8217; Code<\/strong>\u00a0abilitato in Player Settings.<\/p><\/blockquote><hr class=\"code-line\" dir=\"auto\" data-line=\"139\" \/><h4 id=\"spatial-meshing-sample\" class=\"code-line\" dir=\"auto\" data-line=\"141\">Spatial Meshing Sample<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"143\"><strong>Scena:<\/strong>\u00a0<code>Samples\/Snapdragon Spaces\/...\/Core Samples\/Scenes\/SpatialMeshing<\/code><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"145\">Dimostra il meshing ambientale in tempo reale usando\u00a0<code>ARMeshManager<\/code>. Include uno slider di opacit\u00e0 e il componente opzionale\u00a0<code>SpacesARMeshManagerConfig<\/code>.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"147\" \/><h4 id=\"qr-code-tracking-sample\" class=\"code-line\" dir=\"auto\" data-line=\"149\">QR Code Tracking Sample<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"151\"><strong>Scena:<\/strong>\u00a0<code>Samples\/Snapdragon Spaces\/...\/Core Samples\/Scenes\/QRCodeTracking<\/code><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"153\">Dimostra la scansione e il tracking di QR code tramite\u00a0<code>SpacesQrCodeManager<\/code>. Sono disponibili multiple modalit\u00e0 di tracking.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"155\" \/><h4 id=\"xr-interaction-toolkit-sample\" class=\"code-line\" dir=\"auto\" data-line=\"157\">XR Interaction Toolkit Sample<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"159\"><strong>Scena:<\/strong>\u00a0<code>Samples\/Snapdragon Spaces\/...\/Core Samples\/Scenes\/XRInteractionToolkit<\/code><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"161\">Dimostra le interazioni standard XR Interaction Toolkit (ray interactors, direct interactors, teleportation) in un progetto Snapdragon Spaces. Compatibile con la configurazione LeonardoXR.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"163\" \/><h4 id=\"componenti-di-interazione\" class=\"code-line\" dir=\"auto\" data-line=\"165\">Componenti di Interazione<\/h4><h5 id=\"composition-layer-components\" class=\"code-line\" dir=\"auto\" data-line=\"167\">Composition Layer Components<\/h5><p class=\"code-line\" dir=\"auto\" data-line=\"169\">Il\u00a0<strong>Spaces Composition Layer<\/strong>\u00a0renderizza texture direttamente all&#8217;HMD bypassando i passi di post-processing. I tipi di geometria supportati sono\u00a0<strong>Quad<\/strong>,\u00a0<strong>Cylinder<\/strong>,\u00a0<strong>Sphere<\/strong>\u00a0e\u00a0<strong>Cube<\/strong>. Utile per UI ad alta nitidezza o elementi che devono mantenere qualit\u00e0 indipendentemente dagli effetti di scena.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"171\" \/><h4 id=\"sample-aggiuntivi\" class=\"code-line\" dir=\"auto\" data-line=\"173\">Sample Aggiuntivi<\/h4><table class=\"code-line\" dir=\"auto\" data-line=\"175\"><thead class=\"code-line\" dir=\"auto\" data-line=\"175\"><tr class=\"code-line\" dir=\"auto\" data-line=\"175\"><th>Sample<\/th><th>Descrizione<\/th><\/tr><\/thead><tbody class=\"code-line\" dir=\"auto\" data-line=\"177\"><tr class=\"code-line\" dir=\"auto\" data-line=\"177\"><td>Display Refresh Rate<\/td><td>Query e impostazione runtime del refresh rate del display tramite l&#8217;estensione\u00a0<code>XR_EXT_display_refresh_rate<\/code>.<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"178\"><td>Performance Settings<\/td><td>Impostazione dei livelli di performance CPU\/GPU tramite l&#8217;estensione\u00a0<code>XR_EXT_performance_settings<\/code>.<\/td><\/tr><\/tbody><\/table>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Samples Guide \u2014 LeonardoXR SDK Samples Guide \u2014 LeonardoXR SDK Samples Guide \u2014 LeonardoXR SDK Version:\u00a01.0.2\u00a0Target Device:\u00a0Youbiquo Leonardo XRBase SDK:\u00a0Snapdragon Spaces 1.0.4 I sample sono organizzati in due sezioni: LeonardoXR Samples\u00a0\u2014 sample specifici per le features proprietarie di Leonardo XR. Snapdragon Spaces Core Samples\u00a0\u2014 sample forniti da Qualcomm per le features AR\/XR di base. Importazione dei Samples Snapdragon Spaces Core Samples Il pacchetto\u00a0Core Samples\u00a0\u00e8 importabile da\u00a0Window &gt; Package Manager &gt; Snapdragon Spaces &gt; Core Samples. Dopo l&#8217;import, aggiungi tutte le scene al build tramite\u00a0Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings. LeonardoXR Core Samples Il pacchetto\u00a0LeonardoXR Core Samples\u00a0\u00e8 importabile da\u00a0Window &gt; Package Manager &gt; LeonardoXR &gt; Core Samples. Dopo l&#8217;import, le scene sono disponibili nella cartella\u00a0Samples\/LeonardoXR\/[versione]\/Core Samples\/Scenes\/. LeonardoXR Samples Dual Camera Access Sample \u26a0\ufe0f Documentazione in preparazione. Questo sample dimostrer\u00e0 come accedere ai frame sincronizzati delle due camere di Leonardo XR tramite la feature Dual Camera Access. Scena:\u00a0Samples\/LeonardoXR\/&#8230;\/Core Samples\/Scenes\/DualCameraAccessPrerequisiti:\u00a0Feature\u00a0Dual Camera Access\u00a0abilitata in LeonardoXR feature group. QNN Inference Sample \u26a0\ufe0f Documentazione in preparazione. Questo sample dimostrer\u00e0 come caricare ed eseguire un modello di inferenza neurale sull&#8217;NPU di Leonardo XR tramite il QNN Inference Plugin. Scena:\u00a0Samples\/LeonardoXR\/&#8230;\/Core Samples\/Scenes\/QnnInferencePrerequisiti:\u00a0Feature\u00a0QNN Inference Plugin\u00a0abilitata in LeonardoXR feature group. Intercept OpenXR Function Sample \u26a0\ufe0f Documentazione in preparazione. Questo sample dimostrer\u00e0 come intercettare funzioni OpenXR a basso livello tramite la feature InterceptOpenXRFunction. Scena:\u00a0Samples\/LeonardoXR\/&#8230;\/Core Samples\/Scenes\/InterceptOpenXRFunctionPrerequisiti:\u00a0Feature\u00a0Intercept OpenXR Function\u00a0abilitata in LeonardoXR feature group. Snapdragon Spaces Core Samples Local Anchors Sample Scena:\u00a0Samples\/Snapdragon Spaces\/&#8230;\/Core Samples\/Scenes\/Anchor Questo sample dimostra come creare e distruggere anchor locali per tracciare con precisione un punto nel mondo reale. Richiede la feature\u00a0Spatial Anchors\u00a0abilitata in OpenXR. Come Funziona Un gizmo di posizionamento trasparente fluttua a 1 metro davanti alla camera. Quando\u00a0Place anchor on surfaces\u00a0\u00e8 abilitato, viene proiettato un ray in avanti ogni frame. Quando una superficie viene colpita il gizmo diventa giallo. Toccare il touchpad o usare il gaze interactor crea un\u00a0ARAnchor\u00a0con un gizmo di tracking. private void OnAnchorsChanged(ARAnchorsChangedEventArgs args) { foreach (var anchor in args.updated) { Destroy(anchor.transform.GetChild(0).gameObject); var newGizmo = Instantiate( anchor.trackingState == TrackingState.None ? GizmoUntrackedAnchor : GizmoTrackedAnchor); newGizmo.transform.SetParent(anchor.transform, false); } } Salvataggio, Eliminazione e Caricamento degli Anchor Abilita\u00a0Save new anchors to local store\u00a0per persistere ogni nuovo anchor. Un cubo bianco sul gizmo = anchor salvato e tracciato; cubo rosso = non tracciato. Load All Saved Anchors\u00a0\u2014 carica e tenta di localizzare tutti gli anchor memorizzati. Clear Store\u00a0\u2014 elimina tutti gli anchor memorizzati (non distrugge gli anchor gi\u00e0 caricati). Destroy All Anchors\u00a0\u2014 distrugge tutti i GameObject anchor attivi (con un breve ritardo). Hand Tracking Sample Scena:\u00a0Samples\/Snapdragon Spaces\/&#8230;\/Core Samples\/Scenes\/HandTracking Dimostra la visualizzazione delle giunture della mano e il riconoscimento dei gesti tramite il pacchetto di interazione QCHT. Richiede la feature\u00a0Hand Tracking\u00a0e i pacchetti QCHT \/ XR Hands. Hit Testing Sample Scena:\u00a0Samples\/Snapdragon Spaces\/&#8230;\/Core Samples\/Scenes\/HitTesting Dimostra l&#8217;hit testing continuo tramite raycast contro piani e mesh del mondo reale usando\u00a0ARRaycastManager. Il sample mostra come posizionare oggetti virtuali sulle superfici rilevate. Image Tracking Sample Scena:\u00a0Samples\/Snapdragon Spaces\/&#8230;\/Core Samples\/Scenes\/ImageTracking Dimostra il tracking di immagini di riferimento stampate e la sovrapposizione di contenuto virtuale. Supporta librerie di immagini statiche e mutabili. Plane Detection Sample Scena:\u00a0Samples\/Snapdragon Spaces\/&#8230;\/Core Samples\/Scenes\/PlaneDetection Dimostra il rilevamento e la visualizzazione di piani orizzontali e verticali tramite\u00a0ARPlaneManager. Supporta modalit\u00e0 di rilevamento e piani convex hull opzionali. Camera Frame Access Sample Scena:\u00a0Samples\/Snapdragon Spaces\/&#8230;\/Core Samples\/Scenes\/CameraFrameAccess Dimostra il recupero di frame camera raw (YUV \/ YUYV) dal dispositivo usando\u00a0ARCameraManager. Include estrinseci del sensore, query sul numero di camere e accesso ai frame accelerato da GPU. Importante:\u00a0Richiede\u00a0Allow &#8216;unsafe&#8217; Code\u00a0abilitato in Player Settings. Spatial Meshing Sample Scena:\u00a0Samples\/Snapdragon Spaces\/&#8230;\/Core Samples\/Scenes\/SpatialMeshing Dimostra il meshing ambientale in tempo reale usando\u00a0ARMeshManager. Include uno slider di opacit\u00e0 e il componente opzionale\u00a0SpacesARMeshManagerConfig. QR Code Tracking Sample Scena:\u00a0Samples\/Snapdragon Spaces\/&#8230;\/Core Samples\/Scenes\/QRCodeTracking Dimostra la scansione e il tracking di QR code tramite\u00a0SpacesQrCodeManager. Sono disponibili multiple modalit\u00e0 di tracking. XR Interaction Toolkit Sample Scena:\u00a0Samples\/Snapdragon Spaces\/&#8230;\/Core Samples\/Scenes\/XRInteractionToolkit Dimostra le interazioni standard XR Interaction Toolkit (ray interactors, direct interactors, teleportation) in un progetto Snapdragon Spaces. Compatibile con la configurazione LeonardoXR. Componenti di Interazione Composition Layer Components Il\u00a0Spaces Composition Layer\u00a0renderizza texture direttamente all&#8217;HMD bypassando i passi di post-processing. I tipi di geometria supportati sono\u00a0Quad,\u00a0Cylinder,\u00a0Sphere\u00a0e\u00a0Cube. Utile per UI ad alta nitidezza o elementi che devono mantenere qualit\u00e0 indipendentemente dagli effetti di scena. Sample Aggiuntivi Sample Descrizione Display Refresh Rate Query e impostazione runtime del refresh rate del display tramite l&#8217;estensione\u00a0XR_EXT_display_refresh_rate. Performance Settings Impostazione dei livelli di performance CPU\/GPU tramite l&#8217;estensione\u00a0XR_EXT_performance_settings.<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":7,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-434","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.youbiquo.eu\/leonardoxr\/wp-json\/wp\/v2\/pages\/434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.youbiquo.eu\/leonardoxr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.youbiquo.eu\/leonardoxr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.youbiquo.eu\/leonardoxr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.youbiquo.eu\/leonardoxr\/wp-json\/wp\/v2\/comments?post=434"}],"version-history":[{"count":7,"href":"https:\/\/www.youbiquo.eu\/leonardoxr\/wp-json\/wp\/v2\/pages\/434\/revisions"}],"predecessor-version":[{"id":445,"href":"https:\/\/www.youbiquo.eu\/leonardoxr\/wp-json\/wp\/v2\/pages\/434\/revisions\/445"}],"up":[{"embeddable":true,"href":"https:\/\/www.youbiquo.eu\/leonardoxr\/wp-json\/wp\/v2\/pages\/7"}],"wp:attachment":[{"href":"https:\/\/www.youbiquo.eu\/leonardoxr\/wp-json\/wp\/v2\/media?parent=434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}