情報メディアリテラシII -
プログラムを利用してパターンを作る
第1回 - 第2回 - 第3回 - 第4回 - 第5回
-
POV-Ray入門
第1回 - 第2回 - 第3回 - 第4回 - 第5回

連絡

前回までの演習では、C言語を利用して2次元模様を作ることに取り組んでいました。今週からはPOV-Rayを使って3次元CGに挑戦することにします。前回の演習でプレゼンテーションをしなかった人も自分で作った模様の画像とCのソースコード(main.c)は提出してください。少し成績は下がりますが、今回は特例ということで、遅れでも提出を受け付けることにします。まだ提出していない人も、kadai@sato-lab.jpまで大至急課題を送ってください。演習系の科目では、決められた期間内に課題を出すことが単位を取得することの大前提です。この情報メディア演習II神奈川工科大学情報学部情報メディア学科の1年次の必修科目なので、がんばって課題を出してください。 提出していない人は、必修科目の意味することをよく考えてください。

未提出者の課題提出を待っています。

この演習で体験すること

前回までの演習では、C言語を利用して2次元模様を作ることに取り組んでいました。今週からはPOV-Rayを使って3次元CGに挑戦することにします。

POV-Ray(ポブレイと呼びます)は、世界中で使われている3次元CG用フリーソフトウェアの一つです。パソコンからスパーコンピュータまで、様々なコンピュータで利用できます。POV-Rayは、3次元形状の形をプログラムのような方法で指定する(これをシーンファイルと呼びます)し、レイトレーシング法によって高品質な画像を生成することが出来ます。

今回は、POV-Ray入門の第1回目なので、ソフトウェアのインストールや簡単なシーンファイルの作成を行います。

今回の演習で使用する教材

POV-Rayのインストール

作業手順

  1. 上で指定された場所から、POV-Rayをダウンロードして下さい。
  2. ダウンロードしたファイルをダブルクリックしてインストールを行って下さい。 詳しくは、インストールのページを見てください。 と言うか、このページを見て作業をしてください。

まずは使ってみよう

POV-Rayはシーンファイル(Scene File)というテキスト形式のファイルから画像を作り出します。このシーンファイルの中には、物体形状の情報、カメラ(視点)の情報、光源の情報などを記述します。下にシーンファイルの簡単なサンプルを示します。

シーンファイルの簡単なサンプル

#include "colors.inc"
#include "shapes.inc"

camera{
  location < 0,10,-10 >
  look_at < 0,0,0 >
  angle 20
}

light_source{ < -10,10,-10 > color White}
light_source{ < 10,10,-10 > color White}

object{
  Sphere
  pigment { color Red}
}

POV-Rayでは次のような手順で画像を作り出します。

POV-Rayの起動 シーンファイルを書く レンダリングの実行 画像ファイルの完成

演習手順

POV-Rayを起動する
[スタート]→[プログラム]→[POV-Ray for Windows]を選択します。
POV-Ray起動

起動時にメッセージなどを表示するウィンドウが開くことがありますが、 そのような場合には全て[OK]ボタンを押して閉じてしまって下さい。

これとかこれ
Ok押して
Ok押して
新規ファイルの作成
左上にあるNewボタンをクリックします。 すると、新しい画面が開き、これで新しいシーンファイルを作成する準備が完了しました。
"New"ボタンを押す前"New"ボタンを押した直後
New前
New後

ここに、上のシーンファイルの簡単なサンプルの内容を書き込んで下さい。 POV-Rayでは、大文字と小文字を区別するの注意して入力してください。

ファイルの保存
書き込み終わったら、[Save]ボタンをクリックして下さい。その後に現るウインドウの"Yes"ボタンをクリックしてください。
"Save"ボタンを押す前"Save"ボタンを押した直後
Saveボタン押す前
Saveボタン押した後

ファイル保存ダイアログが現れるので、適当な場所に、適当なファイル名をつけて、保存して下さい。 ただし、ファイル名の終わり(拡張子)は.povとして下さい。

Saveボタン押す前
レンダリング
[Run]ボタンをクリックしてください。レンダリングが開始されます。
レンダリングスタート

レンダリング終了すると、画像が表示されます。いくつかのウインドウが表示されますが、Okボタンをクリックしてください。

レンダリング終了

シーンファイルに何らかのエラーがあると、次の画面のように、エラーがある行の色が変わります。 この場合はうち間違いがないかなどを調べてください。この例では、"Red"ではなく"red"になっています。

エラー発生

画像を表示しているウインドウの”閉じる”ボタンをクリックすると、画像ウインドウを閉じることが出来ます。

ここまでできたら、先生かTAの人にOKをもらってください。 確認をしてもらう前には、画像ウインドウを閉じないでください。

シーンファイルの概略

先ほど入力したものを一部変えたサンプルを下に示します。

シーンファイルの簡単なサンプル

#include "colors.inc"
#include "shapes.inc"

camera{
  location < 10,5,-10 >
  look_at < 0,0,0 >
  angle 20
}

light_source{ < -10,10,-10 > color White}
light_source{ < 10,10,-10 > color White}

object{
  Sphere
  pigment { color Yellow }
}



←カメラ(視点)の設定です。





←ライト(光源)の設定、ライトは2本です。



←3次元形状の設定です。
形の情報はobjectの中に書きます。


camera{
  location < 10,5,-10 >
  look_at < 0,0,0 >
  angle 20
}

の部分で、カメラ(視点の設定)をしています。

"location{・・・}"の部分では、カメラの位置を指定しています。数学などでは3次元空間の点の座標を表すのに(x座標の値,y座標の値,z座標の値)と書きますが、 POV0-Rayでは3次元空間の点の座標を表すのに<x座標の値,y座標の値,z座標の値>と書きます。従って、この例では(10,5,-10)という場所にカメラが置かれています。

"look_at"の部分では、カメラが見ている場所を指定しています。この例では、カメラは原点の方を向いていることになります。また、"angle"の部分では、画角を六十分法で指定してます。数字が大きくなると広角レンズのようになります。

"object{・・・}"の部分では、表示する形状や色などを指定しています。 この例では、物体形状としてSphereとなっているので、物体の形状は中心が原点(0,0,0)で半径1の球となっています。 また、"object{・・・}"内のの"pigment{color Yellow}"の部分で色を指定しています。この場合は、Yellowなので黄色となります。

色の指定

上でも書いたように、色は"object{・・・}"内にある"pigment{・・・}"の部分で設定をします。 色の指定の仕方は、上の例のように英語名で設定する方法と、RGB値を利用して設定する方法の2つがあります。

RGB値での設定

RGB値で設定する場合には、2つの方法があります。

  1. 一つ目の方法は、"pigment{color < R値,G値,B値 >}"のように設定するものです。 POV-Rayの場合、red,green,blueの後に指定する数値は0〜1までの実数値となります。 例えば、赤色を設定する場合には、"pigment{colro red 1 green 0 blue 0}"となります。 黄色にするには、"pigment{color < 1,1,0 >}"とします。 また、"pigment{color < 0.5,0.5,0.5 >}"とすると灰色になります。

  2. 二つ目の方法は、"pigment{color red R値 green G値 blue B値}"のように設定します。 一つ目の方法と同じく、red,green,blueの後に指定する数値は0〜1までの実数値となります。 例えば、赤色を設定する場合には、"pigment{colro red 1 green 0 blue 0}"となります。黄色にするには、 "pigment{color red 1 green 1 blue 1}"とします。 また、"pigment{color red 0.5 green 0.5 blue 0.5}"とすると灰色になります。

英語名での設定

英語名で設定する場合には、例で取り挙げた"Yellow"や"White"のように先頭の文字を大文字にする必要があります。 例えば、ピンク色にする場合には、"pigment{color Pink}"となります。 英語名で設定できる主な色は、次の表のような色です。この色の情報は、colors.incの中で定義されています。

物体の色の強さを変えるには、"pigment{color 2*< 1,0,0 >}"や"pigment{color 2*Red}"などのように"数字*"とします。 "pigment{color 0.5*< 1,1,0 >}"の0.5のように1より小さな値を指定すると色は弱くなります。 "pigment{color 1.5*Pink}"の1.5のように1より大きな値を指定すると色は強くなります。

POV-Rayで使える色名称
色名色表示 色名色表示 色名色表示
Red  Green  Blue 
Yellow  Cyan  Magenta 
Clear  White  Black 
Gray05  Gray10  Gray15 
Gray20  Gray25  Gray30 
Gray35  Gray40  Gray45 
Gray50  Gray55  Gray60 
Gray65  Gray70  Gray75 
Gray80  Gray85  Gray90 
Gray95  DimGray  DimGrey 
Gray  Grey  LightGray 
LightGrey  VLightGray  VLightGrey 
Aquamarine  BlueViolet  Brown 
CadetBlue  Coral  CornflowerBlue 
DarkGreen  DarkOliveGreen  DarkOrchid 
DarkSlateBlue  DarkSlateGray  DarkSlateGrey 
DarkTurquoise  Firebrick  ForestGreen 
Gold  Goldenrod  GreenYellow 
IndianRed  Khaki  LightBlue 
LightSteelBlue  LimeGreen  Maroon 
MediumAquamarine  MediumBlue  MediumForestGreen 
MediumGoldenrod  MediumOrchid  MediumSeaGreen 
MediumSlateBlue  MediumSpringGreen  MediumTurquoise 
MediumVioletRed  MidnightBlue  Navy 
NavyBlue  Orange  OrangeRed 
Orchid  PaleGreen  Pink 
Plum  Salmon  SeaGreen 
Sienna  SkyBlue  SlateBlue 
SpringGreen  SteelBlue  Tan 
Thistle  Turquoise  Violet 
VioletRed  Wheat  YellowGreen 
SummerSky  RichBlue  Brass 
Copper  Bronze  Bronze2 
Silver  BrightGold  OldGold 
Feldspar  Quartz  NeonPink 
DarkPurple  NeonBlue  CoolCopper 
MandarinOrange  LightWood  MediumWood 
DarkWood  SpicyPink  SemiSweetChoc 
BakersChoc  Flesh  NewTan 
NewMidnightBlue  VeryDarkBrown  DarkBrown 
DarkTan  GreenCopper  DkGreenCopper 
DustyRose  HuntersGreen  Scarlet 
Med_Purple  Light_Purple  Very_Light_Purple 

演習手順(色を変える)

色を変えた球を描いてみよう。
第1段階(RGB値による指定)
RGB値を設定する方法で、マゼンタ色の球を描くことに挑戦します。
  1. POV-Rayの左上にある"New"ボタンを押して、新たらしいウィンドウ(タブ)を作ります。
  2. 上のサンプルプログラムを打ち込みます。
  3. 球の色がマゼンタになるように、打ち込んだプログラムを変更します。ただし、色の設定にはRGB値を利用してください。
  4. レンダリングを実行してください。

これが出来たら、先生かTAの人に確認をしてもらったください。

第2段階(色名による指定)
色名でを設定する方法で、オレンジ色の球を描くことに挑戦します。
  1. POV-Rayの左上にある"New"ボタンを押して、新たらしいウィンドウ(タブ)を作ります。
  2. 上のサンプルプログラムを打ち込みます。
  3. 球の色がオレンジになるように、打ち込んだプログラムを変更します。ただし、色の設定には色名を利用してください。
  4. レンダリングを実行してください。

これが出来たら、先生かTAの人に確認をしてもらったください。

第3段階(クイズに挑戦)
確認クイズに挑戦してみてください。 合格点が取れたら、先生かTAの人に確認をしてもらってください。

形を変えてみる

"object{・・・}"内の形にかかわる部分を変えると、球以外の図形を描くことが出来ます。 上の例では、"object { Sphere ・・・}"となっているので球が描かれています。 POV-Rayでは、球や立方体、円錐、円柱などの基本的な形状が用意されています。 これらの形状はプリミティブ(基本形状)と呼ばれます。 "object{・・・}"内のSphereを、以下の表の命令に置き換えると、立方体、円錐、円柱などを位置に作り出すことが出来ます。

プリミティブの例
形状命令
立方体Cube
円錐(x軸方向)Cone_X
円錐(y軸方向)Cone_Y
円錐(z軸方向)Cone_Z
円柱(x軸方向)Disk_X
円柱(y軸方向)Disk_Y
円柱(z軸方向)Disk_Z

演習手順(形を変える)

第1段階(円柱を描く)
円柱を描くことに挑戦します。。
  1. POV-Rayの左上にある"New"ボタンを押して、新たらしいウィンドウ(タブ)を作ります。
  2. 上のサンプルプログラムを打ち込みます。
  3. 円柱となるように、シーンファイルを変更してください。
  4. レンダリングを実行してください。

これが出来たら、先生かTAの人に確認をしてもらったください。

第2段階(円錐を描く)
円錐を描くことに挑戦します。。
  1. POV-Rayの左上にある"New"ボタンを押して、新たらしいウィンドウ(タブ)を作ります。
  2. 上のサンプルプログラムを打ち込みます。
  3. 円錐となるように、シーンファイルを変更してください。
  4. レンダリングを実行してください。

これが出来たら、先生かTAの人に確認をしてもらったください。

第3段階(クイズに挑戦)
確認クイズに挑戦してみてください。 合格点が取れたら、先生かTAの人に確認をしてもらってください。

参考リンク

POV-Ray 3.5 利用参考マニュアル
POV-Ray3.5に添付されているドキュメントに基づいて作られた日本語版のリファレンスマニュアルです。色々な機能についての説明があるので、便利なページだと思います。
△先頭へ

アクセスカウンタ回の利用がありました。