Azure Remote Rendering (ARR) 샘플 기능 모음
                                            
                                                
                                                
                                                
                                                
                                                
                                                 10215 단어  AzureRemoteRenderingUnity
                    
이 기사에 대하여
Azure Remote Rendering은 3D 모델을 최고의 품질로 Mixed Reality 디바이스에서 경험할 수 있습니다. Azure의 컴퓨팅 능력을 활용하여 클라우드에서 렌더링하고 그렇게 하여 디바이스로 스트리밍할 수 있습니다. 이런 방식으로 각 사용자는 3D 모델과 최대 세부 사항으로 작업하고 협업할 수 있습니다. 이 기사에서는 ARR 문서의 샘플에 기능을 정리하겠습니다.
 조건
 Azure Remote Rendering 튜토리얼을 완성.
튜토리얼 : 소재, 조명 및 효과 조정까지만 OK!
 모델 선택
이 Model Path의 입력에 자신의 모델의 링크 (Arr 파일) 넣어 주세요.
 
모델 준비하지 않았던 경우는 이 디폴트 링크 있어도 괜찮습니다.
"builtin://Engine"
아래 샘플은 MRTK의 REST API를 사용하여 ARR 파일을 Model Path 입력에 자동으로 넣습니다.
ArrDownloader.csusing System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Microsoft.MixedReality.Toolkit.Utilities;
using TMPro;
using UnityEngine.UI;
public class ArrDownloader : MonoBehaviour
{
    string endpoint = "<こちらは自分のエンドポイント>";
    string authorizationKey = "<自分のキー>"
    public GameObject modelSlot;
    [System.Serializable]
    public class SasUrl{
        public string results;
    }
    private void Awake() {
        getSas();
    }
    async void getSas(){
        Response response = new Response();
        try{
            var headers = new Dictionary<string, string>();
            headers.Add("x-api-key", authorizationKey);
            var parameters = new Dictionary<string, string>();
            response = await Rest.GetAsync(endpoint, headers, -1, null, true);
            if (!response.Successful)
            {
                debugText.text = "サーバーにアクセスできません。#0031";
                return;
            }
            //Debug.Log(response.ResponseBody);
            var sasUrl = JsonUtility.FromJson<SasUrl>(response.ResponseBody);
            Debug.Log(sasUrl.results);
            modelSlot.GetComponent<RemoteRenderedModel>().ModelPath = sasUrl.results;
        }        
        catch (Exception e)
        {
            Debug.LogError(e.Message);
            debugText.text = "サーバーにアクセスできません。#0032";
            return;
        }
    }
}
 조작
MRTK의 환경과 같이 Editor에서 키보드 「스페이스」를 누르면 핸드 포인터가 나온다. 핸드 포인터에서 왼쪽 클릭하면 버튼을 누를 수 있습니다. 마우스 오른쪽 버튼을 클릭하면 움직이면 머리를 회전하도록 뷰를 회전합니다.
앱이 실행되면 Connect 버튼으로 세션을 시작합니다.
 
세션을 만듭니다. 평소에는 2-3분이 걸렸지만 최대 5분 정도 걸릴지도 모릅니다.
참고 : 세션 시작이 너무 깁니다.
 
세션이 연결되면 모델이 자동으로 표시됩니다.
 
키보드에서 "m"버튼을 누르면 조작 UI를 왼손으로 이동합니다.
 
조작의 샘플입니다.
 기능
Azure Remote Rendering 기능은 다음 섹션에서 설명합니다.
 모델 도구
우선은 스트리밍 된 모델이 조종하는 도구를 설명합니다.
 
 Load/Unload
Load/Unload 버튼은 렌더링된 모델을 표시하면 표시되지 않는 버튼입니다.
 Edit Material
Azure Remote Rendering 모델의 Material을 변경할 수 있습니다. 이 예에서 모델은 너무 간단하며 변경할 수 있는 것은 선택 사항이 아닙니다. 이번에는 다른 모델로 사용해 보겠습니다.
이 아래의 예에서는 더 복잡한 모델을 경험했습니다.
 Hierarchical State Override
Hierarchical State Override는 각 객체를 조작할 수 있습니다.
이 또 다른 영상으로 자동차 부분을 숨길 수있었습니다.
 Lock/Unlock
이 기능을 사용하면 모델의 상태를 잠그고 조작 할 수 없습니다.
 Session Tools
Session Tools란 ARR 세션의 환경을 조종한다. 각 도구에는 별도의 기능이 있습니다. 각 기능에서 스트리밍된 모델에 영향을 줍니다.
 
 Cut Planes
Cut Planes는 평면 객체입니다. 이 평면에서 잘린 부분을 표시하지 않습니다. 그래서 모델 내용을 볼 수 있습니다.
 Directional Light
Directional Light는 빛의 근원을 색을 바꿀 수 있습니다. 빛의 소스를 변경하면 객체의 색상도 영향을받습니다.
 Skybox
Skybox는 장면 전체의 환경입니다. 이것을 조종하는 경우, 자신의 모델을 각각의 환경에서 차이가 보입니다.
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Azure Remote Rendering (ARR) 샘플 기능 모음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/brocolly/items/4eae6e8c342ec996073d
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
Azure Remote Rendering 튜토리얼을 완성.
튜토리얼 : 소재, 조명 및 효과 조정까지만 OK!
모델 선택
이 Model Path의 입력에 자신의 모델의 링크 (Arr 파일) 넣어 주세요.
 
모델 준비하지 않았던 경우는 이 디폴트 링크 있어도 괜찮습니다.
"builtin://Engine"
아래 샘플은 MRTK의 REST API를 사용하여 ARR 파일을 Model Path 입력에 자동으로 넣습니다.
ArrDownloader.csusing System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Microsoft.MixedReality.Toolkit.Utilities;
using TMPro;
using UnityEngine.UI;
public class ArrDownloader : MonoBehaviour
{
    string endpoint = "<こちらは自分のエンドポイント>";
    string authorizationKey = "<自分のキー>"
    public GameObject modelSlot;
    [System.Serializable]
    public class SasUrl{
        public string results;
    }
    private void Awake() {
        getSas();
    }
    async void getSas(){
        Response response = new Response();
        try{
            var headers = new Dictionary<string, string>();
            headers.Add("x-api-key", authorizationKey);
            var parameters = new Dictionary<string, string>();
            response = await Rest.GetAsync(endpoint, headers, -1, null, true);
            if (!response.Successful)
            {
                debugText.text = "サーバーにアクセスできません。#0031";
                return;
            }
            //Debug.Log(response.ResponseBody);
            var sasUrl = JsonUtility.FromJson<SasUrl>(response.ResponseBody);
            Debug.Log(sasUrl.results);
            modelSlot.GetComponent<RemoteRenderedModel>().ModelPath = sasUrl.results;
        }        
        catch (Exception e)
        {
            Debug.LogError(e.Message);
            debugText.text = "サーバーにアクセスできません。#0032";
            return;
        }
    }
}
 조작
MRTK의 환경과 같이 Editor에서 키보드 「스페이스」를 누르면 핸드 포인터가 나온다. 핸드 포인터에서 왼쪽 클릭하면 버튼을 누를 수 있습니다. 마우스 오른쪽 버튼을 클릭하면 움직이면 머리를 회전하도록 뷰를 회전합니다.
앱이 실행되면 Connect 버튼으로 세션을 시작합니다.
 
세션을 만듭니다. 평소에는 2-3분이 걸렸지만 최대 5분 정도 걸릴지도 모릅니다.
참고 : 세션 시작이 너무 깁니다.
 
세션이 연결되면 모델이 자동으로 표시됩니다.
 
키보드에서 "m"버튼을 누르면 조작 UI를 왼손으로 이동합니다.
 
조작의 샘플입니다.
 기능
Azure Remote Rendering 기능은 다음 섹션에서 설명합니다.
 모델 도구
우선은 스트리밍 된 모델이 조종하는 도구를 설명합니다.
 
 Load/Unload
Load/Unload 버튼은 렌더링된 모델을 표시하면 표시되지 않는 버튼입니다.
 Edit Material
Azure Remote Rendering 모델의 Material을 변경할 수 있습니다. 이 예에서 모델은 너무 간단하며 변경할 수 있는 것은 선택 사항이 아닙니다. 이번에는 다른 모델로 사용해 보겠습니다.
이 아래의 예에서는 더 복잡한 모델을 경험했습니다.
 Hierarchical State Override
Hierarchical State Override는 각 객체를 조작할 수 있습니다.
이 또 다른 영상으로 자동차 부분을 숨길 수있었습니다.
 Lock/Unlock
이 기능을 사용하면 모델의 상태를 잠그고 조작 할 수 없습니다.
 Session Tools
Session Tools란 ARR 세션의 환경을 조종한다. 각 도구에는 별도의 기능이 있습니다. 각 기능에서 스트리밍된 모델에 영향을 줍니다.
 
 Cut Planes
Cut Planes는 평면 객체입니다. 이 평면에서 잘린 부분을 표시하지 않습니다. 그래서 모델 내용을 볼 수 있습니다.
 Directional Light
Directional Light는 빛의 근원을 색을 바꿀 수 있습니다. 빛의 소스를 변경하면 객체의 색상도 영향을받습니다.
 Skybox
Skybox는 장면 전체의 환경입니다. 이것을 조종하는 경우, 자신의 모델을 각각의 환경에서 차이가 보입니다.
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Azure Remote Rendering (ARR) 샘플 기능 모음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/brocolly/items/4eae6e8c342ec996073d
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Microsoft.MixedReality.Toolkit.Utilities;
using TMPro;
using UnityEngine.UI;
public class ArrDownloader : MonoBehaviour
{
    string endpoint = "<こちらは自分のエンドポイント>";
    string authorizationKey = "<自分のキー>"
    public GameObject modelSlot;
    [System.Serializable]
    public class SasUrl{
        public string results;
    }
    private void Awake() {
        getSas();
    }
    async void getSas(){
        Response response = new Response();
        try{
            var headers = new Dictionary<string, string>();
            headers.Add("x-api-key", authorizationKey);
            var parameters = new Dictionary<string, string>();
            response = await Rest.GetAsync(endpoint, headers, -1, null, true);
            if (!response.Successful)
            {
                debugText.text = "サーバーにアクセスできません。#0031";
                return;
            }
            //Debug.Log(response.ResponseBody);
            var sasUrl = JsonUtility.FromJson<SasUrl>(response.ResponseBody);
            Debug.Log(sasUrl.results);
            modelSlot.GetComponent<RemoteRenderedModel>().ModelPath = sasUrl.results;
        }        
        catch (Exception e)
        {
            Debug.LogError(e.Message);
            debugText.text = "サーバーにアクセスできません。#0032";
            return;
        }
    }
}
MRTK의 환경과 같이 Editor에서 키보드 「스페이스」를 누르면 핸드 포인터가 나온다. 핸드 포인터에서 왼쪽 클릭하면 버튼을 누를 수 있습니다. 마우스 오른쪽 버튼을 클릭하면 움직이면 머리를 회전하도록 뷰를 회전합니다.
앱이 실행되면 Connect 버튼으로 세션을 시작합니다.

세션을 만듭니다. 평소에는 2-3분이 걸렸지만 최대 5분 정도 걸릴지도 모릅니다.
참고 : 세션 시작이 너무 깁니다.

세션이 연결되면 모델이 자동으로 표시됩니다.

키보드에서 "m"버튼을 누르면 조작 UI를 왼손으로 이동합니다.

조작의 샘플입니다.
기능
Azure Remote Rendering 기능은 다음 섹션에서 설명합니다.
 모델 도구
우선은 스트리밍 된 모델이 조종하는 도구를 설명합니다.
 
 Load/Unload
Load/Unload 버튼은 렌더링된 모델을 표시하면 표시되지 않는 버튼입니다.
 Edit Material
Azure Remote Rendering 모델의 Material을 변경할 수 있습니다. 이 예에서 모델은 너무 간단하며 변경할 수 있는 것은 선택 사항이 아닙니다. 이번에는 다른 모델로 사용해 보겠습니다.
이 아래의 예에서는 더 복잡한 모델을 경험했습니다.
 Hierarchical State Override
Hierarchical State Override는 각 객체를 조작할 수 있습니다.
이 또 다른 영상으로 자동차 부분을 숨길 수있었습니다.
 Lock/Unlock
이 기능을 사용하면 모델의 상태를 잠그고 조작 할 수 없습니다.
 Session Tools
Session Tools란 ARR 세션의 환경을 조종한다. 각 도구에는 별도의 기능이 있습니다. 각 기능에서 스트리밍된 모델에 영향을 줍니다.
 
 Cut Planes
Cut Planes는 평면 객체입니다. 이 평면에서 잘린 부분을 표시하지 않습니다. 그래서 모델 내용을 볼 수 있습니다.
 Directional Light
Directional Light는 빛의 근원을 색을 바꿀 수 있습니다. 빛의 소스를 변경하면 객체의 색상도 영향을받습니다.
 Skybox
Skybox는 장면 전체의 환경입니다. 이것을 조종하는 경우, 자신의 모델을 각각의 환경에서 차이가 보입니다.
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Azure Remote Rendering (ARR) 샘플 기능 모음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/brocolly/items/4eae6e8c342ec996073d
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
Reference
이 문제에 관하여(Azure Remote Rendering (ARR) 샘플 기능 모음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/brocolly/items/4eae6e8c342ec996073d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)