パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

大量の点群から 3DCG を描画、従来の 10 万倍の精度」記事へのコメント

  • 点だと面と違って法線が無いので反射計算をするときに結局周囲の点からポリゴンを作る必要が出てしまいそうです。
    デモ動画にはやはり直接光による影も出ていませんし、リフレクションやGIレンダリングも辛いんじゃないですかね。
    SIGGRAPHで技術詳細を語ったりしないのでしょうか。

    • by Anonymous Coward
      >点だと面と違って法線が無いので

      この技術はどうか知りませんが、点でも法線を持つことができますよ。
      以下のURLは3Dスキャンした点群をメッシュ化するチュートリアルですが、法線を作り直してメッシュを張る方向を決めています。

      http://wiki.makerbot.com/makerscanner-meshing [makerbot.com]

      • by Anonymous Coward on 2011年08月05日 15時47分 (#1998269)

        そもそもポリゴンモデルだって点の集合+補間なわけで。
        ノーマルマップやディスプレイスメントマップは、
        そのマップとなるピクセル量で頂点を増やしていると言える。
        大量点群って、結局ハイポリゴンモデルと何も変わらん。
        それによってレンダリングやコリジョン判定の高速化とかできるなら話は別だが。

        親コメント
        • 点と点を繋ぐ情報をもって多角形平面にしたものがポリゴンですから、補完するに当たっての頂点同士の結線情報こそがポリゴンの本質といえますし、すると、この技術でポリゴンでは無いといっている以上は結線情報が無いのだろうという事が言いたかったわけです。

          結線情報があればその時点でポリゴンですからね。

          結線情報があることで点ではなく面となり、面だからこそ二次元平面とのマッピングが出来るわけです。
          そういった観点では大量点群はハイポリゴンとは明確に違うといえる訳です。3Dスキャナなどで取得した頂点群は、今までの常識的な技術では、隣接点をうまいこと繋ぐことでポリゴンにしているわけです。

          事前にポリゴンにしないで、リアルタイムでポリゴンにしているとしても、そりゃただのポリゴンなので、結局ポリゴンでは無いという説明にはならないので、一体全体なんだろうという話になります。

          サイトには「ボクセルでも無い」と書いてありますが、ノッチさんは見た感じボクセルだろこりゃと突っ込んでいるわけですね。

          で、私の言ったシェーディング云々は、面で無い点の状態では、光の反射方向が決定できないので、明暗を決める計算が出来ませんがどんな風なやり方をしてるんだろねっていう話です。
          隣接点から面の方向を作っちゃうと、やっぱりそりゃポリゴンだろって話になっちゃいますしね。

            (#1998242)のように、点に法線を別途もたせてあるという方法も興味深いですが、違うような気がします。

          SIGGRAPH直前のこのタイミングで、学会論文もなしに微妙なゲーム画面との比較映像だけ出すというのがどうにも投資詐欺の類に見えてしまいます。

          親コメント
          • > 面だからこそ二次元平面とのマッピングが出来るわけです。

            どうしてこう言えるのですか?
            点を数学的に厳密な点(大きさなし)と解釈するとそうですが、CGの場合は最終的に表示する場合に
            大きさのあるピクセルに書くわけですから、点は大きさを持っていても問題ない(というか計算誤差に埋もれる)ので
            レンダリングは出来ますよね。

            > 隣接点から面の方向を作っちゃうと、やっぱりそりゃポリゴンだろって話になっちゃいますしね。
            > (#1998242)のように、点に法線を別途もたせてあるという方法も興味深いですが、違うような気がします。

            点が法線方向を持つには隣接点を使わない方法は難しいはずなので、隣接情報は使ってるかも知れませんが、
            それだけでポリゴンだと言われると、ちょっと定義を拡大しすぎかなとも思います。
            単純に、ポリゴンのサイズを点と区別する必要がなくなるまで小さくしているのだという解釈は成り立つのでは
            と思います。それはポリゴンだろと言われるとそうかもしれません。
            が、さすがに点から面を作ってその後は従来のポリゴンのアルゴリズムそのままではないような気がしますが、
            詳細は分かりません。そうだったら、ポリゴンと言っても構わないと思います。

            今回のネタと関係あるか分かりませんが、surfel(点と法線と円の半径情報を持つ)といった方法があります。
            http://www.merl.com/projects/surfels/ [merl.com]
            これは、法線情報を持つ点を有限な大きさの円盤としてレンダリングするものです。
            ポリゴン的に考えると面同士のつながり情報の無い面の集合のような感じです。

            親コメント
            • > > 面だからこそ二次元平面とのマッピングが出来るわけです。
              >どうしてこう言えるのですか?
              あくまでも、テクスチャマッピングについては、面が必要だという指摘がしたかったわけです。
              二次元平面と3次元空間上の面をマッピングするという文字通りの話です。
              点が様々な手法でレンダリングできるというのには異論はありません。

              > 単純に、ポリゴンのサイズを点と区別する必要がなくなるまで小さくしているのだという解釈は成り立つのでは
              > と思います。それはポリゴンだろと言われるとそうかもしれません。
              それだと昔からREYESのマイクロポリゴンと同じなので、やはりポリゴン以外の何者でも無い気がします。
              最近はDirectX11のテセレーションが盛り上がってるわけですし、その上でポリゴンではないと言うわけですから、どういうことなのかとても気になりますね。
              これであとからやっぱりランタイムでポリゴン生成をしてるとかいう話だったらガッカリします。

              親コメント
              • > それだと昔からREYESのマイクロポリゴンと同じなので、やはりポリゴン以外の何者でも無い気がします。
                それはどちらかというとポリゴン -> 点群(マイクロポリゴン)変換をしていると考えるとどうでしょう?
                ポリゴン->点群はコストが安くできるので、ポリゴン形式でに点群形式でもどちらの方法でデータを持っても
                かまわないってことにならないでしょうか?

                > これであとからやっぱりランタイムでポリゴン生成をしてるとかいう話だったらガッカリします。
                逆に、点群->ポリゴンのコストはそんなに安くないので、それがうまくできるなら別の方向でいい感じな気もします。

                親コメント
          • by Anonymous Coward on 2011年08月05日 22時27分 (#1998461)

            > 面で無い点の状態では、光の反射方向が決定できない

            既存のCG技術に毒されています.

            まず反射方向は,点を球と考えれば,簡単に計算できます.つまり反射方向=球の法線ベクトルです.

            そもそも原子レベルで考えると,実世界は微小な球の集合です.その球に光があたって反射した結果が我々の目に届くと,その部分が見えた,ということになります.
            ポリゴンとかその接続順序なんてものは存在しません.フォンとかフラットシェーディングみたいな近似計算もまったく不要です.

            今のCG技術は,この物理現象を,計算しやすいようにポリゴン(パッチ)という平面を使って近似して,
            更にはマテリアルとかテクスチャを使って光の干渉等を近似しているだけです.本質を見失わないように.

            親コメント
            • by Anonymous Coward on 2011年08月05日 23時45分 (#1998495)

              > > 面で無い点の状態では、光の反射方向が決定できない
              > 既存のCG技術に毒されています.
              > まず反射方向は,点を球と考えれば,簡単に計算できます.つまり反射方向=球の法線ベクトルです.

              えー?
              その理論だと、水平においた平面を構成するある点の法線(上方向と期待される)と、
              垂直な平面を構成するある点の法線(横方向と期待される)は、
              いずれも常に入射する光源の方向になるので再帰性反射になりますよ。
              元コメのように周囲の点との関係性の情報が必要です。

              > そもそも原子レベルで考えると,実世界は微小な球の集合です.その球に光があたって反射した結果が我々の目に届くと,その部分が見えた,ということになります.
              > ポリゴンとかその接続順序なんてものは存在しません.フォンとかフラットシェーディングみたいな近似計算もまったく不要です.

              原子の大きさの球点群に光が当たってその反射光が見えるとか、
              ものすごい単純化された幾何光学のモデルですね・・・。
              そのモデルでの回折とか透明物体の解釈をお聞きしたいところ。

              追加すると、十分密な点群を用意できればある程度計算できるだろうけど、
              疎な場所を光線が通過する場合が現実的には発生するので、
              点群間の接続情報なしにその場合をどう処理するのかが気になるところ。

              何かしらの知識で接続情報を補っているのだろうけど、それだと結局面を一度張ることと等しいので、
              最終的なレンダリング方法は既存のボクセルやポリゴンの延長でしかなさそうで、
              「詐欺っぽい」といわれるのもわかる気はする。

              親コメント
            • > そもそも原子レベルで考えると,実世界は微小な球の集合です.その球に光があたって反射した結果が我々の目に届くと,その部分が見えた,ということになります.
              少なくとも可視光の波長では、光を反射しているのは最外殻(付近の)電子のはずですので、むしろ原子レベルで観たほうが、多くの物質は滑らかな平面なんじゃないでしょうか。

              親コメント
              • 原子レベルで面の反射になるのは干渉効果だから、光線としか計算しない場合は面反射が実現できない。(点による反射はすべて拡散反射になる)
                干渉計算なしでの面反射のためには法線情報が必要。
                隣接点と構成された平面を使うとポリゴンだから、周囲点の平均でも使うのか?

                --
                the.ACount
                親コメント
              • 現実の物質と、この点ベースモデリングとの比較をした親コメントに対し、前半の間違いを指摘しただけで、このモデリング・レンダリングに関してコメントしたわけではありません。

                こちらは門外漢ですが、レンダリングの際に法線上が必要なら、各点に法線ベクトル情報を持たせれば良いのではないでしょうか。

                親コメント
          • by Anonymous Coward

            ハイポリゴンモデル(+ノーマルマップ+ディスプレイスメントマップ)では、
            結線情報なんて情報量としてほとんどないです。
            近傍点で間を補完したら、ポリゴンモデルとやっていることは同じだと思います。

人生の大半の問題はスルー力で解決する -- スルー力研究専門家

処理中...