タグ

openGLとMathに関するedo_m18のブックマーク (2)

  • Argorithms ( Ray Tracing )

    レイトレーシング レイトレーシングとは コンピュータによって3次元の画像を計算するアルゴリズムの一方法である。 簡単に考え方を述べると、現実の世界では太陽や蛍光灯から出た光が 物体に当たって反射し、その反射した光が人間の目に入ってものを見ることができる。 レイトレーシングではそれとは逆に目から視線が出て、その視線が物体に 当たった時、その物体が見えていると考える。 そしてその視線が物体に当たった点に当たっている光の強さの程度に よって、その点の色を決定する。 3次元の画像を生成するためのアルゴリズムは他にも代表的なものとして、 スキャンライン、zバッファ などがある。 レイトレーシングは例えばスキャンラインやzバッファと比べて次のような特徴がある。 長所 美しい画像を作りやすい。 透過や屈折の効果を出すことができる。 アルゴリズムがシンプルでわかりやすい。 消費するメモリーが少ない。 短所

  • 交差判定_3DCG - FreeStyleWiki

    レイトレース処理での一番大事な部分、交差判定について記述します。ここではレイ(視点位置と視線ベクトルを持つ)とポリゴン(三角形)との交差判定になりますね。 単純な交差判定 三次元空間上のポリゴンをX/Y/Z軸を圧縮する形で2次元に投影してしまいます。これは、X-Y平面への投影・X-Z平面への投影・Z-Y平面への投影の3つの投影があります。一番確実なのは(誤差を少なくするのは)それぞれの面に投影した場合の面積を計算して、一番面積の大きい面に投影するとするといいです。 上図の場合は、X-Z平面に投影しています(三角形の頂点座標のうち、X/Z成分のみを取り出します)。 また、レイの方向ベクトルと面の法線ベクトルにより「直線と面の交点位置」を求めます(これは3次元空間での処理)。このときに交点が求まります。が、三角形内に内包されているかは分かりません。これを、X-Z平面に三角形を投影している場合は

  • 1