スライド 1

Similar documents
スライド 1

Computer Graphics

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

CG

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

CG

pp2018-pp4base

Processing入門マニュアル17

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

スライド 1

CG

Microsoft Word - CGP_GM

課題

課題

CG

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

Fair Curve and Surface Design System Using Tangent Control

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

CG

配付資料

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

日本内科学会雑誌第98巻第4号

日本内科学会雑誌第97巻第7号

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

イントロダクション

もう少し詳しい説明 1. アルゴリズムを構築するための 4 枚のサンプル画像を次々と読み込むここで重要なことは画像を順番に読み込むための文字列操作 for 文の番号 i を画像の番号として使用している strcpy は文字列のコピー,sprinf は整数を文字列に変換,strcat は文字列を繋げる

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

<4D F736F F D B B83578B6594BB2D834A836F815B82D082C88C60202E646F63>

CG

pp2018-pp10base

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

pp2019-pp10-base

Microsoft PowerPoint ppt

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

pp2018-pp9base

Ł\”ƒ-2005

課題

PowerPoint プレゼンテーション

第90回日本感染症学会学術講演会抄録(I)

情報メディア基盤ユニット用資料 (2015 年 7 月 14 日分 ) Processing 言語による情報メディア入門 はじめに オブジェクト指向入門 神奈川工科大学情報メディア学科 近のプログラミング言語では オブジェクト指向 (object 最 oriented) と呼ばれる機能を持っているも

日本内科学会雑誌第102巻第4号

_TJ…X…g†[…fi_0216

PowerPoint プレゼンテーション

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

Microsoft Word - gnuplot

演算増幅器

O1-1 O1-2 O1-3 O1-4 O1-5 O1-6

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

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

PowerPoint プレゼンテーション

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

限必要な HTML ファイルも作成さ れます Processing を用いて作られるプログラムは スケッチ (sketch) と呼ばれています 保存をすると ドキュメントフォルダの中の Processing というフォルダ内に新しくフォルダを作り その中にスケッチを構成するプログラムやデータを保存し

Web プログラミング 1 HTML+CSS (3) (2 章 ) 2013/5/8( 水 ) 演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用で

放射線専門医認定試験(2009・20回)/HOHS‐05(基礎二次)

プログラム

演算増幅器

Microsoft Word - povray.docx

スライド 1

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

Processingをはじめよう


Processingをはじめよう

表示の更新もそういた作業のひとつに当たる スレッドの使用アニメーション アニメーションやシミュレーションなどは画面の更新が一定のタイミングで行われていく この連続した画面の更新をスレッドを利用して行う しかし paint() メソッドを直接呼び出して表示を更新することはできない その理由

Web データ管理 HTML+CSS (3) (2 章 ) 2011/10/19( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/23

piyo0702a.rtfd

Microsoft PowerPoint - matlab10.ppt [互換モード]


Microsoft PowerPoint P演習 第10回 関数.ppt [互換モード]

課題

課題

設問 println はそこで指定されている内容を出力して改行するものである. 一方,print は内容を出力して改行しないものである. 下記のプログラムそれぞれについて出力結果がどうなるか回答せよ. 下記のプログラム - を実行すると, fms という文字列が 回表示される. プログラム - vo

プログラム

Microsoft PowerPoint ppt

02: 変数と標準入出力

プログラミング入門1

tn_soturon_sjis.dvi

// ステージを設定します stage.setscene(scene); stage.settitle(" キャンバス "); // ステージを表示します stage.show(); public static void main(string[] args) launch(args); キャンバス

02: 変数と標準入出力

Java言語 第1回

Taro-テキスト.jtd

CG

情報メディア基盤ユニット用資料 (2013 年 5 月 21 日分 ) Processing 言語による情報メディア入門 文字列と画像の表示と座標変換 神奈川工科大学情報メディア学科 までのプログラムでは 図形の表示だけを扱ってきました 色々今なプログラムを作っていく際には 図形の表示だけではなく

Graphical User Interface 描画する

ToDo: 今回のタイトル

合宿事前講座 Web 開発の基本編その 2 情報研究会モブ 薗田海樹 The. H.30 情報研究会 1


Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

PowerPoint プレゼンテーション


Rerank-By-Example: Rerank Search Results by Operation

レコード class Point attr_accessor("x", "y") インスタンス変数の宣言 point.rb

PowerPoint プレゼンテーション

課題

この演習について Autoware 演習 1: データの記録 再生 Autoware 演習 2: センサーキャリブレーション Autoware 演習 3:3 次元地図の作成 Autoware 演習 4: 自己位置推定 Autoware 演習 5: パラメータ調整 Autoware 演習 6: 物体検

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

プログラミング演習 Ⅰ 第 14 回 2017/6/5( 月 ) ゲームを作る クイズ 担当 : 紅林林

IT プロジェクト

Microsoft PowerPoint - prog03.ppt

02: 変数と標準入出力

C#の基本

Transcription:

Graphics with Processing 2007-11 シェーディングとテクスチャマッピング http://vilab.org 塩澤秀和 1

11.1 シェーディング シェーディング シェーディングとは Shading= 陰影づけ 光の反射 材質のモデル ( 前回 ) ポリゴンの陰影計算モデル = シェーディングモデル シェーディングモデル フラットシェーディング ポリゴンを単一色で描画 スムースシェーディング ポリゴンの色を滑らかに描画 グローシェーディング フォンシェーディング フラットシェーディング 各ポリゴンを単一色で描画 もっとも単純で高速な方法 ポリゴンの代表点 ( 例 : 重心 ) の法線ベクトルを面の向きとする 面の向きから光の反射を計算し, 面全体の描画色を決定する 各面は単一色で塗りつぶす ポリゴン 単一色 フラットシェーディング 2

11.2 グローシェーディング グローシェーディング 頂点間の描画色を補間 周囲の面の法線ベクトルを平均化して, 各頂点の向きを計算 それを用いて, 頂点ごとに光の反射を計算し, 描画色を決定 面全体の色は, 頂点の間の色を線形補間して, 滑らかに描画 Processing,OpenGLなどで標準的に使われている描画色の計算式 C C C Q = 1 ) R = 1 ) P = 1 ) ( α CA + α C ( β C + β C A ( γ C + γ C Q R B D 1 4 Q 1-α B α 隣接面の法線ベクトルを平均化した頂点の法線ベクトル 3 2 C A β γ P 1-γ R 1-β D 描画色の補間 3

11.3 フォンシェーディング フォンシェーディング 面全体の法線ベクトルを補間 平面の表面を光の反射についてなめらかな曲面に近似する手法 色を補間するのでなく, 面全体の法線ベクトルを線形補間 描画時に各ピクセルの法線ベクトルを計算し, 光の反射からピクセルごとの描画色を決定する 2 3 1 法線ベクトルの補間 その他参考 法線ベクトルの明示設定 通常, システムが算出 (10.5) 各頂点の法線ベクトルを自分で設定することも可能である normal(nx, ny, nz) 頂点に法線ベクトルを明示的に設定したいときに使う関数 vertexの前に指定 使用例 normal(1.0, 0.0, 0.0); vertex(2.0, 3.5, 3.4); ポリゴンのグラデーション 各頂点に別々の色 (fill) をつけるとポリゴン内をなめらかに補間 4

11.4 テクスチャマッピング テクスチャマッピング テクスチャマッピングの役割 テクスチャ= 模様画像 立体にテクスチャ ( 画像 ) を, シールのように貼りつける 質感を表すのに効果てきめん 例 ) 球に世界地図を貼りつける, 人体モデルに肌を貼りつける uv 座標 ( テクスチャ座標 ) テクスチャ画像の2 次元座標 (x,y) のかわりに (u,v) を用いる uvマッピング 2 次元のテクスチャ画像を3 次元空間の面に貼りつける対応づけ 画像 (u, v) 空間 (x, y, z) z O V O y x u uv マッピング テクスチャ 5

11.5 テクスチャマッピング関数 テクスチャマッピング texture( 画像 ) 画像 : PImage 型 (5.3 参照 ) テクスチャの設定 beginshape(), endshape() の中で指定する vertex(x, y, z, u, v) 通常のvertex(x, y, z) の処理に加え, その点をテクスチャ座標 (u, v) に対応づける vertex(x, y, u, v): 2 次元用 texturemode( 座標モード ) uv 座標の指定モード IMAGE: 実際の画像の座標 NORMALIZED: 0.0~1.0 使い方 PImage tex; // テクスチャ画像 void setup() { // 省略... tex = loadimage(" 画像ファイル "); void draw() { // 省略... beginshape( 図形モード ); texture(tex); texturemode( 座標モード ); vertex(x1, y1, z1, u1, v1); vertex(x2, y2, z2, u2, v2); // 省略... 6

11.6 サンプルプログラム // 画像はグローバル変数推奨 PImage tex; void setup() { size(300, 300, P3D); tex = loadimage("kouji50m.jpg"); // テクスチャファイルは講義ホーム // ページからダウンロードし登録 void draw() { background(0); translate(width/2, height/2); scale(0.5); rotatey(-radians(framecount)); beginshape(quads); nostroke(); texture(tex); texturemode(normalized); vertex(-40,-100, 0, 0, 0); vertex( 40,-100, 0, 1, 0); vertex( 40, 100, 30, 1, 1); vertex(-40, 100, 30, 0, 1); fill(#ffffff); stroke(#555555); vertex(-40,-100, 0); vertex( 40,-100, 0); vertex( 40, 100, -30); vertex(-40, 100, -30); endshape(); 7

11.7 演習課題 課題 立方体 ( 六面体 ) の各面にテクスチャを貼り付けて, 回転表示するプログラムを作成しなさい 各面のテクスチャは同じものでもよい ( 違うものでもよい ) 今回のプログラムはZIPファイルにまとめてから提出すること まず, プログラムを保存する 次に,Tools Archive Sketch でZIPファイルにまとめる すると,workspaceフォルダに プログラム名.zip というファイルができるのでこれを提出する アップロード時に種類で, フォルダ圧縮 ZIPファイル を選択 参考 : 文字列の表示 フォントの作成 事前にフォントファイルを準備 Tools Create Font PFont 型 フォントを表す変数型 loadfont(" フォントファイル名 ") フォントの読み込み 例 ) PFont font = loadfont ("CourierNew36.vlw"); textfont( フォント, サイズ ) 描画フォントの設定 text( 文字列, x, y) 文字列 (String 型 ) の描画 例 : Basics Typography 8

11.8 参考 : 日本語文字列の画像作成 import java.awt.*; import java.awt.image.*; import java.awt.font.*; // 引数は, 文字列, サイズ, 画像の幅, 画像の高さ, 文字の色 PImage maketextimage(string str, int point, int w, int h, color fg) { BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_4BYTE_ABGR); Graphics gc = bi.getgraphics(); gc.setcolor(new Color(0, 0, 0, 0)); gc.fillrect(0, 0, bi.getwidth(), bi.getheight()); gc.setcolor(new Color(fg)); Font fnt = new Font("SansSerif", Font.PLAIN Font.BOLD, point); gc.setfont(fnt); gc.drawstring(str, 0, bi.getheight()); gc.dispose(); return new PImage(bi); 9