計算機科学実験及演習4(2002):補足

学生実験4亀田能成のホーム 2002/10/04, 2004/03/09

ポリゴンランダム発生

第1課題ではポリゴンデータは内部ランダム発生で構いませんが、 第2課題以降があるのでプログラム内部のデータ構造は 柔軟にしておいたほうがいいでしょう。

VRML読み込みルーチン

第2課題の参考になるかどうか分りませんが、 私が作成した(椋木先生改訂)サブルーチンを利用しても構いません。 ただし、利用した場合はその旨レポートに報告して下さい。
  1. vrml.c
  2. 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をメール送信する方法について簡単に 説明します。まず作成方法は以下のようになります。
  1. (emacs等でsample.texを作成)
  2. /usr/local/bin/platex sample.tex (sample.dviを生成)
  3. /usr/local/bin/xdvi sample.dvi (dviファイルを確認)
  4. /usr/bin/dvipdf sample.dvi sample.pdf (pdfファイルを生成)
  5. /usr/local/bin/acroread sample.pdf (pdfファイルの確認)
  6. 参考:/usr/local/bin/dvips sample.dvi sample.ps (psファイルを生成)
  7. 参考:/usr/X11R6/bin/ghostview sample.ps (psファイルの確認)
次いで、emacs内のmewで添付メールを送るには、以下のようにします。 Mewでメールの新規作成を始め、 Subjectや文章(カバーページ)を書いたあと、下記の作業をしてください。
  1. Prepare Attachment(C-c C-a)
  2. 添付ファイルのリスト中の空欄で、l (小文字のエル) [または、メニューから Mew/Draft→Attachment Command→Insert a File by Linking]
  3. 添付ファイルのパスを入力。[スペースで補完可能]
  4. 相手先での展開時のファイル名も指定できますが、 デフォルトのままでいいでしょう。
  5. 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>