スレッド表示 | 古いものから 投稿するには登録が必要です | 前のスレッド | 次のスレッド | 下へ |
投稿者 | スレッド |
---|---|
投稿数: 106
|
投稿日時: 2007-04-22 02:55 Re: ポリゴン欠け再現(--;) |
極小ポリゴンが原因かと思いましたが、検証結果をみると、これは単純に
両面ポリゴンの問題なのですね。失礼しました。 重複したポイントの内側のハンドルで生成されている曲面がポリゴン分割時に 輪状態の曲面として生成され、両面ポリゴンとなっているのですね。 ポリゴンの分割を荒いにすると、この両面部分は生成されなくなります。 当然ながら、重複ポイントの内側のハンドルをカットすることにより、ヘアサロンでも面欠けを起こさずに、正しく表示されることを確認しました。 同じような内容で何度も書き込んで申し訳ありませんが、誤解をまねくようなバグ情報を提示したままにして、よけいなバグを招いてしまわぬように、ちょっとしつこくレポートさせていただいております。 余談ですが、pythonスクリプトでは、macで得られる座標値は結構丸められており、windowsでの数値はゆらぎまくっています。同一ポイントを判断するスクリプトを書いたとき、これで結構泣かされました^^; | |
投稿数: 64
|
投稿日時: 2007-04-21 23:26 Re: ポリゴン欠け再現(--;) |
自由曲面はポリゴンメッシュに変換したときに、Shadeバージョンによって頂点数・ポリゴン数は変わることがあって、このへんはヘアーサロンでも互換性が取れないので、ヘアーサロンでの形状データの持ち方の方法を考え直さないといけませんね。
(大きな変更になりますので、おそらくマイナーアップでは対応できない部分ではありますが、メジャーアップ時には対応できれば) 一度保存したものを再度ヘアー設定ウィンドウで見てもクリアされる、のは揺れる誤差で頂点がまとめられてしまった、というのが考えられます(Macは結構開発段階で小数のゆれを確認しましたので)。 さて、添付のファイルですがありがとうございます。 検証してみました。 ポリゴンに変換してみれば分かりやすいのですが、両面のポリゴンが存在しますね。 当然ながら現在リリースされているヘアーサロンでは両面の部分は不正になります。直したバージョンでは両面の部分が分かりやすく見えつつ(という風に手を加えてます)、その部分にもヘアーガイドは生やすことができるようになっていて、かつポリゴン欠けはない状態にはなってました。たぶんこれでOKかな。 しかし、この極小ポリゴン、あらゆるところで難解なバグを引き起こす原因となるため(アンダーフローしかり)、ほかのプラグインでも追わないといけないなぁと思ってます。 (正直言うと、自由曲面からの変換で起こりうる例が大半だと思いますので、SDKレベルでのデフォで極小ポリゴンは除去してほしかったり。最近、面積0のポリゴンが生成されていることに気がつきました(^_^;;) | |
投稿数: 106
|
投稿日時: 2007-04-21 17:43 Re: ポリゴン欠け再現(--;) |
文章が変でしたので、補足です。
文末のエラーに関しては、マックでは確認できませんでした。というのは、頂点数が違うといわれて、ヘア情報がクリアされるエラーの事です。 面欠けのエラーは発生しています。 | |
投稿数: 106
|
投稿日時: 2007-04-21 17:41 Re: ポリゴン欠け再現(--;) |
検証おつかれさまでした。原因が特定できたようで、なによりです。
極小ポリゴンということで、ひとつ思い当たるのが、自由曲面で同一ポイントが存在する場合です。 以前、macだかwinで同一ポイントが存在する自由曲面にヘアを作成した場合、ファイルを閉じて開き直すと、頂点数がエラーとなり、ヘア情報がクリアされることがありました。 現状バージョンでどうなったかを検証しようと思い、球>自由曲面>線形状同一複製>ヘア作成を行ったところ、面欠けが発生しました。これも内部でポリゴン変換を行っているときに極小ポリゴンが作成され、エラーとなっているのかと思われます。 なお、エラーに関しては、マックでは確認できませんでした。 hair2.shd.zip | |
投稿数: 64
|
投稿日時: 2007-04-21 03:52 Re: ポリゴン欠け再現(--;) |
dmfukaさんにご協力いただき、ヘアーサロンの「ポリゴン欠け」問題の原因が分かりました。
ポリゴンの面積が極端に小さい場合に処理をスキップしている箇所があり、その部分にて(以降のポリゴンを格納する処理を)打ち切っていたため、欠けてしまっていた、というものでした。 皆様、ご協力ありがとうございました m(_ _)m。 おかげさまで、ヘアーサロンでの「面反転」と「ポリゴン欠け」の二大問題を解決に導くことができました。 (その他、速度が遅かった部分で気になったことがありましたのであわせて修正させていただきました) また次回アップデータが出たときにご確認いただければ幸いです。 | |
投稿数: 64
|
投稿日時: 2007-04-19 12:05 Re: ポリゴン欠け再現(--;) |
しつこく検証です。
まずヘアーサロンの「面が反転している」と「面が欠けている」という2つがある、ということと、それぞれは原因が異なると考えています。 kamo夫さん> サンプルのメールありがとうございます。 「面が反転している」の原因は、両面が存在する面がある、ということが絡んでました。 何かモデリング作業中にそのような状態になってしまったのでしょうね。 この場合は、ヘアーサロンではどちらが正しい面か判断でいないため、「表であり裏」という微妙な状態になります。 グラフィックボードによっては、ヘアーサロンのビュー部でまだらになったり、完全に真っ黒になっていたりします(添付ファイル参照)。 そのような形状があってもある程度は対応できるようにはしておきます。ただ、ポリゴンメッシュとしてはあまりよろしくないタイプ、という認識でお願いできればと思います(面の両方から毛が生える)。 現状は、お手数ですがこの場合は、片面のみになるように形状を編集お願いいたします(Shadeのメッシュ編集での[align]-[法線の統一]でできます)。 「面が欠けている」に関しては・・・・、引き続き追い掛けるようにします(どうも、極小ポリゴン、または面積が0のポリゴンが存在するのが原因のような気も)。 | |
投稿数: 64
|
投稿日時: 2007-04-18 15:34 Re: ポリゴン欠け再現(--;) |
でった☆さん
サンプルshdありがとうございます。 ヘアーサロンでの面反転の原因が明確に分かりました。 面反転(法線)は、どうも親の変換行列の影響も受けてますね。 この行列は盲点でした。 一度ワールド座標に変換した後、面反転チェックを親まで行って、反転している場合は頂点の並びを置き換えてました。 これをローカル座標値のまま、面反転チェック〜で同様の処理を行うと、Shade本体の法線表示と一致することができました。 ということで、でった☆さん分の面反転に関してはクリアです。 kamo夫さんとdmfukaさんの現象は、一部のみ反転(または欠け)しているため、これとは別の可能性がありそうです。 これも引き続きチェックします。 | |
投稿数: 106
|
投稿日時: 2007-04-18 12:31 Re: ポリゴン欠け再現(--;) |
形状欠けではありませんが、パートに反転をかけることで図面での法線表示がヘアーサロンと一致しないのでは?というサンプルをあげさせていただきます。
4つのパートがあります。 createからパートを作り、中に球を作成。それを荒くポリゴン変換したものを1番上に。 パートを作り、xを-1したパートに球を作成。それを荒くポリゴン変換したものを2番目に。 2番めのパートを2つ複製し、パートにブラウザの面反転チェックしたものを3番目に。 ポリゴンにブラウザの面反転したものを4番目に。 以上4つのポリゴンそれぞれにヘアーサロンを適用すると、正しく表示されるのは1番目と2番目で、3番目4番目は黒く(面反転)されて表示されます。 しかし、法線表示が内側になっているのは2番目のみで、1、3、4は外側です。 これらのことから、図面では2番目のみ裏側なのに大して、ヘアーサロンでは3、4が裏側だと判断されており、それぞれの結果が一致していないことになります。 なにかの検証材料になりますでしょうか。 mac OS10.4.8 hair.shd | |
投稿数: 64
|
投稿日時: 2007-04-18 08:42 Re: ポリゴン欠け再現(--;) |
う〜ん、手順を見る限りは多角形の三角形分割の問題ではない可能性がありますね。
ポリゴンが抜け落ちてしまってるのか反転しているのか・・。 一度、図形ウィンドウ上での面法線表示のキャプチャをお願いできますでしょうか? あと、これは最終手段ですが、私宛にshdファイルをメールにて送っていただければ(このフォーラムのプロフィールのところにメールアドレスがあります)追いながらヘアーサロンのソース修正かけます。 後、キャプチャ画像の口から下は意図的に切っているのでしょうか? もし面反転している部分がところどころにあるのでしたら、口から下も黒い面で表示されるはずですが、そうでもなさげですね(ポリゴンが欠けている?それと面反転が混在、かな?)。 Shade9.0.0から9.0.2にかけては、ヘアーサロン自身は内部的に大きな修正はかかってないですので、もしかしたら何かShadeで仕様が変わった部分が影響しあったのかなぁ? 後一点、もし自由曲面でヘアーサロンを割り当てた場合は、Shadeのバージョンによってポリゴン化したときのポリゴン情報に差が出ることもあります。 (テストする限りは、Shade6〜Shade9にかけて、すべてこの変換時の頂点数・ポリゴン数が変わってました。マイナーバージョンによっても変化があるかもしれません) ヘアーサロンではポリゴン数とその並び(順番)を重視しますので、ヘアーサロンを適用した形状はポリゴンメッシュで管理し、かつ、面を追加削除したり編集したりはしないようにしてください(変形や拡大縮小はOKです)。 といいつつ、これは面反転とか面の欠けとは無関係な事柄です。 > 編集を繰り返してるパートのローカル座標系が悪さをしている可能性があります。 はたしかに可能性としては捨てがたいですね。 (面反転の判定は、かなり泥臭いことやってます(^_^;;。Plugin SDKで継承など親子関係の考慮を対応してなかったりするため) | |
投稿数: 64
|
投稿日時: 2007-04-18 08:21 Re: 面反転解決です(^^) |
面反転に関しては、ヘアーサロンにて対応しているはずですので、もし、反転コピーしたときに片方が裏返ってるのであれば問題はまだ解決されてないですねぇ。
Shadeでは、 たとえばcopyの数値入力にてXを-1として反転する、などすると ブラウザの面反転がチェックされます。 これでつじつまが合うようにしているのですが(Shadeの法線表示の面方向とイコールになる)、モデリング中にこの反転反転反転・・・の作業を繰り返してるうちに狂うことがある、というのを聞いたことがあるので、それでどんどん崩れていく、ということがあるのかもしれません、 もし、Shadeの法線表示と違う結果がヘアーサロンであるとすると 解決でなくてまだ問題視してください(^_^;;。 | |
投稿数: 59
|
投稿日時: 2007-04-18 06:32 ポリゴン欠け再現(--;) |
投稿数: 59
|
投稿日時: 2007-04-17 21:43 面反転解決です(^^) |
吉阪さん、貴重な情報&ヒントありがとうございます。
> とりあえず、反転コピーはくさい気がします。 との情報で、自由曲線段階で顔の左右をそれぞれポリゴン変換して左右別々にヘアーサロンを使ってみました。 結果、向かって右側(オリジナル形状)は面反転とならず、同左側(複写形状)は質問時と同様に面反転した状態でした。 この性質はポリゴン編集ツール・反転コピーでそのまま受け継がれるようで、左右に複写しても右側=正常、左側=反転となり、結果右側を使えば問題ない事が判明しました。 今まで何度か同様の作業をした時、全て面反転となったのは左側を編集ベースにする自身の習性?であろうかと思われます(;^^A 大変お騒がせして申し訳ありませんm(__)m 無事かいけつ☆ 親身になって調べて頂いた吉阪さんには非常に感謝しております<(_ _)> なお、dmfukaさんの問題が未だ未解決です。 初めに仰られたようにポリゴンの裏表が間違っているのであれば、今回のように面反転すると思われます。 吉阪さんのご提案のとおり、条件を変えてヘアーサロン適用してみれば原因の切り分けがやりやすくなると思います。 どうでしょうか? | |
投稿数: 64
|
投稿日時: 2007-04-17 14:55 Re: ヘアーサロンの形状表示の不具合 |
すみません、自己レスです。
> 球をポリゴンメッシュ変換して、メッシュ編集で半分にする。 > それを反転コピー。 は、環境依存か操作ミスだったのか、別の環境(Windows XPのShade9.0.2)では再現できませんでした。 また、原因が詳しく分かり次第情報を記載します。 ヘアーサロンでは多角形ポリゴンの三角形分解部分が、欠ける原因の1つを担っていると考えられるため、この部分は引き続き追いかけることにします。 | |
投稿数: 64
|
投稿日時: 2007-04-17 10:39 Re: ヘアーサロンの形状表示の不具合 |
貴重な情報ありがとうございます。
OS情報と手順があれば百人力です(ちょっと予想してない方法でした。ただ、Shadeでは当たり前の手順だと思われますが)。 > 自分はShade以外使わない(使えない)ので別環境での編集はありません。 私は逆にShadeでモデリングできない(汗)ので、いつも外のモデラーで作ってからインポートしてます。それで、なかなかみなさんのバグが再現できないのかもしれませんね(^_^;;。 一度自由曲面で作ったら再現しやすいのかもしれないですね。 試してみます。 いずれにしても修正までは時間がかかると予想できますので、今の回避策として以下をお願いいたします。ヘアーサロン内の面分割で不正処理が起こらない(そのルーチンを通らない)ようにするための手順です。 ・自由曲面の場合はポリゴンメッシュに変換 ・ポリゴンを三角形または四角形ポリゴンに分解する → メッシュ編集にて面を選択、[divide]の三角形分割を行う → またはDXFでexportしてimport(三角形と四角形に分解される)。 レンダリングをしてみて、正常にレンダリングされるのを確認してから、ヘアーサロンの設定を行うようにします。 (他のモデラーが使えるのであれば、一度他でエクスポートして確認するのがいいのかもしれません) と試してみて、Shade本体のバグを見つけました。 球をポリゴンメッシュ変換して、メッシュ編集で半分にする。 それを反転コピー。
このパートをポリゴンメッシュに再度変換すると、形状が崩れますね。これが原因? とりあえず、反転コピーはくさい気がします。 (ここでデバッグ報告してどうするんだ・・・(汗)) | |
投稿数: 59
|
投稿日時: 2007-04-17 06:34 Re: ヘアーサロンの形状表示の不具合 |
情報ありがとうございます(^^)
OSはWindows2000(SP4)です。 ヘアサロンで使うポリゴンですが、以下の手順で作成してます。 ・自由曲線で作成した顔半分を荒いポリゴンに変換 ・編集ツール・反転コピーで顔左右とする ・不要な顎部分のポリゴンを削除 ・ヘアサロンを対象オブジェクトに対して実行 自分はShade以外使わない(使えない)ので別環境での編集はありません。 カツラが出来ればOKなので法線計算の問題について、回避方法等の情報をいただければ幸いです。 (回避不能ならカツラ用オブジェクトを一から造る等の構想あり) よろしくお願いいたしますm(__)m | |
投稿数: 64
|
投稿日時: 2007-04-16 12:11 Re: ヘアーサロンの形状表示の不具合 |
kamo夫さん
OSはMacでしょうか? > Shade 9用9.0.2アップデータを適用して、 > ポリゴンの再生成(自由曲線から変換)をした時点で > 無くなりました だと、Shade本体で直されたのかな? 添付画像の症状だと心当たりがあります。 おそらく法線計算の問題ですが、MacとWinにて浮動小数点の差がありましてMacでのみ再現できていたことがあります(この部分非常に不安定な箇所ではありました。まだ調整が甘いのかもしれません)。 この点も確認を取ってみます。 ほか、バグなどありましたら遠慮なく書き込んでくださいませ。この他、頭皮に密接した毛を生やしたときに、なかなかドライヤーで変形しにくい(Z値の奥行きが浅いため)、という問題も見つけてます。 | |
投稿数: 59
|
投稿日時: 2007-04-16 05:07 ヘアーサロンの形状表示の不具合 |
投稿数: 64
|
投稿日時: 2007-04-15 02:59 Re: ヘアーサロンの形状表示 |
画像アップありがとうございます。
なるほど、欠け具合から見てもOpenGLの問題ではなさそうですね。 モデリングにて変則的な面構成が見えるので、ヘアーサロン内部にて面の取得に失敗しているようにも見受けられます。 あと、細かい耳や目、口付近でのエラーが他に影響を及ぼしているようにも。 これで原因の追究につながりそうです。追いかけてみることにします。 | |
投稿数: 12
|
投稿日時: 2007-04-15 00:24 Re: ヘアーサロンの形状表示 |
投稿数: 12
|
投稿日時: 2007-04-15 00:16 Re: ヘアーサロンの形状表示 |
スレッド表示 | 古いものから 投稿するには登録が必要です | 前のスレッド | 次のスレッド | トップ |