[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:00006] 法線を計算してくれるクラス



▲▼▲▼▲▼ スニーカー&ブーツショップMAマート  ▲▼▲▼▲▼▲▼▲
▲▼  全品メーカー希望価格より70%〜10%OFFの激安価格で販売中!    ▲▼
▼▲ 返品、サイズ交換時の送料は無料ですのでとっても安心!o(^-^)o ▼▲
▼▲▼▲▼▲<< http://www.niji.or.jp/home/ma-mart/ >>▼▲▼▲▼▲▼▲

面法線はベクトルの外積を計算すれば良いのですが、
これを自分で計算するメソッドを書くのも面倒だなあと思っていました。

Java3D の API ドキュメントを読んでいたら、
 com.sun.j3d.utils.geometry.NormalGenerator というクラスを見つけました。

まず com.sun.j3d.utils.geometry.GeometryInfo に頂点座標の Point3d などの配列、
頂点インデックスの int 配列をセットしておき、NormalGenerator の 
public void generateNormals(GeometryInfo geom) で法線を計算できるみたいです。

  GeometryInfo ginfo = new GeometryInfo(GeometryInfo.TRIANGLE_ARRAY);
  ginfo.setCoordinates(varts);
  ginfo.setCoordinateIndices(indices);
  NormalGenerator ngen = new NormalGenerator();
  ngen.generateNormals(ginfo); 
  Shape3D shape = new Shape3D(ginfo.getIndexedGeometryArray());

こんなカンジでしょうか。さっそく試してみようと思います。
------------------------------------------------------------------
遠藤靖之 (えんどう やすゆき) <yasuyuki@xxxxxxxxxx>
http://www.freepage.total.co.jp/jfriends/ (Java互助会ホームページ)
株式会社タイムインターメディア 情報通信サービス部 TEL 03-5362-9009
〒162-0065 新宿区住吉町3-11 新宿スパイアビル8F    FAX 03-5362-9008