様々な3DSソフトをプレイするときに
よく思うのですが、CGで描かれた
球体の形をしたものをよく見てみると、
角張って見えます。
これは、平面を球状に貼り合わせ、
球体に近い形を作り出しているからだと
思います。
では、どこまでズームアップしても
完全に滑らかである球体を、CGで
製作することは可能ですか?
また、可能だとしたら、それを製作
することは容易ですか?
一口にCGと言っても、その描画には様々な方法が存在します。その方法によっては完璧な球体を作ることはもちろん可能です。
3DSやPSPなどで使われているCG技術は「Zバッファ法」と呼ばれるポリゴン描画法の一形態を基本としています。これは立体を多角形の面の集合体として扱い画像計算する方法ですので、原則としてすべての面が平面となります。計算が単純でハードウェア化しやすいので、ゲーム等のリアルタイム3D表現では大抵この方式になります。ただ、すべての面が平面ですので、球体を含めて曲面の描写については、どうしても角ばった表現になってしまいます。
http://e-words.jp/w/ZE38390E38383E38395E382A1E6B395.html
この他に、3DCGの技法としてはレイトレーシング法やラジオシティ法といった方式も存在します。こちらは、描画する物体を数学的な方程式の形で表すため、平面だけでなく数学的に完璧な曲面も表現できます。あくまで数式の形ですので、球面が角ばることは絶対にありません。
http://ha7.seikyou.ne.jp/home/tonta/cg9.html
ただし、レイトレーシング法やラジオシティ法は、非常に計算負荷が大きいという欠点があります。静止画の描画ならともかく、ゲームのようなリアルタイムで動く画面を作るための手法としては全く不向きです。
一口にCGと言っても、その描画には様々な方法が存在します。その方法によっては完璧な球体を作ることはもちろん可能です。
3DSやPSPなどで使われているCG技術は「Zバッファ法」と呼ばれるポリゴン描画法の一形態を基本としています。これは立体を多角形の面の集合体として扱い画像計算する方法ですので、原則としてすべての面が平面となります。計算が単純でハードウェア化しやすいので、ゲーム等のリアルタイム3D表現では大抵この方式になります。ただ、すべての面が平面ですので、球体を含めて曲面の描写については、どうしても角ばった表現になってしまいます。
http://e-words.jp/w/ZE38390E38383E38395E382A1E6B395.html
この他に、3DCGの技法としてはレイトレーシング法やラジオシティ法といった方式も存在します。こちらは、描画する物体を数学的な方程式の形で表すため、平面だけでなく数学的に完璧な曲面も表現できます。あくまで数式の形ですので、球面が角ばることは絶対にありません。
http://ha7.seikyou.ne.jp/home/tonta/cg9.html
ただし、レイトレーシング法やラジオシティ法は、非常に計算負荷が大きいという欠点があります。静止画の描画ならともかく、ゲームのようなリアルタイムで動く画面を作るための手法としては全く不向きです。
なるほど。完璧な曲線を動かすと膨大な
負荷が生じるから、ゲーム等には不向き
なのですね。
その他にも長い間疑問に思っていたことが
たくさん氷解しました。
本当にありがとうございました。
何をもってCGとするか難しい所ですが、CGの設計と描画という二つの観点で考えます。
設計の点においては、これは可能です。極めて単純です。xyz座標なら、「x^2+y^2+z^2=1」という関数をプログラミングすればよいだけなのですから。言い換えれば、完璧な球の概念は数式によって既に表現されているのです。そこでは平面を貼り合わせるも何もありません。それそのものが球体なのです。
http://upload.wikimedia.org/wikipedia/commons/9/90/Slanted_circle.png
二次元のCGの話になってしまいますが、画像の形式としてベクタ画像というものがあります。これは言わば図形によって設計された画像です。限りなく解像度の高い、すなわち完璧に図形を表現できるディスプレイがあったとして、一般的な形式の画像であるラスタ画像で表現された円を拡大し続けるとやがてそれを構成するドットが現れてくるのに対して、このベクタ画像はどれだけ拡大しても円なのです。
http://ja.wikipedia.org/wiki/%E3%83%99%E3%82%AF%E3%82%BF%E5%BD%A2%E5%BC%8F
ところが、これを描画するとなると話は別です。まず、ディスプレイ上における表現という出力技術の問題があります。画面に表示できる画素数に制限があり、3DSの液晶画面という小さな出力装置にそれを正確に表現することはできません。3DS、さらに3D自体を離れれば、現在、人間の網膜による視覚映像受容の精度を上回る極めて高解像度のディスプレイ装置が既に実現されているようです。(少なくともその事を謳っているものがあります。Apple製品に採用されている「Retinaディスプレイ」というものがありますが、 Retina というのは網膜の事です。)それでも完全な球体が表現されたわけではありませんし、それをも正確に認識できない網膜をもってして、果たして人間は完全な球体を認識できるのか、という認識論的な問題さえ発生してしまいます。もう一つは、数式情報の処理技術の問題です。ゲームなどにおいては完全な球体が登場せず、それが複合した形で表現され、さらに動き回るわけですから、到底小さな機体では処理しきれません。そこでゲームにおいては、平面を組み合わせるという方法で、情報処理量を減らしつつできるだけそれに近い表現を実現するという方策が採られているわけです。この点については、No.1に詳しいですね。
結論として、完璧な球体は設計は極めて容易にできますが、その表現を実現することに限界があります。仮に実現を試みたとしても、人間の視覚がそれほど正確でもないので、製作はおそらく容易ではないでしょうね。
実は私、現時点でどれほど解像度の高い
液晶があるのかも知りたかったので、
Retinaディスプレイというものには
非常に興味が湧きました。
網膜レベルの解像度だと、やや斜めの直線が
ギザギザに見えるということもない
でしょうね。
一度見てみたいものです。
なるほど。完璧な曲線を動かすと膨大な
2013/05/04 01:20:49負荷が生じるから、ゲーム等には不向き
なのですね。
その他にも長い間疑問に思っていたことが
たくさん氷解しました。
本当にありがとうございました。