2017-09-03 77 views
0

我正在使用threejs來加載3D對象。有不同的裝載機,一個是使用JSON文件和其他使用OBJ文件。 我想知道使用JSON(示例1)而不是OBJ文件(示例2)是否有任何好處。是否有任何充分的理由使用Json而不是obj for Three.js

Example1 loading JSON: 

var loader = new THREE.PlayCanvasLoader(); 
       loader.load('./models/playcanvas/hand.json', function (model) {... 

Example2 loading OBJ: 
       var loader = new THREE.OBJLoader(manager); 
       loader.load('obj/brain.obj', function (object) {... 
+1

在我看來,使用其他人廣泛使用的東西通常也不錯。 JSON是普遍使用的。它很容易被許多其他語言解析。即使這一刻,我不知道'.obj'文件格式,所以如果需要的話,我寧願從你那裏得到'.json'文件。 –

+1

OBJ是3D模型的格式。 JSON是通用的_語法_,但它本身不是3D模型格式。在這裏,PlayCanvas使用JSON來存儲PlayCanvas數據。如果您的工作流與PlayCanvas緊密相關,那麼使用它可能會有意義,但在3D世界中,OBJ更常見。 –

回答

2

下面是選擇格式時三個標準:

  1. 特色。 OBJ(Wavefront)是一種較舊的格式,不支持許多功能,如動畫,PBR材質,燈光,相機等。我對PlayCanvas JSON格式不熟悉,但它可能會做更多的事情。
  2. 工作流程。根據您獲取模型的位置以及計劃如何(或如果)計劃更新它們,某些格式更容易並且不易導出錯誤。例如,Autodesk軟件適用於導出FBX。如果你有一些工作,可以隨時堅持下去。
  3. 性能。某些格式可以比其他格式更快地加載。 OBJ在這裏可能是較慢的一端。但是場景的運行時性能(在模型加載後)將不變,因此這並不總是一個問題。

另請注意,three.js支持多種JSON格式。 THREE.JSONLoaderTHREE.ObjectLoader都接受不同類型的JSON,而不是THREE.PlayCanvasLoader。這些JSON格式在three.js中可以正常工作,但在Maya或Blender等建模工具中導入和編輯會更困難。

相關問題