14
OpenGL ラララララララララ 3 ラ ラララララララララ 201 ララ ラ 23 1 ラララララ ラララ

OpenGL ライブラリを用いた 3 次元フラクタルの描画

Embed Size (px)

DESCRIPTION

OpenGL ライブラリを用いた 3 次元フラクタルの描画. 201 2年3月 1 6日 福永研究室 坂上慎一. 目 次. 1. OpenGL の概要 2.フラクタルとは・・・ 3. OpenGL へのフラクタルの実装 4.まとめ. 主に3次元 CG の機能を実装するのに用いる。 OS 非保存のマルチプラットホーム対     応で、科学技術における可視化や産     業分野の CAD システムに利用されて     いる。. CAD システムとは・・・  コンピューターによる設計支  援ツール. 1. OpenGL の概要( 1/3 ). - PowerPoint PPT Presentation

Citation preview

OpenGL ライブラリを用いた 3 次元フラクタルの描画

201 2年3月 1 6日福永研究室坂上慎一

目 次 1. OpenGL の概要

2.フラクタルとは・・・

3. OpenGL へのフラクタルの実装

4.まとめ

1. OpenGL の概要( 1/3 ) 主に3次元 CG の機能

を実装するのに用いる。     OS 非保存のマルチプラットホ

ーム対    応で、科学技術における可視化

や産    業分野の CAD システムに利用

されて    いる。

CAD システムとは・・・

 コンピューターによる設計支

 援ツール

1. OpenGL の概要( 2/3 ) ~特長~

3次元 CG の高度な描画機能を有する。簡潔で分かりやすいコマンド体系を有する。標準 C/C++ 言語の初歩的な知識のみでプログラ

ミングが可能である。

1. OpenGL の概要( 3/3 ) 以下の 3 つのライブラリを用

いる OpenGLライブラリ(OpenGL

)  点・線・などの描画、色の制御といった

基本的な描画機能を備えている。 OpenGLユーティリティライ

ブラリ(GLU)  アプリケーション開発に便利な機能を提

供する。簡易な投影変換設定、高度なテクスチャ処理などのコマンドを有する。

GLUTライブラリ(GLUT)  ウィンドウ管理、入力イベント処理、球

体・円柱などの基本立体、 OpenGL やGLU を組み合わせた高度な描画を行う。

※OpenGL には描画機能しかなく、ウィンドウ制御やイベント処理などは OS やウィンドウシステムに依存する。GLUT を併せて利用する事で汎用性の高いアプリケーション開発が可能。

OpenGL ライブラリ( OpenGL )を用いてるところgl Color3f(1.01.01.0);glBegin(GL_LINES);

glVertex3f(x1,y1,z1);glVertex3f(x2,y2,z2);

glVertex3f(x1,y1,z1);glVertex3f(x3,y3,z3);

glVertex3f(x1,y1,z1);glVertex3f(x4,y4,z4);

glVertex3f(x2,y2,z2);glVertex3f(x3,y3,z3);

glVertex3f(x2,y2,z2);glVertex3f(x4,y4,z4);

glVertex3f(x3,y3,z3);glVertex3f(x4,y4,z4);

glEnd();

gl Color3f(R,G,B)    描画する図形の色の指定

gl Begin(図形のタイプ)

    図形定義の開始

gl Vertex3f(x、y、z)

    頂点の設定

gl End()    図形定義の終了

OpenGL ユーティリティライブラリ( GLU )を用いているところ

gluPerspective(120.0,1.0,1.0,1000.0); //透視投影    3次元物体をスクリーン座標系に映す方法のひとつ。私たちの視覚系と同様に遠近感が得られるため、現実に近い画像生成ができる。

gluLookAt(ViewPointX+leftright,ViewPointY,ViewPointZ+updown, 0.0+leftright,0.0,0.0+updown ,

0.0,0.0,Z);

   始点位置と視点方向を表している。視点のx、y、z座標と目標のx、y、z座標とウィンドウに表示される画像の上の方向を示すベクトルとして設定する。

GLUT ライブラリ( GLUT )を用いているところ glutInitWindowPosition(0,0);   ウィンドウの左上を (0,0)にする。

glutInitWindowSize(500, 500);   ウィンドウサイズを 500*500に設定する。

glutInitDisplayMode(GLUT_RGBA);   色の指定に RGBAモードを用いる。

glutMouseFunc(mouse); glutKeyboardFunc(keyboard);   マウス入力、キーボード入力のコールバック関数    

2.フラクタルとは・・・( 1/3 ) フランスの数学者ブノワ・

マンデルブロが導入した幾何学の概念。図形の部分と全体が自己相似になっている。

自己相似とは・・・  図形において、

ある図形の断片を取ってきたとき、それより小さな断片の形状と図形全体の形状とが相似である場合を指す。

2.フラクタルとは・・・ ( 2/3 )~フラクタルの一例~ マンデルブロー集合

シェルピンスキー曲線

2.フラクタルとは・・・ ( 3/3 )~今回描画したフラクタル図形~ シェルピンスキーのギャスケット【手順】1.1辺の長さ1の正三角形の各辺の中点を結ぶと中心部に長さ 1/2

の正三角形ができる。2.この長さ 1/2 の正三角形を切り取る。これによって長さ 1/2 の正

三角形が3個残る。3.さらにこれら3つの正三角形の各辺の中点を結んで長さ 1/4 の正

三角形が9個残る。4.同様に手順を繰り返すと、 n 回目には長さ( 1/2 )^ n の正三角

形を切り取り、長さ( 1/2 )^nの正三角形が3^n個残る。

今回これを3次元で描画した。

3. OpenGL へのフラクタルの実装( 1/2 )

再帰処理

正四面体の 描画

3. OpenGL へのフラクタルの実装( 2/2 )~キーボード操作~↑:視点を上に回転   ↓:視点を下に回転→:視点を右に回転   ←:視点を左に回転

w : 上方向に平行移動    s:右方向に平行移動z: 下方向に平行移動     a:左方向に平行移動p:縮小  l:拡大k: 1ステップ進む      i: 1ステップ戻る

4.まとめと今後の展望

当研究室で行っている画像解析のテスト用のアニメーションを OpenGL で作れるのでは・・・

最後のまとめとしてプログラムの実演