計算機科学実験及演習4(2002):補足
学生実験4,
亀田能成のホーム
2002/10/04, 2004/03/09
ポリゴンランダム発生
第1課題ではポリゴンデータは内部ランダム発生で構いませんが、
第2課題以降があるのでプログラム内部のデータ構造は
柔軟にしておいたほうがいいでしょう。
VRML読み込みルーチン
第2課題の参考になるかどうか分りませんが、
私が作成した(椋木先生改訂)サブルーチンを利用しても構いません。
ただし、利用した場合はその旨レポートに報告して下さい。
- vrml.c
- vrml.h
VRMLデータファイルについて
サンプルVRMLファイルです。拡張子は本来".wrl"です。
ファイルサイズが大きいので、プリントアウトしたりしないようにしてください。
 | サンプルファイル | 反射属性 | 最小値 | 最大値 | 頂点数 | 面数 | 注釈 | 
 | av1 | 拡 | (-200, -150, -500) | ( 200,  150, -400) | 5 | 4 | 菱形 | 
 | av2 | 拡 | (-200, -100, -500) | ( 200,  200, -400) | 6 | 2 | 要Zバッファリング | 
 | av3 | 拡 | (-190, -90, -600) | ( 210, 110, -400) | 1562 | 3120 | 大規模な例 | 
 | av4 | 拡・鏡 | (-190, -90, -600) | ( 210, 110, -400) | 1562 | 3120 |  | 
 | av5 | 拡・鏡・環 | (-190, -90, -600) | ( 210, 110, -400) | 1562 | 3120 |  | 
 | head | 拡・環 | (-190, -90, -600) | ( 210, 110, -400) | 267 | 530 | 人頭 | 
 | dragon | 拡・環 | (-145.0670, -78.0, -457.972) | (  74.0515, 107.4, -215.558) | 403 | 607 | 龍(逆面が混入) | 
 | iiyama | 拡 | (-0.051510, -0.678160, 0.118390) | (-0.124040,  0.137250, -0.515220 (0.499)) | 5046 | 13252 | 実測人面 | 
 | aa053 | 拡 | (x, x, x) | (x, x, x) | x | x | ? | 
 | av007 | 拡 | (x, x, x) | (x, x, x) | x | x | ? | 
 | av020 | 拡 | (x, x, x) | (x, x, x) | x | x | ? | 
生成例
 生成したPPM画像の例 
 |   |   |   | 
 | av1 | av2 | av3 | 
 |   |   |   | 
 | av4 | head | iiyama | 
 |   |   |   | 
 | av5(Constant shading) | av5(Gouraud shading) | av5(Phong shading) | 
    カメラ位置  :(x,y,z) = (0.0,  0.0,  0.0)
    カメラ方向  :(x,y,z) = (0.0,  0.0, -1.0)
    カメラ焦点距離:256.0 
    光源方向   :(x,y,z)=(1.0, -1.0, -2.0)
    光源明るさ  :(r,g,b)=(1.0,  1.0,  1.0)
    光源モデル  :平行光源
レポート提出方法
TeXで報告書を作成してpdfをメール送信する方法について簡単に
説明します。まず作成方法は以下のようになります。
- (emacs等でsample.texを作成)
- /usr/local/bin/platex sample.tex (sample.dviを生成)
- /usr/local/bin/xdvi sample.dvi (dviファイルを確認)
- /usr/bin/dvipdf sample.dvi sample.pdf (pdfファイルを生成)
- /usr/local/bin/acroread sample.pdf (pdfファイルの確認)
- 参考:/usr/local/bin/dvips sample.dvi sample.ps (psファイルを生成)
- 参考:/usr/X11R6/bin/ghostview sample.ps (psファイルの確認)
次いで、emacs内のmewで添付メールを送るには、以下のようにします。
Mewでメールの新規作成を始め、
Subjectや文章(カバーページ)を書いたあと、下記の作業をしてください。
- Prepare Attachment(C-c C-a)
- 添付ファイルのリスト中の空欄で、l (小文字のエル)
    [または、メニューから
     Mew/Draft→Attachment Command→Insert a File by Linking]
- 添付ファイルのパスを入力。[スペースで補完可能]
- 相手先での展開時のファイル名も指定できますが、
    デフォルトのままでいいでしょう。
- C-c C-cで送信。
参考:
私家版 Mew 取扱説明書
参考文献
テキストでも述べている参考文献
 OpenGL Programming Guide
は、2階計算機室に日本語版の紙の本が2冊ほど準備されています。
本演習の概念を深く理解するには好適でしょう。
Xクライアント化
OpenGLとGLUTを使って、
自分でレンダリングした画像バッファを
そのまま表示するサンプルプログラムを用意しました。
GLUTはOpenGLを使う上で有用なユーティリティをまとめたライブラリです。
render_viewer.c の render_the_image() 関数を、
自分の作成した関数に置き変えて下さい。
(2002/10現在動作未確認)
<kameda@media.kyoto-u.ac.jp>