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ファイルを例に、呼び出し
商品を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(obgS, mtlS, 0.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:
このnameはmtlのmap_とKdは、前例のように一貫性を保つ.Texture texture = new Texture(BitmapHelper.rescale(BitmapHelper.loadImage(new FileInputStream(baseDir + name)), 256, 256)); if (!TextureManager.getInstance().containsTexture(name)) TextureManager.getInstance().addTexture(name, texture);
の名前はBodyB 1_と一致する必要があります0.pngは同じままで、レンダリング時にこのマテリアルにロードされます.map_Kd BodyB1_0.png