4

.ctm ファイルから threejs v71 にインポートされたモデルをレンダリングしています。次に、マップ付きの MeshBasicMaterial を使用してテクスチャを追加します。

元のモデルは Agisoft Photoscan で作成され、.obj としてエクスポートされ、公式の OpenCTM ビューアー プログラムを使用して OpenCTM 形式に変換されました。.ctm モデル自体はここにあります。

.ctm をロードするとテクスチャに奇妙な「継ぎ目」が現れることを除けば、正しいように見えます。.obj は、継ぎ目なしで three.js に正常にロードされます。これらは何ですか、どうすればそれらを取り除くことができますか?

スクリーンショットは次のとおりです。

ここに画像の説明を入力

これらの「継ぎ目」はテクスチャ ファイルには存在しません。

ここに画像の説明を入力

更新: ctm ビューアーで .ctm を表示すると継ぎ目も表示されることに気付きました。これはおそらく、threejs の読み込みの問題ではなく、OpenCtm の変換の問題です。

4

3 に答える 3

2

残念なことに、これはOpenCTMの長年にわたるバグのようです。

他の回答は、質問で説明されている状況を再現してはなりません。

編集:この問題を完全に理解し、回避策を用意しました。問題は、ほとんどのプログラム (Photoscan、Blender) が、実際の「頂点ごと」のテクスチャではなく、「ループごと」の頂点を持っていることです。これは、頂点が 2 つのポリゴンによって共有されている場合、その頂点に複数の UV 座標が存在する可能性があることを意味します。CTM は頂点ごとに 1 つの UV 座標しか持てないため、テクスチャの継ぎ目で問題が発生します。

ブレンダーでの私の回避策は次のとおりです。

  • 島からの継ぎ目
  • シーム上のエッジを選択し、同様の --> シームを選択します。これですべての縫い目が選択されます
  • メッシュ --> エッジ --> エッジ分割
  • .obj にエクスポートし、ctmviewer.exe を使用して .ctm にインポートおよびエクスポートします。

よく見ると継ぎ目はまだ見えますが、多色の帯は見えなくなりました。

于 2016-03-16T05:20:55.343 に答える
0

Agisoft Photoscan モデル/テクスチャで同じ問題が発生したため、Photoshop でテクスチャを開くと、テクスチャのすべてのパッチ間に透明性があることに気付きました。コンテンツに応じた塗りつぶしを使用してすべてのギャップを塗りつぶし、テクスチャをレイヤーなしの .tif として保存しました。これで問題は解決しました。

于 2016-01-07T11:51:16.913 に答える
0

または、テクスチャ イメージ ファイルからアルファ チャネルを削除することもできます (またはエクスポート時に JPG 形式を使用します)。

于 2016-01-26T11:30:38.167 に答える