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

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

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

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

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

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

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

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

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

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

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

Fair Curve and Surface Design System Using Tangent Control

Microsoft PowerPoint - info_eng3_05ppt.pptx

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

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

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

免許法認定公開講座: コンピュータグラフィックス

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

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

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

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

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

演算増幅器

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

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

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

スライド 1

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

モデリングとは

謗域・ュ逕ィppt

表紙2017

スライド 1

Microsoft PowerPoint - Salome-Meca.pptx

イントロダクション

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

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

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

tc15_tutorial02

Computer Graphics

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

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

CG

Display 表示の初期化が CAVE 表示の初期化に置き換わり CAVE 用のプログラムに書き換えることが出来る 表 2 1 画面 (Windows LINUX IRIX) 用の OpenGL #include<stdio.h> #include<windows.h> #include<gl/g

PowerPoint プレゼンテーション

情報科学Ⅲ 授業コード 情報メディア演習 情報機器の操作 [a] 授業コード 担当者 水野博 履修可能最小学年 Ⅱ 開講期 1 期 単位 2 受講者指定 授 業 形 態 講義 担当者 加藤周一 開講期 1 期 授 業 形 態 講義 演習 単位 2 受講者指定 コンピュータはハ

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

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

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

課題情報シート テーマ名 : AR を利用した高知県内 PR アプリの制作 担当指導員名 : 岡本真一実施年度 : 25 年度施設名 : 四国職業能力開発大学校附属高知職業能力開発短期大学校課程名 : 専門課程訓練科名 : 電子情報技術科課題の区分 : 総合制作実習課題学生数 : 2 時間 : 12

Microsoft Word - report_public.doc

目次 1. アニメーションの仕組み 3 2. ワードアートでムービーのタイトルを作成 7 3. まとめ 課題にチャレンジ 19 [ アニメーション ] 機能 PowerPoint に搭載されている [ アニメーション ] 機能を使用すると 文字や図形にアニメーション ( さまざまな動きや

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

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

pp2018-pp9base

CG

CG

NB

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

C#の基本

Microsoft Word - povray.docx

2008 年度下期未踏 IT 人材発掘 育成事業採択案件評価書 1. 担当 PM 田中二郎 PM ( 筑波大学大学院システム情報工学研究科教授 ) 2. 採択者氏名チーフクリエータ : 矢口裕明 ( 東京大学大学院情報理工学系研究科創造情報学専攻博士課程三年次学生 ) コクリエータ : なし 3.

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

スライド 1

Microsoft Word - BentleyV8XM_GoogleEarth.docx

1/2

Microsoft Word - CGP_GM

人間の視野と同等の広視野画像を取得・提示する簡易な装置

OCW-iダランベールの原理

今日の目的 電子工作や電子基板でオリジナル製品を作っていて 外装も自分で作りたいなあと思っているメイカーズの方や やっぱり3D 造形に興味がある各種デザイナーの方向けに 出来る限りローコストで3D 造形をはじめられる方法を初心者でもわかるように基本から30 分でご説明します メイカーズとデザイナーの

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

EnSightのご紹介

情報科学Ⅲ 授業コード 情報メディア演習 情報機器の操作 [a] 授業コード 担当者 水野博 開講期 1 期 履修可能最小学年 Ⅱ 担当者 加藤周一 開講期 1 期 授 業 形 態 講義 単位 2 受講者指定 授 業 形 態 講義 演習 単位 2 受講者指定 コンピュータはハ

Microsoft Word - 操作マニュアル(PowerPoint2013)

学習のライフサイクルを支援する史跡学習システムの開発 松江工業高等専門学校 藤井諭後田真希南葉恵美子

Microsoft PowerPoint - pr_12_template-bs.pptx

Microsoft Word - 操作マニュアル(PowerPoint2010).doc

CG

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

contents 01

< F2D D E6A7464>

A'sデザイナー2.0機能紹介資料

目次 1. アニメーションの軌跡の概要と仕組み 3 2. パノラマ写真にアニメーションの軌跡を設定 まとめ 課題にチャレンジ 19 レッスン内容 アニメーションの軌跡の概要と仕組み アニメーションの軌跡とは スライドに配置したオブジェクト ( テキストや図形 画像など ) を

目次 1. CAD インターフェイス (3D_Analyzer&3D_Evolution) ユーザーインターフェイス機能強化 (3D_Analyzer&3D_Evolution)... 3 レポート... 3 クリッピング機能... 4 言語... 4 表示オプション

Microsoft Word - 415Illustrator

(Microsoft PowerPoint -

Microsoft Word - P doc

Wordの学習

CG

モデリングとは

OHP シートの作成 OHP でプレゼンテーションをする際に必要な OHP シートを作成できます 配布資料の作成プレゼンテーションの参加者に配布する資料を簡単に作成できます 参加者はメモ等この資料に書き込むことができ 理解を深めることができます 発表者用資料の作成プレゼンテーション中に発表者が参考に

Shade 13.2 アップデータ

Microsoft PowerPoint - 9.pptx

PowerPoint2007基礎編

Microsoft PowerPoint - 9.pptx

OpenGL & GLUTの基本関数の説明

Sample 本テキストの作成環境は 次のとおりです Windows 7 Home Premium Microsoft Excel 2010( テキスト内では Excel と記述します ) 画面の設定( 解像度 ) ピクセル 本テキストは 次の環境でも利用可能です Windows

Microsoft Word - CIM用語集_H25.4_

Microsoft Word - thesis.doc

使用説明書(Macintosh)

Mapmakerfor の手順下絵を準備 作者の設定した大きさで作成する場合 下絵にする地図を挿入 トリミングと大きさの調整 大きさを調整した画像を保存 下絵を背景に設定 作成画面の大きさを調整 1 自分で用意した下絵を背景にする場合 下絵を背景に設定 作成画面の大きさを調整 画像が大きい場合シート

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

Transcription:

コンピューターグラフィックス S 第 2 回コンピュータグラフィックスの要素技術 システム創成情報工学科尾下真樹 2018 年度 Q2

今回の内容 前回の復習 コンピュータグラフィックスの歴史と応用 3 次元グラフィックスの要素技術 3 次元グラフィックス プログラミング

教科書 ( 参考書 ) コンピュータグラフィックス CG-ARTS 協会編集 出版 (3,200 円 ) 1~5 章の概要 ビジュアル情報処理 -CG 画像処理入門 - CG-ARTS 協会編集 出版 (2,500 円 ) 1~5 章の概要

教科書 ( 参考書 ) 3DCG アニメーション 栗原恒弥安生健一著 技術評論社出版 (2,980 円 ) 3 次元 CG の基礎と応用 千葉則茂土井章男著 サイエンス社出版 (1,900 円 ) コンピュータグラフィックスの基礎知識 塩川厚著 オーム社出版 (1,800 円 ) 講義スライドには 一部 これらの参考書から引用した図を使用

前回の復習

コンピュータグラフィックス コンピュータグラフィックス とは? 広い意味では コンピュータを使って画像 映像を扱う技術の総称 狭い意味では 3 次元の形状データをもとに 現実世界のカメラをシミュレートすることによって 画像 映像を生成する技術 ( 3 次元グラフィックス )

2 次元グラフィックス ピクセルの集まりによる画像の表現 光の3 原色による色の表現 画像の解像度 2 次元グラフィックスを扱うソフトウェア ペイント系 ドロー系 レタッチ系

3 次元グラフィックス CG 画像を生成するためのしくみ 仮想空間にオブジェクトを配置 仮想的なカメラから見える映像を計算で生成 オブジェクトやカメラを動かすことでアニメーション 生成画像 オブジェクト カメラ 光源

コンピュータグラフィックスの概要 コンピュータグラフィックスの主な技術 いかに自然な画像を高速に計算するか 生成画像 オブジェクト オブジェクトの作成方法 オブジェクトの形状表現 表面の素材の表現 動きのデータの生成 画像処理 カメラから見える画像を計算 光源 光の効果の表現

コンピュータグラフィックスの分類 2 次元グラフィックス 画像データ (2 次元 ) を扱う 画像処理 符号化などの技術 3 次元グラフィックス シーンデータ (3 次元 ) 画像データ (2 次元 ) 出力データは あくまで 2 次元になることに注意

アニメーション 2 次元アニメーション 少しずつ変化する画像を連続的に生成することで アニメーションになる 3 次元アニメーション 動きのデータを与えて 連続画像を生成

コンピュータグラフィックスの 歴史と応用

コンピュータグラフィックスの歴史 CG 研究の始まり (1960 年代 ~) Sutherland が Sketchpad システムを開発 (1963) 世界初のグラフィカルユーザインターフェース Ivan E. Sutherland 3 次元グラフィックス技術の研究が始まる

コンピュータグラフィックスの歴史 CG 研究の始まり (1960 年代 ~) T. Whitted がレイトレーシングを発表 (1980) 複数のグループによりラジオシティ法が開発される (1983) レイトレーシング ラジオシティ法は 光の影響を計算することによって写実的な CG を計算するための手法 CG 画像 アニメーションが一般に使われ始める

コンピュータグラフィックスの歴史 CG が TV や映画で利用され始める (1980 年 ~) 最初は TV 番組のタイトルやアイキャッチの文字などの短いカットにCGが使われる 映画への応用 ターミネータ 2 (1991) ジュラシックパーク (1993) タイタニック (1997) スターウォーズ (2001) など 実写 +CG の合成 Terminator 2, 1991, Carolco

映画における CG の利用 映画などでは フル CG よりも 実写 +CG の合成が多い 実写では実現できないような映像のみを CG で表現 我々の身近にある物 特に人間などは CG で再現することが難しい 少しでも不自然なところがあるとすぐに目立つ あまり身近にないような物 実写では絶対に撮影できないような物を CG で作り出す 実写で撮影可能なものには CG は使わず 実写と CG を合成

CG と実写の使い分け CG(3D グラフィックス ) 制作には労力がかかる 存在しないものも表現可 人間などの再現は難しい 実写 実物をそのまま撮影できる 人間などは実写の方が向いている Jurassic Park III Universal Pictures 両者をうまく使い分けて撮影 生成し 最終的に合成して映像を作る方法が一般的

コンピュータグラフィックスの歴史 フル CG 映画の製作 (1990 年代後半 ~) 全ての映像を CG だけで製作する試み ToyStory (1995), Shrek (2001), Monsters Inc.(2002) Final Fantasy, The Movie (2001) Toy Story 2, 1999 Disney Pixar Final Fantasy, 2001 SQUARE

実写と CG の融合 CG によるリアルな人物の表現 (2000 年代 ~) イメージベースド レンダリング ( モデリング ) 実際の人間のデータを計測し CGに利用 実写とCGの融合 Matrix Warner Bros. Spider-Mann 2 Sony Pictures

セルアニメーションと CG の融合 ノンフォトリアリスティック レンダリング 非写実的な手描き風の画像を CG で生成する技術 AKB0048 サテライト 2013 ジョジョの奇妙な冒険 神風動画 2013 CG WORLD 2013 年 3 月号

立体映像 右目用 左目用の映像を同時に見せることで立体感を出す 技術的には昔からあったが 最近になって広く普及しつつある Avatar, 2009 20th Century Fox

立体映像 右目用 左目用の映像を同時に見せることで立体感を出す 左目用画像 右目用画像 Avatar, 2009 20th Century Fox

立体映像 右目用 左目用の映像を同時に見せることで立体感を出す 実現方法 メガネを使う方法 ( 赤青メガネ 偏光メガネ シャッターメガネ ) メガネが不要な方法 ヘッドマウントディスプレイを使う方法 映像の制作方法 2 台のカメラで撮影 (or CG 生成 ) 映像に擬似的に奥行きを付与 Avatar, 2009 20th Century Fox

コンピュータアニメーションの応用 オフライン アニメーション 映画や TV など あらかじめ登場人物の動きが決まっている オンライン ( リアルタイム ) アニメーション コンピュータゲームなど ユーザの操作に応じてダイナミックに動きを変化させる必要がある 自然な動きを生成するのは非常に難しい VirtuaFighter, 1993 SEGA

オンライン アニメーションの応用 コンピュータゲーム 仮想スタジオ 仮想的なセットの中で撮影 仮想的なキャラクタと実写のキャラクタを合成 ウゴウゴルーガ, 1993 フジ TV マルチユーザ仮想現実環境 ゲーム (Final Fantasy 等 ) コミュニケーション 教育 トレーニング Final Fantasy Online 2002, SQUARE

コンピュータグラフィックスの応用 映画 コンピュータゲーム CAD シミュレーション 仮想人間 ( ヴァーチャル ヒューマン ) 可視化 ( ビジュアライゼーション ) ユーザインターフェース

CAD CAD (Computer Aided Design) コンピュータによる設計支援

CAD の利点 デザイン作業が簡単 自由にコピー やり直しなどができる デザイン結果が CG で確認できる クライアントにアピールしやすい CG であれば非専門家にも分かりやすい データの管理 取り扱いがしやすい CAM (Computer Aided Manufacturing) コンピュータによる製造支援 現在 自動車業界などの製造業ではデータのデジタル化が急速に進められつつある

CAD の利点 いろんなデザインを簡単に比較できる 日経 CG 2000 年 7 月号 p143

CAD の利点 デザインした製品の性能 使いやすさなどを計算機上で評価できる CAE (Computer Aided Engineering) コンピュータによる技術的 工学的な設計の支援 構造解析 空力 破壊シミュレーションなど 日経 CG 1999 年 10 月号 p142 日経 CG 2000 年 2 月号 p150

シミュレーション シミュレーションはコンピュータグラフィックスと非常に近い技術 現実の物体になるべく近いモデルを計算機上に構築するという点で共通 シミュレーションでは 動きのモデルや 動力学的情報 ( 質量 慣性テンソル 摩擦係数 ) も必要になる シミュレーションの結果を利用者に表示するためにも通常 CGが使われる

各種シミュレーション技術 車 飛行機などの性能予測 衣服デザイン ヨットの空力解析日経 CG 2000 年 3 月号 p117 衣服シミュレーション digital fashion, inc.

ヴァーチャル ヒューマン 仮想的な人間を計算機上に作り出す技術 骨格 筋肉 内臓などもできるだけ正確にモデル化 医学などにも活用 アニメーションに応用すれば よりリアルな皮膚の変形などがシミュレートできる 脳 ( 思考 ) のモデル化は可能? Visible Human Project 筋骨シミュレーション SIMM 日経 CG 2000 年 3 月号 p120

コンピュータグラフィックスの応用 映画 コンピュータゲーム CAD シミュレーション 仮想人間 ( ヴァーチャル ヒューマン ) 可視化 ( ビジュアライゼーション ) ユーザインターフェース

可視化 ( ビジュアライゼーション ) 人間の目に見えない情報を CG を使って図形にすることによって 人間が理解しやすくするための技術 可視化の技術は大きく 2 種類に分けられる 科学技術計算の可視化 (Scientific Visualization) 3 次元空間の実体に関連した情報を可視化 情報可視化 (Information Visualization) 比較的最近になって研究されている技術 3 次元空間とはあまり関係のない抽象的情報を可視化

科学技術計算結果の可視化 シミュレーション結果などを可視化 流れ 電界 気象情報など ヨットの空力解析日経 CG 2000 年 3 月号 p117 医療機器中の血液の流れ日経 CG 2000 年 9 月号 p177

情報可視化 大量の情報をいかに分かりやすく見せるか ツリー構造 グラフなどを利用 Spotfire XGobi[Becker96] INFOVISOR[NTT99] ConeTree [Robertson91]

ユーザーインターフェース グラフィックスを用いることでユーザとコンピュータの間の情報交換を助ける 計算機の情報を分かりやすくユーザに伝える ユーザの意図をなるべく簡単な操作でコンピュータに伝える 最近は 見た目の美しさにも力が注がれつつある ユーザーインターフェース

コンピュータグラフィックスの応用 映画 コンピュータゲーム CAD シミュレーション 仮想人間 ( ヴァーチャル ヒューマン ) 可視化 ( ビジュアライゼーション ) ユーザインターフェース

3 次元グラフィックスの要素技術

3 次元グラフィックスのしくみ ( 復習 ) CG 画像を生成するための方法 仮想空間にオブジェクトを配置 仮想的なカメラから見える映像を計算で生成 オブジェクトやカメラを動かすことでアニメーション 生成画像 オブジェクト カメラ 光源

3 次元グラフィックスの要素技術 コンピュータグラフィックスの主な技術 オブジェクトの作成方法 生成画像 オブジェクト オブジェクトの形状表現 表面の素材の表現 動きのデータの生成 カメラから見える画像を計算 光源 光の効果の表現

グラフィックスライブラリの利用 グラフィックスライブラリ (OpenGL など ) 要素技術を簡単に利用できる 要素技術の仕組みは理解する必要がある 詳しくは 本講義の演習で説明 ( 次回以降 ) 自分のプログラム (Java や C 言語など ) 必要な情報を設定 グラフィックスライブラリ (OpenGL) 画面描画

モデリング モデリング レンダリング 座標変換 シェーディング マッピング アニメーション 生成画像 オブジェクトの作成方法オブジェクトの形状表現オブジェクト表面の素材の表現動きのデータの生成 光源カメラから見える画像を計算光の効果の表現

モデリング モデリング (Modeling) コンピュータ上で 物体の形のデータを扱うための技術 形状の種類や用途によって さまざまな表現方法がある 形状データの表現方法だけでなく どのようにしてデータを作るかという 作成方法も重要になる

各種モデリング技術 サーフェスモデル ポリゴンモデル 曲面パッチ サブディビジョンサーフェス ソリッドモデル 境界表現 CSG モデル その他のモデル 詳しくは 後日の講義で説明 ポリゴンモデル CSG モデル 曲面パッチ

ポリゴンモデル 物体の表面の形状を 多角形 ( ポリゴン ) の集まりによって表現する方法 最も一般的なモデリング技術 本講義の演習でも ポリゴンモデルを扱う

ポリゴンモデルの表現例 四角すいの例 5 個の頂点と 6 枚の三角面 ( ポリゴン ) によって表現できる 各三角面は どの頂点により構成されるかという情報を持つ y 三角面 V3 z V4 V0 (0.0, 0.8, 0.0) V1 V2 x (1.0, -0.8, 1.0) { V0, V3, V1 } { V0, V2, V4 } { V0, V1, V2 } { V0, V4, V3 } { V1, V3, V2 } { V4, V2, V3 }

ポリゴンモデルの表現例 ( 続き ) プログラムでの表現例 ( 配列による表現 ) 頂点座標の配列 ポリゴンを構成する頂点番号の配列 const int num_pyramid_vertices = 5; const int num_pyramid_triangles = 6; // 頂点数 // 三角面数 // 角すいの頂点座標の配列 float pyramid_vertices[ num_pyramid_vertices ][ 3 ] = { { 0.0, 1.0, 0.0 }, { 1.0,-0.8, 1.0 }, { 1.0,-0.8,-1.0 }, {-1.0,-0.8, 1.0 }, {-1.0,-0.8,-1.0 } }; // 三角面インデックス ( 各三角面を構成する頂点の頂点番号 ) の配列 int pyramid_tri_index[ num_pyramid_triangles ][ 3 ] = { { 0,3,1 }, { 0,2,4 }, { 0,1,2 }, { 0,4,3 }, { 1,3,2 }, { 4,2,3 } };

モデリングのまとめ コンピュータ上で 物体の形のデータを扱うための技術 さまざまなモデリングの方法がある ポリゴンモデルが一般的 多角形 ( 面 ) の集まりで形状を表す ポリゴンモデルは 配列などの形で プログラムで表現することができる

レンダリング モデリング レンダリング 座標変換 シェーディング マッピング アニメーション 生成画像 オブジェクトの作成方法オブジェクトの形状表現オブジェクト表面の素材の表現動きのデータの生成 光源カメラから見える画像を計算光の効果の表現

レンダリング レンダリング (Rendering) カメラから見える画像を計算するための方法 使用するレンダリングの方法によって 生成画像の品質 画像生成にかかる時間が決まる 生成画像 オブジェクト 光源 カメラ

レンダリングの重要なポイント 隠面消去をどのようにして実現するか? 見えるはずのない範囲を描画しない処理 普通に存在する面を全て描いたら 見えるはずのない面まで表示されてしまう この球は手前の直方体で隠れるため描画しない 参考書 コンピュータグラフィックスの基礎知識 図 2-21

各種レンダリング手法 主なレンダリング手法 Zソート法 Zバッファ法 スキャンライン法 レイトレーシング法 隠面消去の実現方法が異なる 低画質 高速度 高画質 低速度 Zソート法 Zバッファ法スキャンライン法レイトレーシング法

Z バッファ法 Z バッファ法 描画を行う画像とは別に 画像の各ピクセルの奥行き情報を持つ Zバッファを使用する コンピュータゲームなどのリアルタイム描画で 最も一般的な方法 ( 本講義の演習でも使用 ) Z バッファの値 ( 手前にあるほど明るく描画 )

Z バッファ法による隠面消去 Z バッファ法による面の描画の例 面を描画するとき 各ピクセルの奥行き値 ( カメラからの距離 ) を計算して Zバッファに描画 同じ場所に別の面を描画するときは すでに描画されている面より手前のピクセルのみを描画 Z バッファ

プログラムの例 1 枚の三角形を描画するプログラムの例 各頂点の頂点座標 法線 色を指定して描画 glbegin( GL_TRIANGLES ); glcolor3f( 0.0, 0.0, 1.0 ); glnormal3f( 0.0, 0.0, 1.0 ); glvertex3f(-1.0, 1.0, 0.0 ); glvertex3f( 0.0,-1.0, 0.0 ); glvertex3f( 1.0, 0.5, 0.0 ); glend(); (-1,1,0) y (0,-1,0) (1,0.5,0) x z

座標変換 モデリング レンダリング 座標変換 シェーディング マッピング アニメーション 生成画像 オブジェクトの作成方法オブジェクトの形状表現オブジェクト表面の素材の表現動きのデータの生成 光源カメラから見える画像を計算光の効果の表現

座標変換 座標変換 (Transformation) x 行列演算を用いて ある座標系から 別の座標系に 頂点座標やベクトルを変換する技術 z カメラから見た画面を描画するためには モデルの頂点座標をカメラ座標系 ( 最終的にはスクリーン座標系 ) に変換する必要がある y y モデル座標系カメラ座標系スクリーン座標系 x z y z x

アフィン変換 アフィン変換 ( 同次座標系変換 ) 4 4 行列の演算によって 3 次元空間における回転 平行移動 拡大縮小などの処理を計算 同次座標系 (x, y, z, w) の4 次元座標値によって扱う 3 次元座標値は (x/w, y/w, z/w) で計算 ( 通常は w = 1) R00Sx R01 R02 Tx x x R10 R11Sy R12 Ty y y R20 R21 R22Sz T z z z 0 0 0 1 w w' 非常に重要な考え方 ( 詳しくは後日の講義で説明 )

変換行列の例 変換行列の詳しい使い方の説明は 後日 z y x 15 camera_pitch z y x (0,1,0) ポリゴンを基準とする座標系での頂点座標 1 0 0 0 1 0 0 0 1 0 0 0 x x 0 1 0 0 0 cos camera_pitch sin camera_pitch 0 0 1 0 1 y y 0 0 1 15 0 sin camera_pitch cos camera_pitch 0 0 0 1 0 z z 0 0 0 1 0 0 0 1 0 0 0 1 1 1 カメラから見た頂点座標 ( 描画に使う頂点座標 )

プログラムの例 適切な変換行列を設定することで カメラや物体の位置 向きを自在に変更できる 1 0 0 0 1 0 0 0 1 0 0 0 x x 0 1 0 0 0 cos camera_pitch sin camera_pitch 0 0 1 0 1 y y 0 0 1 15 0 sin camera_pitch cos camera_pitch 0 0 0 1 0 z z 0 0 0 1 0 0 0 1 0 0 0 1 1 1 // 変換行列を設定 ( ワールド座標系 カメラ座標系 ) glmatrixmode( GL_MODELVIEW ); glloadidentity(); gltranslatef( 0.0, 0.0, - 15.0 ); glrotatef( - camera_pitch, 1.0, 0.0, 0.0 ); gltranslatef( 0.0, 1.0, 0.0 );

シェーディング モデリング レンダリング 座標変換 シェーディング マッピング アニメーション 生成画像 オブジェクトの作成方法オブジェクトの形状表現オブジェクト表面の素材の表現動きのデータの生成 光源カメラから見える画像を計算光の効果の表現

シェーディング シェーディング (Shading) 光による効果を考慮して 物体を描く色を決めるための技術 現実世界では 同じ素材の物体でも 光の当たり方によって見え方は異なる コンピュータグラフィックスでも このような効果を再現する必要がある

光のモデル 光を影響をいくつかの要素に分けて計算 局所照明 ( 光源からの拡散 鏡面反射光 ) 大域照明 ( 環境光 映り込み 透過光 ) 光源 拡散 鏡面反射光 ( 光源から来る光 ) 環境光 ( 周囲から来る光 ) 鏡面反射光 ( 映り込み ) 透過光

シェーディングの効果の例 大域照明を考慮して描画することで より写実的な画像を得ることができる 映り込み ( 大域照明 ) を考慮基礎と応用図 8.9 環境光 ( 大域照明 ) を考慮基礎と応用図 9.1, 9.2

シェーディングの効果の例 大域照明を考慮して描画することで より写実的な画像を得ることができる 映り込み ( 大域照明 ) を考慮基礎と応用図 8.9 環境光 ( 大域照明 ) を考慮基礎と応用図 9.1, 9.2

プログラムの例 光源の位置や色を設定すると OpenGL が自動的に光の効果を計算 float light0_position[] = { 10.0, 10.0, 10.0, 1.0 }; float light0_diffuse[] = { 0.8, 0.8, 0.8, 1.0 }; float light0_specular[] = { 1.0, 1.0, 1.0, 1.0 }; float light0_ambient[] = { 0.1, 0.1, 0.1, 1.0 }; gllightfv( GL_LIGHT0, GL_POSITION, light0_position ); gllightfv( GL_LIGHT0, GL_DIFFUSE, light0_diffuse ); gllightfv( GL_LIGHT0, GL_SPECULAR, light0_specular ); gllightfv( GL_LIGHT0, GL_AMBIENT, light0_ambient ); glenable( GL_LIGHT0 ); glenalbe( GL_LIGHTING );

マッピング モデリング レンダリング 座標変換 シェーディング マッピング アニメーション 生成画像 オブジェクトの作成方法オブジェクトの形状表現オブジェクト表面の素材の表現動きのデータの生成 光源カメラから見える画像を計算光の効果の表現

マッピング マッピング (Mapping) 物体を描画する時に 表面に画像を貼り付けて描画する技術 複雑な形状データを作成することなく 細かい模様などを表現できる 基礎知識図 3-19 基礎と応用図 5.2

高度なマッピング 凹凸のマッピング ( バンプマッピング ) 基礎と応用図 5.9 周囲の風景のマッピング ( 環境マッピング ) CG 制作独習事典 p.17

アニメーション モデリング レンダリング 座標変換 シェーディング マッピング アニメーション 生成画像 オブジェクトの作成方法オブジェクトの形状表現オブジェクト表面の素材の表現動きのデータの生成 光源カメラから見える画像を計算光の効果の表現

アニメーション 動きのデータをもとに アニメーションを生成 対象や動きの種類に応じてさまざまな動きの作成方法がある キーフレームアニメーション 物理シミュレーション モーションキャプチャ など

3 次元グラフィックスの要素技術 モデリング レンダリング 座標変換 シェーディング マッピング アニメーション 生成画像 オブジェクトの作成方法オブジェクトの形状表現オブジェクト表面の素材の表現動きのデータの生成 光源カメラから見える画像を計算光の効果の表現

3 次元グラフィックス プログラミング

3 次元グラフィックス プログラミング ここまでに説明した技術を実現するようなプログラムを作成することで 3 次元グラフィックスを描画できる 全てを自分で実現しようとすると 非常に多くのプログラムを書く必要がある 現在は OpenGL のような 3 次元グラフィックスライブラリが存在するので これらのライブラリを利用することで 3 次元グラフィックスを扱うプログラムを 比較的簡単に作成できる

グラフィックスライブラリの利用 自分のプログラムと OpenGL の関係 自分のプログラム (Java や C 言語など ) レンダリングの設定 形状データや変換行列を入力 グラフィックスライブラリ (OpenGL) 画面描画 レンダリング (+ 座標変換 シェーディング マッピング ) などの処理を行ってくれる

グラフィックスライブラリの利用 自分のプログラムと OpenGL の関係 自分のプログラム (Java や C 言語など ) レンダリングの設定 形状データや変換行列を入力 グラフィックスライブラリ (OpenGL) 画面描画 最低限 これらの方法だけ学べば プログラムを作れる これらの処理は 自分でプログラムを作る必要はないが しくみは理解しておく必要がある レンダリング (+ 座標変換 シェーディング マッピング ) などの処理を行ってくれる

まとめ 前回の復習 コンピュータグラフィックスの歴史と応用 3 次元グラフィックスの要素技術 3 次元グラフィックス プログラミング

次回予告 3 次元グラフィックス プログラミング演習 (1) OpenGLとGLUTの概要 サンプルプログラムの解説 プログラムのコンパイルと実行