CG

Similar documents
コンピュータグラフィックス第8回

CG

Microsoft PowerPoint - 9.レンダリング2.pptx

CG

CG

CG

コンピュータグラフィックスS

CG

Computer Graphics

スライド 1

コンピューターグラフィックスS

2 レンダリング方程式 レンダリングの完全なモデル化

Microsoft Word - 演習9.docx

CG

Graphics with Processing モデリング 塩澤秀和 1

スライド 1

Microsoft PowerPoint - CGによる画像生成.pptx

ライティングの基本要素ライト ( 光源 ) の位置や種類 強さを決め モデルやシーンの見せ方を決めることをライティングとよぶ また モデルの表面での光の反射の度合いを調節することで ライティングの効果を変化させることができる 今回は ライティングの基本的な要素を解説し SketchUp のライティン

0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生

PowerPoint プレゼンテーション

vecrot

問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

コンピュータグラフィックス

Microsoft Word - povray.docx

コンピュータグラフィックス第6回

コンピュータグラフィックスS 演習資料

Microsoft PowerPoint - info_eng3_05ppt.pptx

コンピュータグラフィックス特論Ⅱ

コンピュータグラフィックス特論Ⅱ

スライド 1

コンピュータグラフィックス特論Ⅱ

Microsoft PowerPoint - pr_12_template-bs.pptx

コンピューターグラフィックスS

大域照明計算手法開発のためのレンダリングフレームワーク Lightmetrica: 拡張 検証に特化した研究開発のためレンダラ 図 1: Lightmetrica を用いてレンダリングした画像例 シーンは拡散反射面 光沢面を含み 複数の面光 源を用いて ピンホールカメラを用いてレンダリングを行った

Microsoft Word - CGP_GM

といえる また で示した QEDSoft とは通常の Web ページにキャラクタを配置することのできる Web3D ソフトウェアであり 3DSMAX から変換することでキャラクタを作成することができるものである また Web3D としては Viewpoint も試みた その利用価値は高いことがわかっ

PowerPoint プレゼンテーション

pp2018-pp9base

XAML Do-It-Yourself シリーズ 第 12 回 3D グラフィックス -1-

コンピューターグラフィックスS

代数 幾何 < ベクトル > 1 ベクトルの演算 和 差 実数倍については 文字の計算と同様 2 ベクトルの成分表示 平面ベクトル : a x e y e x, ) ( 1 y1 空間ベクトル : a x e y e z e x, y, ) ( 1 1 z1

Fair Curve and Surface Design System Using Tangent Control

Microsoft Word - 26 【標準P】演習TN ArcGIS.doc

一方, 物体色 ( 色や光を反射して色刺激を起こすもの, つまり印刷物 ) の表現には, 減法混色 (CMY) が用いられる CMY の C はシアン (Cyn),M はマゼンタ (Mgent),Y はイエロー (Yellow) であり, これらは色の 3 原色と呼ばれるものである なお, 同じシア

Microsoft PowerPoint - [150421] CMP実習Ⅰ(2015) 橋本 CG編 第1回 幾何変換.pptx

コンピューターグラフィックスS

tc15_tutorial02

Microsoft PowerPoint P演習 第5回 当たり判定(2)【課題】.pptx

コンピュータグラフィックス第3回

情報処理学会研究報告 IPSJ SIG Technical Report 被写界深度に存在する主体物体の自動検出法の提案 萩原健太, 小枝正直 1 本研究では被写界深度に存在する物体の自動検出法の提案を提案する. 本手法を用いることにより,1 枚の静止画像中にある主体物体と非主体物体の分別が可能にな

<4D F736F F D2089A E838D815B838B B838082C582C D834F F08A7782D42E646F6378>

円筒面で利用可能なARマーカ

芸術科学会論文誌 Vol. 14, No. 6, pp (2015) 1 はじめに 1 枚の人物写真に対して半透明化処理を行う場合 人 物領域を切り抜いて空となった背景部分の補間を行うこ とが考えられるが 画像 被写体人物の遮蔽によって背景部分の情報は画像中 には存在しない 補間す

pp2019-pp10-base

Processingをはじめよう

pp2018-pp4base

HCI プログラミング 5 回目ウィンドウに画像を表示してみよう 今日の講義で学ぶ内容 画像の表示 画像のエフェクト 画像のビューポート指定 画像の表示 1 画像を表示してみましょう 画像の表示はクラス ImageView により管理されます ソースファイル名 :Sample5_1.java //

情報システム設計論II ユーザインタフェース(1)

数学 ⅡB < 公理 > 公理を論拠に定義を用いて定理を証明する 1 大小関係の公理 順序 (a > b, a = b, a > b 1 つ成立 a > b, b > c a > c 成立 ) 順序と演算 (a > b a + c > b + c (a > b, c > 0 ac > bc) 2 図

ToDo: 今回のタイトル

前回のあらすじ 物理演算ライブラリ chipmunk を使って チキンが地面に落ちるところまで

線形代数とは

アニメーションあり3 次元 CG アニメーションの CAVE への表示 藤本孝一 松本浩二 田島広太 高瀬祥平 井門俊治 埼玉工業大学工学部井門研究室 1, 目的 各種ツール プログラムで作成したモデル およびアニメーションの CAVE での表示を行う 2, 方法 AVE システムでの表示には今のと

pp2018-pp10base

ピクセル同期を利用した順不同半透明描画 (更新)

情報システム設計論II ユーザインタフェース(1)

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

<4D F736F F D A815B B A B2E646F6378>

Microsoft PowerPoint - 発表II-3原稿r02.ppt [互換モード]

13前期-bas_engineer.indd

教科 : 産業科目 : 情報基礎 Ⅱ 対象 :( 第学年組 ~ 組 )( 第 2 学年選択 ) 使用教科書なし使用副教材等自校作成教材 Ⅰ データベースシステムの概要 1 オリエンテーション Ⅰ-1 オリエンテーションデータベースの学習の意義や内容 学習の進め方 評価方法について理解する 評価の観点

Blender Cycles レンダラーでレイマーチングしてみよう OSL スクリプトを使った レイマーチング 第2版 作者 Twitter アカウント

テレコンバージョンレンズの原理 ( リアコンバーター ) レンズの焦点距離を伸ばす方法として テレコンバージョンレンズ ( テレコンバーター ; 略して テレコン ) を入れる方法があります これには二つのタイプがあって 一つはレンズとカメラ本体の間に入れるタイプ ( リアコンバーター ) もう一つ

第9回 「ポスト処理」

[ 学習動画 ] 一覧 学習の閲覧や質問の際にご利用ください 閲覧が終了した動画をチェックして 学習の進行状況を確認しましょう! Maya ベーシック講座 Chapter01 閲覧チェック 動画タイトル 時間 ( 計 4 時 19 分 ) 00. 3DCG ベーシック 約 10 分 00. 全体の概

Microsoft PowerPoint - ca ppt [互換モード]

情報工学実験Ⅲ

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

簡単な図面を書いてみよう 『 3D編 』

2018年度 岡山大・理系数学

ここまで進化した! 外観検査システムの今 表 2 2 焦点ラインスキャンカメラ製品仕様 項目 仕 様 ラインセンサ 4K ラインセンサ 2 光学系 ビームスプリッター (F2.8) ピクセルサイズ 7μm 7μm, 4096 pixels 波長帯域 400nm ~ 900nm 感度 可視光 : 量子

8. 自由曲線と曲面の概要 陽関数 陰関数 f x f x x y y y f f x y z g x y z パラメータ表現された 次元曲線 パラメータ表現は xyx 毎のパラメータによる陽関数表現 形状普遍性 座標独立性 曲線上の点を直接に計算可能 多価の曲線も表現可能 gx 低次の多項式は 計

パソコンシミュレータの現状

補足 中学で学習したフレミング左手の法則 ( 電 磁 力 ) と関連付けると覚えやすい 電磁力は電流と磁界の外積で表される 力 F 磁 電磁力 F li 右ねじの回転の向き電 li ( l は導線の長さ ) 補足 有向線分とベクトル有向線分 : 矢印の位

写真の編集 Photo Filtre7 その 1 1 基本的なアイコン デスクトップの Photo Filtre7 の ショートカットをクリックする テキストの挿入 ズームイン 開く 取り消し 透過色 画面解像度 バッチ処理 フルスクリーン ガンマ訂正 グレースケール シャープ 左右に反転 明るさ

Microsoft PowerPoint - 04.pptx

PowerPoint プレゼンテーション

数値計算で学ぶ物理学 4 放物運動と惑星運動 地上のように下向きに重力がはたらいているような場においては 物体を投げると放物運動をする 一方 中心星のまわりの重力場中では 惑星は 円 だ円 放物線または双曲線を描きながら運動する ここでは 放物運動と惑星運動を 運動方程式を導出したうえで 数値シミュ

デザイン戦略(コンピュータアニメーション) 2009年度春学期

江原卒論

07年1級_CG記述解答-3.indd

コンピュータグラフィックス演習 I 2012 年 5 月 21 日 ( 月 )5 限 担当 : 桐村喬 第 7 回モデリングの仕上げ 1 カメラワークとアニメーション 今日の内容 1. カメラワーク 2. シーンの設定 3. アニメーション 前回のテクスチャの紹介 1 / 10

人工知能入門

l l l

表紙2017

C3 データ可視化とツール

JTrimで「さくらんぼ《を描く[下巻]

情報システム設計論II ユーザインタフェース(1)

演算増幅器

12680 情報科学Ⅲ 情報メディア演習 情報機器の操作 [a] 担 当 者 加藤 周一 授 業 形 態 講義 コンピュータはハードウェアとソフトウェアがあって初めて我々に役に 立つ機器となる ハードウェアの原理 ソフトウェアのアルゴリズムに ついて述べる アルゴリズムについては実際に

Transcription:

Grahics with Processig 2019-12 レンダリング技術 htt://vilab.org 塩澤秀和 1

12.1 * 影付け 影の種類 (.158) 本影と半影 点光源や平行光ではくっきりした影 ( 本影 ) だけができる 光源に広がりがあると, 半影を含むソフトシャドウができる 光源 主な影付け方式 影の投影テクスチャマッピング いったん視点を光源に置き, 物体のシルエットを描画すると, 光源から見たその物体の影になる 視点は戻して, 影の画像を光源の位置から物体の下の地面などに投影テクスチャマッピングする 本影 半影 光源 影の画像を投射 光源が複数ある場合, それぞれの光 ( 影 ) を重ね合せればよいリアルタイムな影生成では基本的に本影部分を扱う 光源から見た影の画像 2

12.2 * 影付け ( 続き ) 影の表側 シャドウボリューム法 物体が光をさえぎってできる影の空間 ( シャドウボリューム ) を囲む 影ポリゴン を算出する 視点から見て表を向いている影ポリゴンの像から, 裏を向いている影ポリゴンの像を引くと, 視点から見た影が描画できる ステンシル ( 型抜き ) バッファ を用いると, 高速に実現できる 影の裏側 - 実際の影 = 光源 シャドウマップ法 (.159) (Z バッファを用いた 2 段階法 ) 視点を光源に置き,Z バッファだけを描画すると, 光の到達距離 S の分布図 ( シャドウマップ ) ができる 視点を戻し, 描画対象の 3D 座標から光源までの距離 L を計算し, シャドウマップ上の対応点の値 S と比較すると, 描画対象まで光が届いているか判定できる L>S なら影の中 S L 光源 光源から見たシャドウマップ ( 距離画像 ) 3

12.3 もっと単純な影の例 float x = 0, y = -200, z = -200; void draw() { backgroud(50, 50, 100); ersective(); camera(-150, -500, 500, 0, 0, 0, 0, 1, 0) ; directioallight(200, 200, 200, 0, 1, 0); ambietlight(128, 128, 128); z++; fill(0, 150, 0); begishae(quads); float w = 500; vertex(-w, 0, -w); vertex(-w, 0, w); vertex(w, 0, w); vertex(w, 0, -w); edshae(); // 本体の表示 ushmatrix(); fill(255); drawobjects(); omatrix(); // 縦方向に潰して真上からの影を作成 ushmatrix(); fill(0, 180); // 黒色 ( 半透明 ) traslate(0, -1, 0); // 地面の少し上 scale(1, 0.1, 1); // y 方向に潰す drawobjects(); omatrix(); void drawobjects() { traslate(x, y, z); rotatex(pi/3); rotatey(pi/6); box(100); 4

12.4 * 高品質レンダリング 目的別レンダリング リアルタイムレンダリング 3Dゲーム ユーザが操作 理想は60fs, 最低限 10fs 高品質レンダリング 静止画, 映画 事前に 撮影 やわらかい陰影やガラスの表現 レイトレーシング法 + 大域照明大域照明モデル (.183) (Global Illumiatio: GI) 間接光まで含む照明計算 単純な環境光モデルではなく, 間接光をより精密に計算する 特に室内の陰影がより自然 ラジオシティ, フォトンマッピング フリーソフトによるレンダリングの例 POV-Ray htt://www.ovray.org Hall of Fame Bleder+Yafray htt://www.bleder.org Feature & Gallery htt://www.yafaray.org Gallery Suflow htt://suflow.sourceforge.et Gallerly ( 開発終了?) Art of Illusio htt://www.artofillusio.org Art Gallery 5

12.5 * レイトレーシング (.135) レイトレーシング ( 光線追跡 ) 法 概要 画面の各画素に届く光線 ( レイ ) を視点から逆方向に追跡する 視点から, 各画素に対応するレイ ( 半直線 ) を 飛ばす レイが物体と交差 ( 衝突 ) したら, 材質と照明から画素の色を求める 影を描画する場合, 衝突点から光源にレイを飛ばして判定する 鏡面反射, 透過 屈折を扱う場合, レイを分岐して再帰的に追跡する特徴 隠面消去や影付けが容易 透明, レンズ, 映り込み等も再現 映像作品 ( 映画等 ) では一般的まだリアルタイム処理には不向き 視点 投影面 レイ レイ 光線の分岐 元をたどる 光源 拡散反射を計算 反射 影の判定 鏡面反射を追跡 元をたどる 透過 屈折 6

12.6 レイを飛ばす処理の基本 // レイトレーシングの基本 ( レイキャスティング ) // によるレイと球の交差判定の例 imort static rocessig.core.pvector.*; void setu() { size(600, 600); oloo(); // 視点座標系における球の中心と半径 PVector ceter = ew PVector(0, 0, -10); float r = 1.0; // 照明 ( 方向光 ) の方向ベクトル PVector light = ew PVector(1, 1, -3).ormalize(); void draw() { // 全ピクセルに対し, レイを飛ばして画面描画 loadpixels(); for (it x = 0; x < width; x++) for (it y = 0; y < height; y++) ixels[y * width + x] = raycast(x, y); udatepixels(); color raycast(it x, it y) { // 視点座標系で視点 ( 原点 ) の前にスクリーンを想定 float scrx = (x * 2.0 - width) / width; float scry = (y * 2.0 - height) / height; float scrz = -2.0; // 視点から仮想スクリーンの点の方向にレイを飛ばす PVector ray = ew PVector(scrX, scry, scrz); ray.ormalize(); // レイの延長線上で球の中心に最も近づく点を求める PVector earest = mult(ray, ceter.dot(ray)); // その点が球の内側なら交差あり ( 効率優先の計算式 ) float d2 = r * r - sub(earest, ceter).magsq(); if (d2 > 0) { // 球面上の交点とそこでの法線ベクトルを求める PVector = sub(earest, mult(ray, sqrt(d2))); PVector = sub(, ceter).ormalize(); // ランバート反射によるシェーディング計算 float f = -.dot(light); if (f > 0) retur color(f * 255); retur color(0); 7

12.7 レイを飛ばす処理の基本 ( 補足 ) 12.6 の図解 PVector クラス 方向光 light 球 ceter スクリーン r earest ceter 光線 earest d2 scrx, scry, scrz コンストラクタ v = PVector(x, y, z) 加算 減算 スカラー倍 内積 大きさ ( ノルム ) ノルムの 2 乗 正規化 v.add(u) w = PVector.add(v, u) v.sub(u) w = PVector.sub(v, u) v.mult(s) w = PVector.mult(v, s) s = v.dot(u) s = v.mag() s = v.magsq() v.ormalize() O 視点 ray z x Java: 静的インポート imort static クラス名.*; 静的フィールド / メソッド利用時に クラス名. が省略可能になる 8

12.8 * フォトンマッピング (.187) フォトン (Photo) マッピング 概要 光源から出る大量の光子を考え, その軌跡をシミュレーションする すると, シーン全体の光の分布 ( 間接光 ) が概算できる この間接光を環境光の代わりに使って, レイトレーシングを行う特徴 レンズなどの集光現象 ( コースティックス ) が表現できる 逆方向のレイトレーシングといえ, レイトレーシング法と相性がよい 着想は簡単だが, アルゴリズムは複雑で膨大な時間がかかる Wikiedia 計算された光子の分布 9

12.9 * ラジオシティ法 (.184) ラジオシティ (Radiosity) 法 概要 ポリゴンをパッチ ( 断片ポリゴン ) に分割する 2つのパッチの位置と向きの関係から, 光の相互伝達率 ( フォームファクタ ) を計算する 全パッチ間での光エネルギーの放射発散の平衡状態を求める ラジオシティ方程式 (.158) J B > = E > + ρ > G F >B B B BHI シーン全体のパッチ数 B > パッチiの光の放射量 ( ラジオシティ ) E > パッチiの発光量 ρ > パッチiの反射率 F >B フォームファクタ (F >B = F B> ) Wikiedia 巨大な 連立一次方程式 になる コンピュータによる数値計算 パッチ j F >B B B 柔らかい影や壁の色の影響が表現されている パッチ i B > 10

12.10 その他のレンダリング技術 ぼかし ( ボケ ) 系 アンチエイリアシング (.255) ドットのギザギザが目立たないように, 輪郭を中間色でぼかす フォグ ( 霧 ) 水蒸気やチリなどによる空気の 濁り を再現する 遠くにあるものがかすんでいき, 色が落ちていく効果を与える 被写界深度 (DOF)(.301) レンズの効果を再現し, ピントが合っていないところをぼかすモーションブラー 速く動くものに見える残像をわざと表示する 軌跡の画像を重ね合わせる イメージベーストレンダリング 画像をCGに利用 (.171) CGと画像処理技術との融合 テクスチャマッピングの応用 ( 撮影地点から画像を投影など ) イメージベーストライティング (IBL): 画像を光源として利用 環境マッピング : 周辺の景色の映り込みを表現 イメージベーストモデリング : 写真から3Dモデルを自動生成実写とCGの融合 実写に CG 映像を合成 (AR), または,CG に実写映像を合成 自由視点画像 : 限られた台数で撮影したカメラ映像から, 自由な視点からの映像を合成 11

12.11 * 非写実的レンダリング (.309) ノンフォトリアリスティック ( 非写実的 ) レンダリング (NPR) 概要 現実の再現を目的としないCG 例 ) 油絵風, 手書きタッチの再現, 製図風,2 次元アニメ, 芸術作品背景 写実的 ( フォトリアリスティック ) な CG 技術はかなり完成 漫画 アニメーションでの利用 芸術などへの CG 利用の広がり Bleder Freestyle フリーの3DCGソフトウェア Blederに付属のNPR 機能 htt://www.bleder.org/maual/ reder/freestyle/itroductio.html Wikiedia Wikiedia 12

12.12 演習課題 Processig でレイトレーシング joos-rederer Suflowを利用するライブラリ github.com/joohyublee/ joos-rederer/ コンパイル済み vilab.org/ cg2019/joos102.zi ZIPを展開し,joesrederer フォルダをProcessigフォルダの中のlibrariesの中にコピー 自由課題 12.12 のプログラムを改造し, 適当な図形を表示させてみよ または,12.6 を改造し, 複数の球を表示させてみよ 今回の課題は提出しなくてよい imort joos.joosrederer; JoosRederer jr; void setu() { size(800, 600, P3D); jr = ew JoosRederer(this); void draw() { jr.begirecord(); camera(0, 0, 120, 0, 0, -1, 0, 1, 0); ersective(pi/4, 4.0/3.0, 10, 1000); jr.backgroud("corell_box", 100, 100, 100); jr.backgroud("gi_istat"); 色 jr.fill("diffuse", 255, 255, 255); traslate(0,10,-10); rotatey(-pi/8); rotatex(-pi/8); box(20); jr.edrecord(); jr.dislayredered(true); レンダリング結果を保存 図形描画 R キーでレンダリング開始 void keypressed() { if (key == 'r' key == 'R') jr.reder(); 13