Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

【Unite 2017 Tokyo】3次元CAD VR化最速ツールの秘密

1 723 vues

Publié le

講演者:高田 知典(DVERSE Inc.)

こんな人におすすめ
・VR開発に興味がある人
・Unityをビジネス用途で使いたい人
・ゲーム/コンテンツの海外展開に興味がある人

受講者が得られる知見
・VRのパフォーマンスチューニング
・ビジネス向けVRソフトウェアの設計勘所

Publié dans : Technologie
  • Soyez le premier à commenter

【Unite 2017 Tokyo】3次元CAD VR化最速ツールの秘密

  1. 1. CTO, DVERSE Inc.
  2. 2. 3 CAD VR
  3. 3. • SYMMETRY • SYMMETRY alpha • SYMMETRY
  4. 4. SYMMETRY
  5. 5. DVERSE Inc.
  6. 6. SYMMETRY VR • IT BIM, i-Construction • VR http://symmetryvr.com/
  7. 7. https://twitter.com/tipatat/status/839639362572800001
  8. 8. SYMMETRY alpha HTC Vive SketchUp 3D CAD VR • 2017/02/14 Steam • 90 • CAD VR http://store.steampowered.com/app/585340/
  9. 9. 3D Basecamp 2016: June 13-15 in Steamboat Springs ※SketchUp ユーザの2年に1度のお祭り(コロラド州) AIA Conference on Architecture 2017 April 27-29, Orlando ※アメリカ建築家協会主催の展示会(フロリダ州) グローバル市場を獲りに行く
  10. 10. SYMMETRY alpha
  11. 11. 3 • CAD⇒VR • •
  12. 12. CAD⇒VR CADで 設計 VRで確 認 ⇒ VDC ( Virtual Design and Construction ) ⇒ VR
  13. 13. A Cloud CAD VR Editor Convert Import 数分 Save
  14. 14. SYMMETRY alpha CAD (SketchUp) SYMMETRY alpha Import 数秒~数十秒 Save Import VR
  15. 15. 3 • CAD⇒VR • •
  16. 16. SYMMETRY alpha Import 数秒~数十秒
  17. 17. 0 10 20 30 40 50 60 インポート時間(秒)SketchUp ⇒ 50 3.5 Face:5567, Material:23, Layer:4, Group:233, Comp. Definition:21, Comp. Instance:511
  18. 18. SketchUp SDK (C++ DLL) Unity Native Plugin (C DLL) SYMMETRY alpha (C#) JSON Texture MaterialGameObject / Mesh SketchUp Unity
  19. 19. JSON シリアライズ JSON デシリアライズ テクスチャ 書き出し マテリアル生成 GameObject / Mesh 生成 SYMMETRY alpha VR ⇒ HTC Vive 90 fps ⇒ 1 0.011 ⇒ 1 1 Update() ⇒
  20. 20. Unity メリット デメリット コルーチン ・一つの関数を複数のフレームにまた がって処理できる ・プログラミングが楽 ・一つのCPUを時間分割するだけ ・効率良くフレームに分割するのが難しい マルチスレッド ・マルチコアCPUを生かして、複数の処 理を同時に実行できる ・Unityのフレームを意識しなくてよい ・Unity APIが使えない (Unity APIはメインスレッドでしか使えない) ・排他制御が必要 ⇒
  21. 21. JSON デシリアライズ テクスチャ 書き出し マテリアル生成 GameObject / Mesh 生成 Unity API の JsonUtility は、マルチスレッドに対応している! https://docs.unity3d.com/jp/current/Manual/JSONSerialization.html JSON シリアライズ Native Plugin を別ス レッドで呼び出す
  22. 22. JsonUtility • JSON ⇒ • Dictionary ⇒ Key/Value List ※ISerializationCallbackReceiver • 7 http://answers.unity3d.com/questions/1123311/jsonutilityfromjson-depth-limitation.html ⇒ SketchUp …
  23. 23. SketchUp Unity Transform SketchUp JSON SketchUp List ※ISerializationCallbackReceiver OnAfterDeserialize() ⇒ JsonUtility
  24. 24. JSON JSON I/O • JSON Pretty • JSON ⇒ JSON … ⇒ 1 public class SUComponentDefinition { public string N; public string Name { get { return N; } set { N = value; } }
  25. 25. SketchUp LZ4 BuildPipeline.BuildAssetBundles(outputPath, BuildAssetBundleOptions.ChunkBasedCompression | BuildAssetBundleOptions.ForceRebuildAssetBundle, EditorUserBuildSettings.activeBuildTarget);
  26. 26. GameObject yield ※ … ⇒ … ⇒ IEnumerator makeNode(SUNode node, GameObject nodeObject) { if (nodeIndex % 10 == 0) yield return null; makeMeshComponents(node, nodeObject); foreach (var group in node.Groups) { GameObject groupObject = new GameObject(); groupObject.transform.parent = nodeObject.transform; nodeIndex++; yield return makeNode(group, groupObject); } } IEnumerator makeNodes(SUModel model, GameObject modelObject) { Stack<SUNode> nodeStack = new Stack<SUNode>(); Stack<GameObject> nodeObjectStack = new Stack<GameObject>(); nodeStack.Push(model.NodeList[0]); nodeObjectStack.Push(modelObject); while (nodeStack.Count != 0) { if (nodeIndex % 10 == 0) yield return null; SUNode node = nodeStack.Peek(); GameObject nodeObject = nodeObjectStack.Peek(); 暗黒すぎるので略 Stack
  27. 27. 3 • CAD⇒VR • •
  28. 28. LOD (Level Of Detail) SketchUp LODGroup … ⇒ ⇒ GPU ⇒ SYMMETRY alpha
  29. 29. SYMMETRY
  30. 30. • SYMMETRY alpha • 2017 3Q • 2018 1Q • SYMMETRY ****** • 2017 4Q
  31. 31. http://dverse.me/ja/recruit/ • Unity • • • • 3D • UI / UX • VR • CAD • AI • /
  32. 32. Thank you!

×