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

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

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

第3章 OpenGL の基礎

第3章 OpenGL の基礎

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

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

沼津工業高等専門学校

演算増幅器

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

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

Microsoft PowerPoint - info_eng3_05ppt.pptx

EGS4に対応した粒子軌跡と 計算体系の3次元表示ソフト

/*p7-1-1*/

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

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

スライド 1

memo

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

Taro-ファイル処理(公開版).jtd

tc15_tutorial02

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

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

EnSightのご紹介

ARToolKit プログラムの仕組み 1: ヘッダファイルのインクルード 2: Main 関数 3: Main Loop 関数 4: マウス入力処理関数 5: キーボード入力処理関数 6: 終了処理関数 3: Main Loop 関数 1カメラ画像の取得 2カメラ画像の描画 3マーカの検出と認識

<90E096BE8F912E786C7378>

Computer Graphics

PowerPoint プレゼンテーション

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

第1回 プログラミング演習3 センサーアプリケーション

スライド 1

プログラミング基礎

PowerPoint プレゼンテーション

02: 変数と標準入出力

PowerPoint プレゼンテーション

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

#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

準備 計算結果を可視化するために OpenGL を 利用する. 2

02: 変数と標準入出力

Microsoft Word - 201hyouka-tangen-1.doc

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 - > - > - > - >

Microsoft PowerPoint - kougi2.ppt

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

Taro-テキスト.jtd

技術レポート 1)QuiX 端末認証と HP IceWall SSO の連携 2)QuiX 端末認証と XenApp の連携 3)QuiX 端末認証 RADIUS オプションと APRESIA の連携 Ver 1.1 Copyright (C) 2012 Base Technology, Inc.

UPS管理システムSAN GUARD IV

図 3 CAVE 表示 下の図 は 海底探検ゲームのプログラムを Cygwin と CAVE シュミレータ及び CAVE に表示させ たものである 図 4 海底探険ゲームのプログラム (Cygwin) 図 5 海底探険ゲームのプログラム (CAVE シュミレータ ) 3 2 AR に表示

02: 変数と標準入出力

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡

j x j j j + 1 l j l j = x j+1 x j, n x n x 1 = n 1 l j j=1 H j j + 1 l j l j E

<907D945D F D C789C195CF8D5888EA97978CF68A4A97702E786C7378>

Delphi/400バージョンアップに伴う文字コードの違いと制御

データ構造とアルゴリズム論

PowerPoint プレゼンテーション

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

Transcription:

OpenGL による CAVE とファントムへの 3 次元表示 井門俊治 ( いどしゅんじ ) 埼玉工業大学工学部情報システム学科 利用環境 :Windows, LINUX, IRIX, AVS, AVS-MPE, OpenGL,VRML,Java3D 1. 目的 CAVE の表示するためには 従来は OpenGL によるプログラミングが行われていた これに対して 20 00 年末より AVS において CAVE 対応が可能となった また ほかにも多くの CAVE への表示のツールが開発されてきた 特に3 次元 CG のコンテンツも VR4MAX やほかの変換ツールにより CAVE の中に表示できるようになった 一方 Java3D による3 次元表示も Windows LINUX IRIX などの環境において可能となってきた このことから VRML AVS(MGF) Java3D とあわせて OpenGL による3 次元グラフィックスプログラミングも 3 次元グラフィックスプログラミングの教育の観点から 再度採用している さらに ファントム ( 触感型の VR 装置 ) においては OpenGL およびそれと相似性のある OpenHL を用いた触感プログラミングが可能であり OpenGL プログラムの流通性はよいことがわかっている 本稿では CAVE およびファントムへの表示の観点から 3 次元グラフィックスプログラミングの開発とポータビリティについて述べる 2. 方法 (1)3 次元グラフィックスプログラミング OpenGL VRML AVS(mgf) Java といったグラフィックスプログラムを使って 同じ 3 次元モデルを作成する OpenGL MGF で作成した3 次元モデルも CAVE に出力し 3 次元モデルの共有を調べる OpenGL プログラムは OpenHL を用いてファントム用にも移植し プログラムのポータビリティを検証する 一般的に それぞれのプログラム ( またはスクリプト ) の表示の可能性は下記のようになる 表 1 3 次元グラフィックスプログラミングの表示 OpenGL AVS(MGF) VRML Java3D Windows LINUX IRIX CAVE PHANTOM (2)OpenGL プログラムの CAVE 用への書き換え OpenGL で作成した3 次元グラフィックプログラムを CAVE に出力する OpenGL のグラフィックプログラムは ヘッダーファイルを足し メイン関数の内容を変えて出力する 下記の表 2 表 3で示したように intmain のところを書き換え include 文を付け加えることにより CAVE に表示することが可能になる

Display 表示の初期化が CAVE 表示の初期化に置き換わり CAVE 用のプログラムに書き換えることが出来る 表 2 1 画面 (Windows LINUX IRIX) 用の OpenGL #include<stdio.h> #include<windows.h> #include<gl/gl.h> #include<gl/glu.h> #include<gl/glut.h> main(int argc, char** argv) { glutinitdisplaymode(glut_single GLUT_RGBA GLUT_DEPTH); glutinitwindowposition(0,0); glutinitwindowsize(800,900); glutcreatewindow(argv[0]); glortho(-15, 15, -15, 15, -15, 15); myinit(); glutdisplayfunc(display); glutmainloop(); } 表 3 CAVE 上の OpenGL #include <stdio.h> #include <GL/glu.h> #include<gl/gl.h> #include <GL/glut.h> #include <cave_ogl.h> #include <unistd.h> int main(int argc, char **argv) { CAVESetOption(CAVE_PROJ_USEMO DELVIEW,0); CAVEConfigure(&argc,argv, NULL); CAVEInit(); CAVEInitApplication(init, 0); CAVEDisplay(display, 0); while(!cavegetbutton(cave_esckey)) { sginap(10); } CAVEExit(); } (2)OpenGL プログラムの PHANTOM 用への書き換え PHANTOM は センサブルテクノロジー社が開発した 指先と仮想オブジェクトとの相互作用が 1 点で行

われるポイント型で位置入力と力出力が可能な触感デバイスである ( 図 1 図 2) PHANTOM を介して仮想オブジェクトに触れると形状や質感など動きに応じた触覚情報がリアルタイムにユーザ側の指先に反映される PHANTOM を介して仮想オブジェクトに触れると形状や質感など動きに応じた触覚情報がリアルタイムにユーザ側の指先に反映される 入力は位置 (x,y,z) の3 自由度とポインタの回転 (yaw,roll,pitch) の3 自由度の計 6 自由度 出力は位置の3 自由度とポインタの回転も含めた 6 自由度である 図 1 PHANTOMOmni 図 2 PHANTOMDesktop PHANTOM 用のアプリケーションを開発するためには OpenHarptics を用いる これは 複雑な計算を扱う PHANTOM の制御プログラミングを低レベルで扱える 全てのタイプの PHANTOM に対応しているので 異なるタイプであっても同じプログラムのまま修正することなく実行することが可能である 比較的高レベルの処理を扱う HL(HapticLibrary)API と より低レベルな処理が可能な HD(Haptic Device)API の2つから構成されている HLAPI では OpenGL をサポートしているので 点 線 ポリゴン NURBS 曲面等の基本図形を直接反力モデルとして使用でき 移動 回転 拡大 縮小 ライティング シェーディング テクスチャマッピング等を利用することができ 従来の OpenGL プログラムを活用できる このため CAVE と PHANTOM で同一のプログラムを共有できる 両者でソケット通信を行うことにより ネットワーク触感のメリットとして通常 PC から得られる情報よりも多くの情報を体感により得ることができる 3. 結果 1( ブドウ ) 球 14 個 円柱 2 本使用して作成したブドウの VRML を参考 ( 図 3) に OpenGL グラフィックスプログラム ( 図 4) を作成した また この OpenGL プログラムを参考に Java( 図 5) MGF( 図 6) を作成した 図 3 ブドウ (VRML) 図 4 ブドウ (OpenGL)

図 5 ブドウ (Java) 図 6 ブドウ (MGF) OpenGL( 図 5) MGF( 図 7) をそれぞれ CAVE に表示し比較をした ( 図 8 図 9) 図 7 ブドウ (MGF-CAVE) 図 8 ブドウ (OpenGL) 2 ダイヤモンド ポリゴンにより作成したダイヤモンドの図形を同様に VRML( 図 9) OpenGL( 図 10) Java3D( 図 11) MGF( 図 12) で作成し 表示した 先と同様に CAVE にも表示した ( 図 13 図 14) 図 9 ダイヤモンド (VRML) 図 10 ダイヤモンド (OpenGL)

図 11 ダイヤモンド (Java) 図 12 ダイヤモンド (MGF) 図 13 ダイヤモンド (MGF-CAVE) 図 14 ダイヤモンド (OpenGL) 3PHANTOMOmni への OpenGL の表示 OpenGL OpenHL を用いた触感体験用の Cプログラムを開発した 実際に 3 次元仮想オブジェクトに触感している様子を図 15に示す 図 16は PHANTOM におけるポリゴン表示であり図 16の画面にも表示されている さらに複雑化することで多様な形状物を作成し 触感体験を与えることができる 図 15 PHANTOM にて触感を得ている例 図 16 ポリゴンによる多面体 図 17 図 18 は OpenGL および Java3D にて 分子模型 (C3H8) を表示した様子を示している OpenGL プログラムを OpenHL のルーチンを追加して PHANTOM での触感を可能にした様子を図 19 に示して

いる OpenHL のキーファンクションを与え使用者が PHANTOM の操作によりオブジェクトの移動をでき るようにしている 図 17 C 3 H 8 分子模型 (OpenGL) 図 18 C 3 H 8 分子模型 (Java3D) 図 19 OpenHL による PHANTOM のファンクション アニメーションに OpenHL によるキーファンクションを与え 運動のインタラクティブ性を実現したものが図 20と図 21である 図 20では X 軸方向へ移動する団子のオブジェクトに触れると Y 軸方向へ移動するものである 図 21は静止状態の団子に触れると X 軸方向へ回転するものである 両図とも (a) は触感前 (b) は触感後となっている (a) 図 20 Y 軸方向へ直線運動 (b)

(a) (b) 図 21 X 軸方向へ回転運動 OpenHL は OpenGL との対応性があるため OpenGL グラフィックプログラムを基にした PHANTOM のコンテ ンツの開発は容易であるといえる 触感で得られる情報は多く 教育面での利点は高いといえる 4. 結論 VRML,Java mgf OpenGL 共にオブジェクトの指定 座標の指定は プログラムで指定できることから共通性が大きい ポリゴンで画像の作成は VRML mgf OpenGL Java はポリゴンの頂点が同じなので 座標の共有が出来る また CAVE へのデータ プログラムの移植も ( 慣れは必要であるが ) 容易である OpenGL によるプログラムに対して OpenHL ルーチンを追加することにより PHANTOM への移植もプログラム共有を行いつつ行うことができた OpenHL の OpenGL サポートにより容易な開発を行うことができた 触感により得られる情報により 理解が深まることが利点である 参考文献 (1) 三浦憲二郎 OpenGL グラフィックス入門 朝倉書店 (1996 年 ) (2) 田中成典 小林孝史 VRML の達人 森北出版株式会社 1999 年 (3) 中野祥孝 OpenGL による3 次元グラフィックスの研究 ( 埼玉工業大学電子工学科 2004 年度卒業論文 ) (4) 中島賢氏 グラフィック環境の開発に関する研究 ( 埼玉工業大学電子工学科 2004 年度卒業論文 ) (4) 大澤厚雄 3 次元グラフィックスによる可視化の研究 ( 埼玉工業大学情報工学科 2005 年度卒業論文 ) (5) 恩田祐樹 3 次元グラフィックスプログラミングの研究 ( 埼玉工業大学情報工学科 2005 年度卒業論文 ) (7) 冨田亮 3 次元可視化の研究 ( 埼玉工業大学情報工学科 2006 年度卒業論文 ) (8) 一山友希 OpenGLによる PHANTOM コンテンツの開発 ( 埼玉工業大学情報工学科 2006 年度卒業論文 )