mieki256's diary



2017/09/26(火) [n年前の日記]

#1 [pi3d][python][raspberrypi] pi3dでeggを使う際の注意点

pi3dで、複数のテクスチャ画像を使っているeggモデルデータを表示しようとすると、テクスチャが一枚分しか反映されなくて悩んでいたのだけど。

正常に描画される _pi3d_demos内の egg の中身を眺めているうちに、なんとなく原因が分かってきた。

ちゃんと表示されるeggデータは、どうもテクスチャ画像毎にポリゴン群をグループ化しているようで。例えば以下のような感じでデータが並んでる。
テクスチャAを使ってるグループ
  ポリゴン群データ
グループ終わり

テクスチャBを使ってるグループ
  ポリゴン群データ
グループ終わり

テクスチャCを使ってるグループ
  ポリゴン群データ
グループ終わり

対して、blender + YABEE でエクスポートした、テクスチャがちゃんと反映されないeggは、テクスチャ毎にグループ分けなんかしてなくて。
グループ
  このポリゴンはテクスチャC
  このポリゴンはテクスチャB
  このポリゴンはテクスチャC
  このポリゴンはテクスチャA
グループ終わり

Panda3D SDK の pview でプレビュー表示すると、後者のeggも描画されるので、おそらく Panda3D の eggフォーマットとしては後者もサポートされていてしかるべき、なのだろうと想像するのだけど。

ただ、pi3d の場合、OpenGL ES を利用するライブラリだから、テクスチャ画像毎に描画していかないと描画パフォーマンスが出ない等の理由で、あらかじめデータ側で、テクスチャ別の並びで整理整頓しておいてくれないと困る、てな事情でもあるのかもしれない。

でもまあ…。 ということで、今後 egg は使わない、というノリで触っていこうかなと。 *1

ちなみに、blender からエクスポートした obj + mtl は、マテリアル別=テクスチャ別にポリゴン群がまとまって並んでいるので、pi3d が egg に望んでる仕様 ―― テクスチャ別にグループ分けして並べろ、的な仕様は、obj + mtl の場合既に満たされている可能性が高い。 *2
*1: そもそも、不人気で死兆星が見えかけてる気配があるPanda3Dが独自に策定したフォーマットなんて、できれば触りたくないし。
*2: もっとも、blenderのエクスポータはテクスチャ別に並べているけど、他の3DCGソフトのエクスポータはそういう仕様になってない可能性があるので、obj + mtl ならとにかくOKというわけではなさそう。

以上です。

過去ログ表示

Prev - 2017/09 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project