jpct_についてaeピット使用

4138 ワード

現在、アンドロイドiosのショッピングモールのプロジェクトは非常に多く、体験して体験すると、商品の展示は画像にほかならず、新しい意味はありません.
商品を3 dモデルで展示すると、絶対に新鮮になります
本人は最近androidについて3 dモデルを展示するいくつかの案を研究し、比較を通じてjpctを選んだ.公式サイトのdemoはモデルを明確に示すことができるので、具体的な統合については具体的な紹介はしません.この文書では、統合プロセスで発生した問題のみを記録します.
1,jpctは多様な形式の3 dファイルをサポートする:Loaderというクラスの一連の静的方法によって3 dファイルの読み込みロードを行う.
Loader.loadOBJ(obgS, mtlS, 0.08f);
2,obj形式の3 dファイルを例に、呼び出し
	Object3D objs[]=Loader.loadOBJ(obgSmtlS0.08f);     Object3D   ,Object3D      3d  ,   obj          ,
	          Object3D  
 
  
3,	   Object3D   ,  ,         ,   ,    World     Object3D  ,    ,  ,             
	        ,             Object3D  parent,       parent child   ,   api    mainObj.addChild(obj);

4、回転の場合、Cameraを回転するもObject 3 D自体を回転するもよいが、Object 3 Dを回転する場合は、回転軸の設定に注意が必要であり、このライブラリには、mainObjを設定するapiがある.setRotationPivot(SimpleVector.ORIGIN);ある物体を原点の位置に設定ことは可能であるが、1つのObject 3 Dに対してサブObject 3 Dが存在する場合には各Object 3 DのRotationPivotを取得して加算すればよいので注意が必要であるmainObj.setRotationPivot(SimpleVector.ORIGIN);このapiの呼び出しは

mainObj.build();呼び出し後
5、マテリアルのロードについて:
objタイプのファイルのロード時に以下のようなObject 3 D objs[]=Loaderを呼び出す.loadOBJ(obgS, mtlS, 0.08f);最初のパラメータはobjファイルストリームであり、2番目のパラメータはmtlファイルストリームであり、この2つのファイル
すべてテキストファイルで、直接テキストエディタで開くことができます.mtlはマテリアルに関する情報を表していますが、マテリアルがこれだけ設定されているとは限らないことに注意してください.
mtlでいいです.mtlファイルを開くと、次のように見えます.
newmtl BodyA
illum 2
Kd 1.0 1.0 1.0
Ka 1.0 1.0 1.0
Ks 0.0 0.0 0.0
Ke 0.0 0.0 0.0
Ns 0.0
map_Kd BodyA1_0.png

newmtl BodyB00
illum 2
Kd 1.0 1.0 1.0
Ka 1.0 1.0 1.0
Ks 0.0 0.0 0.0
Ke 0.0 0.0 0.0
Ns 0.0
map_Kd BodyB1_0.png

newmtl BodyB01
illum 2
Kd 1.0 1.0 1.0
Ka 1.0 1.0 1.0
Ks 0.0 0.0 0.0
Ke 0.0 0.0 0.0
Ns 0.0
map_Kd BodyB1_0.png

それぞれ
新mtlは新しいマテリアルを表し、
map_Kd          ,               ,       ,               jpct           ,    
      ,               :BodyA1_0.png、BodyB1_0.png     TextureManager       key-value  key,     mtl
       TextureManager          ,               ,              ,                。
       3d                :    api:
 
  
Texture texture = new Texture(BitmapHelper.rescale(BitmapHelper.loadImage(new FileInputStream(baseDir + name)), 256, 256));
if (!TextureManager.getInstance().containsTexture(name))
    TextureManager.getInstance().addTexture(name, texture);
このnameはmtlのmap_とKdは、前例のように一貫性を保つ.
 
  
 
  
 
  
map_Kd BodyB1_0.png
の名前はBodyB 1_と一致する必要があります0.pngは同じままで、レンダリング時にこのマテリアルにロードされます.