コンピュータグラフィックス 実習3: 光線追跡法

Slides:



Advertisements
Similar presentations
画像処理・実習 第十四回:パターン認識 東海大学 情報理工学部 情報メディア学科 濱本和彦. 今回の内容 5. パターン認識 5.1 マッチングの原理 5.2 テンプレートマッチング 実習 相互相関とテンプレートマッチング.
Advertisements

『わかりやすいパターン認 識』 第 5 章 特徴の評価とベイズ誤り確率 5.4 ベイズ誤り確率と最近傍決定則 発表日: 5 月 23 日(金) 発表者:時田 陽一.
池内研究室 Computer Vision Laboratory 東京大学 The University of Tokyo 偏光レイトレーシング 宮崎大輔 2004 年 6 月 22 日(火) CVL セミナー.
画像情報処理 1 プログラミング課題 知的画像処理研究室 M2 大村 瑞穂. 目次 プログラミング課題の準備 – ファイルのダウンロード・解凍・コンパイル サンプルプログラムの説明 画像処理の方法 レポートに載せる画像について 例題と第 1 回レポート課題.
画像情報処理1 ~画像処理プログラミング~ 2015/05/01 知的画像処理研究室 M1 吉原寛樹
プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹. 課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示.
Ruth Onn, Alfred Bruckstein (Int J Comp Vision 1990)
ゲーム開発者向け最新技術論文の解説・実装講座
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
今回の内容 シェーディング マッピング 光の効果の表現 表面の素材の表現 オブジェクトの形状表現 光の効果の表現 表面の素材の表現
豊洲 304教室 15 JULY コンピュータグラフィックス 2008年度版.
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
パノラマ動画像モデルによる 仮想空間表現システムの研究
影付け,映り込み,光の屈折・反射などが表現でき,リアルな画像を生成できるレイトレーシング法について説明する.
11章 ボリュームレンダリングを学ぶ 本来は目に見えない内部情報をレンダリングし可視化する技術
3DCGコンテンツの基礎 第5回授業:最終課題制作
Imageの描画 画像を読み込んで表示すること。 import java.awt.*;が必要。
アルゴリズムとプログラミング (Algorithms and Programming)
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
Unity, C# マウスでモデルを移動させる方法
平成23年8月 情報学群 岡田 守 このスライドは, 前川佳徳編著による「コンピュータグラフィックス」(オーム社)を基に作成されている.
2004年度JAVAゼミコンテスト作品 「Othello」
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
形状モデリングにおいて,任意の自由曲面を定義する必要のある場合がある.自由曲面の表現法について説明する.
レンダリングにおいて写実性を高めるための処理である,シェーディングとテクスチャマッピングについて述べる.
透視投影(中心射影)とは  ○ 3次元空間上の点を2次元平面へ投影する方法の一つ  ○ 投影方法   1.投影中心を定義する   2.投影平面を定義する
AR概要とNyARToolkitについて
プログラミングIII演習 第1回目.
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
第11回 オブジェクト(ベクトル,頂点,面)のクラス化とフラットシェーディング
コンピュータグラフィックスS 第6回 第6回 レンダリング・パイプライン システム創成情報工学科 尾下 真樹
2014/05/02 知的画像処理研究室 M1 中津美冴 画像情報処理1 ~画像処理プログラミング~ 2014/05/02 知的画像処理研究室 M1 中津美冴
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
コンピュータグラフィックス CG Computer Graphics 情 報 文字 数値 図形 画像 ハードウェアの高性能化
コンピュータグラフィックスS 第13回 第13回 演習(4):シェーディング、マッピング システム創成情報工学科 尾下 真樹
画像認識レポート課題 ガイダンス.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
行列による画像処理 デジタル表現論 担当者:劉 雪峰 2017年6月1日.
第11回 宿題 出題日:12月21日 締切日:1月7日(木).
Cプログラミング演習 第7回 メモリ内でのデータの配置.
ポリゴンメッシュ (1) - データ構造とレンダリングに必要な計算 -
画像処理プログラムの説明.
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
構造情報に基づく特徴量を用いた グラフマッチングによる物体識別 情報工学科 藤吉研究室  EP02086 永橋知行.
Computer Graphics 第10回 レンダリング(4) マッピング
デジタル画像とC言語.
Thesis Supervisor: Katsushi Ikeuchi 池内克史
物理ベースレンダリング 光の物理的な挙動を正確に再現して レンダリングを行うこと 光(電磁波)の挙動を表す物理法則 幾何光学 波動光学
画像処理プログラミング 知的画像処理研究室 M2 小林 佳奈美.
文化財のデジタル保存のための 偏光を用いた透明物体形状計測手法
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向プログラミング クラス 継承
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
それでは,室内向けレーザーレーダ用の「レーザーレーダパネル」について,その動作原理を説明します.
ソフトウェア制作論 平成30年11月14日.
精密工学科プログラミング基礎 第7回資料 (11/27実施)
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
cp-1. クラスとメソッド (C++ オブジェクト指向プログラミング入門)
コンパイラ 2012年10月11日
演習00-0 “Hello\n” “World!\n”と
ソフトウェア工学 知能情報学部 新田直也.
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
printf・scanf・変数・四則演算
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
空間図形の取り扱いについて.
Presentation transcript:

コンピュータグラフィックス 実習3: 光線追跡法 コンピュータグラフィックス 実習3: 光線追跡法 1 目的: 球面を対象とした光線追跡プログラムを作成し、3次元画像生成の理解を深める。 2 利用する関数: RayTraceSubクラスなどに以下のメソッドを用意している。 (1)double lambert(double ll[], double nn[], double L, double amb, double rho); 光源方向の単位ベクトルll、法線方向の単位ベクトルnn、光源の強さL、環境光の強さamb、 反射率rhoを与えると明るさを返す(図を参照)。 (2) double int_sphere(double cc[], double r, double ss[], double ee[], double x_int[], double n_int[]); 球の中心座標cc, 半径r, 視線方向の単位ベクトルss, 視点の位置eeを与えると、交点の位置 x_int, 交点での単位法線ベクトルn_intを詰め、t値を返す。t<0の場合は交点がない。 (3) double get_tex(BufferedImage *bimg_tex, int nx_tex, int ny_tex, double n_int[]); テクスチャ画bimg_tex, テクスチャ画像のサイズnx_tex, ny_tex, 交点の法線ベクトルn_int からテクスチャ値を返す。詳細は後述する。 (4)int load_tex(char *fname); // ExpRay2, ExpMyRay内 JPEG画像ファイル名fnameを与えると、読み込み、テクスチャ画像bimg_texに入れ、サイズを *p_width, *p_height につめる。ファイルがない場合には0を、成功した場合は1を返す。 (5)void draw_point(int ix, int iy, int intensity) // ExpRay*, ExpMyRay内 画素(ix,iy)の明るさをintensityと設定する(グレースケール)。 3 作成プログラム1:光線追跡 準備: http://www.cg.is.sci.toho-u.ac.jp/zukei/jikken3内のファイルをダウンロードする。 機能: 2つの球に対して、完全拡散反射モデルを用いた画像生成を行う。画素値の計算にはRT.lambert(…)を、 交点の計算にはRT.int_sphere(…)を利用する。ソースのファイル名はExpRay1.java。appletviewerで動作を 確認する。画像は白黒である。 幾何配置: Q1、Q2の中心を (30,30,256), (-30,-30,512),半径を90, 180とする。 画素数をnx×ny (実際は512*512)、焦点距離d=128、視点eeを原点、視軸をz軸に取る(図を参照)。 画像の原点は画面の中心(ix=nx/2, iy=ny/2)にとる。 反射特性: 光源の強度L = 196,方向llを(0.3,0.5,-1.0)正規化したもの、 環境光amb = 64,反射率 rho= 0.8とする。 Tips: ・球の中心座標は、 double cc[][] = new double [2][3], r[] = new double[2]; など配列にするとfor ループで処理しやすい。 ・画素(ix,iy) の3次元座標は、原点が(nx/2,ny/2,d)にあるので、 xs = (ix-nx/2, iy-ny/2, d) である。 ・画像キャプチャはAlt+Print で。 ・メンバーに RayTraceSub RT を設定しているので、このクラスのメソッドは RT.lambert(…)などで呼べる。 ・画素値の設定は、draw_point(ix,iy, intensity); で。

4 作成プログラム2: テクスチャマッピング 機能: テクスチャ画像(例えば、toho.jpgなど) を読み込み、球面に貼り付ける。 幾何配置、反射特性は前章と同じ。ソースのファイル名はExpRay2.java. テクスチャ関数: get_tex(…)を用いてテクスチャ値を求める。ここでは、交点の法線(中心から見た交点の方向)のx、y座標により テクスチャ値を決めている。(z方向に画像を投影する処理になっている。) Tips: ・テクスチャ画像の読み込みは、 load_tex(“toho.jpg”); などにより行う。 ・テクスチャ値に基づき反射率rho_texを変動させることで、テクスチャマッピングが実現できる。例えば、 double rho = 0.8; double rho_tex, ratio; ……… ratio = RT.get_tex( bimg_tex, nx_tex, ny_tex, n_int[]); rho_tex = rho * ratio; intensity = lambert( ll, ss, L, amb, rho_tex); などで実現できる。 5 報告事項 (1)ExpRay1.java, ExpRay2.javaのraytrace()のソースコードと処理結果画像のハードコピー。 (2)考察:何に関してでもよい。 6 報告期限: 2週間後、コンピュータグラフィックス授業開始時まで。 7 発展課題 拡散反射および交点計算のメソッド double my_lambert(double ll[], double ss[], double L, double amb, double rho) ; double my_int_sphere(double cc[], double r, double ss[], double ee[], double x_int[], double n_int[]); をExpMyRayクラスに作成し、これを用いたrattrace()をExpMyRay.javaを作成せよ。 ee screen x y z d Q1 Q2 n_int x_int ll ss