Fair Curve and Surface Design System Using Tangent Control

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

第7章 レンダリング

第7章 レンダリング

Microsoft PowerPoint - info_eng3_05ppt.pptx

libaux.dvi

謗域・ュ逕ィppt

NB

3D グラフィックス処理の一般過程 1. 3D グラフィックス処理の一般過程

/*p7-1-1*/

OpenGL & GLUTの基本関数の説明

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

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

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

#include <stdio.h> 2 #include <stdlib.h> 3 #include <GL/glut.h> 4 Program 1 (OpenGL GameSample001) 5 // 6 static bool KeyUpON = false; // 7 sta

スライド 1

Microsoft Word - mediaJikkenCG_no2_2012.doc

Microsoft Word - mediaJikkenCG_no2_2007.doc

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

manual.dvi

イントロダクション

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

PowerPoint プレゼンテーション

1 1. Program 1 OpenCV (OpenCV Sample001) 1 /* 2 - > - > - >VC++ 3 ( ) 4 C:\opencv\build\include 5 ( ) 6 C:\opencv\build\x86\vc10\lib 7 - > - > - > - >

Kageyama (Kobe Univ.) / 36

スライド 1

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

Microsoft PowerPoint - 04.pptx

スライド 1

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

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

スライド 1

謗域・ュ逕ィppt

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

Microsoft Word - opengl講義資料2013.doc

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

double rx[natom], ry[natom], rz[natom]; 原子の座標 速度 力 ポテンシャルエ double vx[natom], vy[natom], vz[natom]; ネルギーを受ける配列を準備 double fx[natom], fy[natom], fz[natom

Tekutama AR ~ 拡張現実感によるオーバーレイ表示と動作 ~ 情報物理研究室 渡部 修平 1

(4) モデルの消去 mqodeletemodel( model ); (5) 終了処理 ( プログラム終了時にやってください ) mqocleanup(); 3. 使い方 (2) 連番ファイルを読み込んで表示する場合 (1) 初期化 (ARToolKit の場合,argInit() の後に使用 )

2 2 2 OpenGL Linux Linux Video for Linux(Video4Linux, v4l ) API Video4Linux USB IEEE1394 API Linux Video for Linux 2(Video4Linux2, v4l2 ) OpenCV API U

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


Microsoft Word - opengl講義資料ha.doc

演算増幅器

ゲームグラフィックス特論

3. OpenGL を利用するための準備作業 1) Tao Framework をダウンロードしてインストールする. Download から taoframework setup.exe をダウン

モデリングとは

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

第3章 OpenGL の基礎

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

謗域・ュ逕ィppt

DrawArrays DrawElements References Kageyama (Kobe Univ.) Visualization / 34

Computer Graphics

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

PowerPoint プレゼンテーション

Microsoft Word - 演習9.docx

第3章 OpenGL の基礎

untitled

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


CG

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

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

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

LEDの光度調整について

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

140926_LPLKN_右.pdf

WebGL Safari WebGL WebGL Safari Kageyama (Kobe Univ.) / 5

<4D F736F F D2089FC92E82D D4B CF591AA92E882C CA82C982C282A282C42E727466>

3D 描画 Step1-1 まず O 原子となる球を 1 つ描画する <WaterPanel.java の作成 > 1.Chemical プロジェクトをインポート 共有フォルダから Chemical.zip をコピーして workspace 内にはりつけ パッケージ エクスプローラで右クリック イン

PowerPoint Presentation

Microsoft Word - CGP_GM

WebGL X LR301 Kageyama (Kobe Univ.) Visualization / 45

Graphics Performance Tuning () Z 2

PowerPoint プレゼンテーション

/* drawing function */ function_graph();// drawing graph glflush(); int main(int argc, char **argv ) glutinit( &argc, argv ); glutinitdisplaymode( GLU


untitled


演算増幅器

JAPLA研究会資料 /6/15

81

2017_Eishin_Style_H01

JAPLA研究会資料 2010/4/24


2 2 GLUI 2 GLUI 2.1 GLUI GLUI OpenGL OpenGL glut OpenGL glut C++ Linux, Windows (Visual C++, gcc), Macintosh glut glut GUI glut GUI CG glmultmatrix()


WebGL Safari WebGL Kageyama (Kobe Univ.) Visualization / 55

スライド 1

スライド 1

CG

このような 回転や平行移動による座標変換の情報は ModelView 行列 が持っている ModelView 行列は gl.glpushmatrix() でいったん保存しておき 回転や平行移動を重ねて描画した後 gl.glpopmatrix() で保存した状態に戻すことができる ワールド座標系とウィ

Microsoft PowerPoint - Lec24 [互換モード]

モデリングとは

2 2 2 OpenGL (R,G,B,A) 2.1 OpenGL (x y) width height pixels void glreadpixels(glint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum t

スライド 1


スライド 1

2008年度基礎ゼミ

Microsoft Word - ggbook.docx

WebGL Kageyama (Kobe Univ.) Visualization / 39

Transcription:

情報工学 2016 年度後期第 6 回 [11 月 16 日 ] 静岡大学工学研究科機械工学専攻ロボット 計測情報講座創造科学技術大学院情報科学専攻 三浦憲二郎

講義アウトライン [11 月 16 日 ] ビジュアル情報処理 3 モデリング 3.3 曲線 曲面 OpenGL 色の取り扱い シェーディング 照明モデルと照光処理 拡散光 鏡面光 環境光

ビジュアル情報処理 3-3 曲線 曲面 3-3-1 曲線の表現形式

ビジュアル情報処理 3-3-1 [2] パラメトリック表現

3-3-2 2 次曲線 ビジュアル情報処理

ビジュアル情報処理 3-3-3 パラメトリック曲線ベジエ曲線

ビジュアル情報処理 3-3-3 パラメトリック曲線ベジエ曲線

ビジュアル情報処理 3-3-4 パラメトリック曲面ベジエ曲面

OpenGL: 色の取り扱い 1. RGBA モード R, G, B, A ごとに値を指定 glutinitdisplaymode(glut_rgb); 2. カラーインデックスモード 各色に対応するインデックスナンバーを指定 glutinitdisplaymode(glut_index);

RGBA モード void glcolor3{b s i f d ub us ui}(type r, TYPE g, TYPE b) void glcolor4{b s i f d ub us ui}(type r, TYPE g, TYPE b, TYPE a) b: byte, s: short, i: integer, f: float, d: double ub: unsigned byte, us: unsigned short, ui: unsigned int 0<= float, double value <= 1 a: アルファ値色の 混合処理, 変調処理

シェーディング 1. フラットシェーディング 立体の面や線を単一の色で描画する方法 2. スムースシェーディング 複数の色を補間して描画する方法 void glshademodel(glenum mode) mode: GL_FLAT, GL_SMOOTH

照明 1. 環境光 (ambient light) 何度となく反射を繰り返し, 方向を特定できない光 2. 拡散光 (diffuse light) すべての方向に均一に散乱する光 3. 鏡面光 (specular light) 照明に対して特定の方向に強く反射する光

環境光 1. 環境光 (ambient light) 何度となく反射を繰り返し, 方向を特定できない光

拡散光 2. 拡散光 (diffuse light) すべての方向に均一に散乱する光

鏡面光 3. 鏡面光 (specular light) 照明に対して特定の方向に強く反射する光

照明の数と属性 GL_LIGHT0, GL_LIGHT1,, GL_LIGHT7 少なくとも 8 個の照明が使える. void gllight{if}[v](glenum light, GLenum pname, TYPE param) 例 GLfloat color[] = {1.0f,0.0f,0.0f,1.0f}; gllightfv(gl_light0, GL_DIFFUSE, color);

gllight*() の引数 pname パラメータ名初期値意味 GL_DIFFUSE (1.0,1.0,1.0,1.0) 拡散光のRGBA 値 GL_SPECULAR (1.0,1.0,1.0,1.0) 鏡面光のRGBA 値 GL_AMBIENT (0.0,0.0,0.0,1.0) 環境光のRGBA 値 GL_POSITION (0.0,0.0,1.0,0.0) 照明の位置 (x,y,z,w) 注意 : 照明の位置の w 座標値が 0 の場合は無限遠 したがって, 平行光線 0 でない場合は点光源

照光処理の有効化 有効化 glenable(gl_lighting); glenable(gl_light0); /* glcolor*() による色の指定は無効 */ 無効化 gldisable(gl_lighting); /* glcolor*() による色の指定が有効 */

光の減衰 平行光線の光は距離による輝度の減衰はない. 点光源の場合, 距離 d によって輝度が減衰する. 減衰係数 = k k 1 d c + l + k q d 2 kc:gl_constant_attenuation kl:gl_linear_attenuation kq:gl_quadratic_attenuation

材質の色 照明の拡散光, 鏡面光, 環境光に対する材質の特性 + 放射光 void glmaterial{if}[v](glenum face, GLenum pname, TYPE param) 例 GLfloat color[] = {1.0f,0.0f,0.0f,1.0f}; glmaterialfv(gl_front, GL_DIFFUSE, color);

glmaterial*() の引数 pname パラメータ名初期値意味 GL_DIFFUSE (0.8,0.8,0.8,1.0) 拡散光のRGBA 値 GL_SPECULAR (0.0,0.0,0.0,1.0) 鏡面光のRGBA 値 GL_AMBIENT (0.2,0.2,0.2,1.0) 環境光のRGBA 値 GL_SHININESS 0.0 鏡面の指数 GL_EMISSION (0.0,0.0,0.0,1.0) 放射光のRGBA 値 0.0 <= GL_SHININESS <= 128.0

面の法線ベクトルの指定 void glnormal3{bsidf}(type nx, TYPE ny, TYPE nz) b, s, i の場合は, 各値の範囲を [-1.0,1.0] に縮小 ベクトル版 glnormal3{bsidf}v() も存在する.

頂点カラーの計算 頂点カラー = その頂点での材質からの放射 + その頂点での材質の環境特性で測られるグローバル環境光 + 適切に減衰した, すべての光源からの環境, 拡散, 鏡面光 照光計算を実行した後, カラー値は [0,1] の範囲にクランプ (RGBA モード )

材質放射 頂点カラー = その頂点での材質からの放射 + その頂点での材質の環境特性で測られるグローバル環境光 + 適切に減衰した, すべての光源からの環境, 拡散, 鏡面光 パラメータ GL_EMISSION に割り当てられた RGB 値 glmaterialfv(gl_emission, color);

グローバル環境光 頂点カラー = その頂点での材質からの放射 + その頂点での材質の環境特性で測られるグローバル環境光 + 適切に減衰した, すべての光源からの環境, 拡散, 鏡面光 グローバルな環境光と gllightmodelfv(gl_light_model_ambient, color0); 材質の環境特性の積 glmaterialfv(gl_ambient, color1); RGB 値, 別々に計算

光源からの影響 頂点カラー = その頂点での材質からの放射 + その頂点での材質の環境特性で測られるグローバル環境光 + 適切に減衰した, すべての光源からの環境, 拡散, 鏡面光 光源からの影響 = 減衰係数 * スポットライト効果 * ( 環境光の項 + 拡散光の項 + 鏡面光の項 ) 環境, 拡散, 鏡面光の項 : 照明の各成分と材質の各成分の積

rotcube.c の initlights() void initlights(void) { GLfloat light0_diffuse[] = {0.9, 0.9, 0.9, 1.0}; /* 拡散成分 */ GLfloat light1_diffuse[] = {0.5, 0.5, 0.5, 1.0}; /* 拡散成分 */ GLfloat light_specular[] = {0.3, 0.3, 0.3, 1.0}; /* 鏡面成分 */ GLfloat lmodel_ambient[] = {0.2, 0.2, 0.2, 1.0}; /* 周囲光 */ gllightmodelfv(gl_light_model_ambient, lmodel_ambient ); gllightfv ( GL_LIGHT0, GL_DIFFUSE, light0_diffuse ); //gllightfv ( GL_LIGHT1, GL_SPECULAR, light_specular ); gllightfv ( GL_LIGHT1, GL_DIFFUSE, light1_diffuse ); gllightfv ( GL_LIGHT1, GL_SPECULAR, light_specular ); gllightfv ( GL_LIGHT2, GL_DIFFUSE, light1_diffuse ); gllightfv ( GL_LIGHT2, GL_SPECULAR, light_specular ); } glenable ( GL_LIGHTING ); glenable ( GL_LIGHT0 ); glenable ( GL_LIGHT1 ); glenable ( GL_LIGHT2 );

rotcube.c の ourdisplay() void ourdisplay(void) { GLfloat material_color[4]={1.0, 0.0, 0.0, 1.0};/* 拡散光成分 */ GLfloat material_specular[4]={0.2, 0.2, 0.2, 1.0};/* 鏡面光成分 */ /* バッファのクリア */ glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); } /* 鏡面光成分のセット */ glmaterialfv(gl_front, GL_SPECULAR, material_specular);... gllightfv ( GL_LIGHT0, GL_POSITION, light_position0 ); gllightfv ( GL_LIGHT1, GL_POSITION, light_position1 ); gllightfv ( GL_LIGHT1, GL_POSITION, light_position2 );... /* レッド */ glmaterialfv(gl_front, GL_DIFFUSE, material_color); drawfmodel( &fcube ); glflush();

まとめ ビジュアル情報処理 3 モデリング 3.3 曲線 曲面 OpenGL 色の取り扱い シェーディング 照明モデルと照光処理