POV-Ray 入門その 5

情報メディア導入ユニット(10 月 21 日分配付資料金曜日 3 限分)
POV-Ray 入門その 5
情報メディア学科
佐藤尚
このドキュメントは、http://www.sato-lab.jp/ml2/05.pdfからダウンロードすることが出来ます。
1. この演習で体験すること
前回に引き続き、CSG 演算を利用して複雑な形状を作り出す方法を学びます。自分で作った図形に
名前をつける方法を学びます。
2. 今回使用する教材
教科書(POV-Ray による 3 次元 CG 制作)。
3. 演習課題 5-1(Peer Review)
http://www.sato-lab.jp/ml2/ex5-1 で指定された 8 枚の画像を見て、指定された画像の評価を
して下さい。1∼4 番の画像は演習問題 4-6 で作成したものです。5∼8 番の画像は演習問題 4-7ii)
で解答してもらった数値を利用して、作成した画像です。
1∼4 番の画像
5∼8 番の画像
(1)
きちんと画像が表示さているか?
きちんと画像が表示さているか?
(2)
平面が表示されているか?
建物と地面が表示されているか?
(3)
灰皿のような形状が表示されている?
建物と地面が離れて表示されているか?
(4)
背景や空などがきちんと表示されている?
建物は地面にめり込んで表示されているか?
4. 演習課題 5-2(オブジェクトに名前をつける)
i.
「#declare 名前=3D オブジェクトの定義」のように#declare 命令を使うと、自分の
作った 3D オブジェクトに名前をつけることが出来ます。これでつけた名前は、Sphere
や Cube などと同じように使うことが出来ます。下のシーンファイルは、#declare 命
令を使ったものです、レンダリングをしてみて下さい。
#include "shapes.inc"
#include "colors.inc"
camera{
location <10,10,-10>
look_at <0,0,0>
angle 60
}
light_source{ <-10, 10, 20> color White}
1
light_source{ < 10, 10,-10> color White}
light_source{ < 10, 10,-100> color White}
background{color White}
#declare apple_body = union{
difference{
object{
Sphere
scale 5
pigment{color Red}
}
object{
Sphere
scale 4.5
pigment{color Flesh}
}
}
object{
Sphere
scale 4.5
pigment{color Flesh}
}
}
// apple_body という名前をつける
object{
apple_body
scale 0.5
translate <-5,0,0>
}
object{
apple_body
scale 0.5
translate <5,0,0>
}
ii.
英語の単語としては declare の意味は何でしょうか?正しいと思うものを選び、キャ
リアポートフォリオ上で解答して下さい。
1
iii.
飾り付ける
2
機密から外す
3
宣言する
4
話す
i.のシーンファイルの apple_body は皮と中の身を作ってあります。それを確認するた
めに、apple_body を Cube でカットするシーンファイルを下に示します。左右のシー
ンファイルは基本的には同じですが、一カ所だけ cutaway_textures という命令を入れ
ている部分だけが異なっています。左右のシーンファイルをレンダリングして、違い
を見て下さい。
cutaway_textures 無し
cutaway_textures 有り
#include "shapes.inc"
#include "colors.inc"
camera{
location <10,10,-10>
look_at <0,0,0>
angle 60
}
#include "shapes.inc"
#include "colors.inc"
camera{
location <10,10,-10>
look_at <0,0,0>
angle 60
}
2
light_source{ <-10, 10, 20> color White}
light_source{ < 10, 10,-10> color White}
light_source{ < 10, 10,-100> color White}
light_source{ <-10, 10, 20> color White}
light_source{ < 10, 10,-10> color White}
light_source{ < 10, 10,-100> color White}
background{color White}
//apple_body という名前でリンゴの形状を作る
#declare apple_body = union{
difference{
object{
Sphere
scale 5
pigment{color Red}
}
object{
Sphere
scale 4.5
pigment{color Flesh}
}
}
object{
Sphere
scale 4.5
pigment{color Flesh}
}
}
background{color White}
//apple_body という名前でリンゴの形状を作る
#declare apple_body = union{
difference{
object{
Sphere
scale 5
pigment{color Red}
}
object{
Sphere
scale 4.5
pigment{color Flesh}
}
}
object{
Sphere
scale 4.5
pigment{color Flesh}
}
}
difference{
object{
apple_body
}
object{
Cube
translate <0,1,0>
scale 10
}
difference{
object{
apple_body
}
object{
Cube
translate <0,1,0>
scale 10
}
cutaway_textures // ここだけが異なる
}
}
CSG を利用してオブジェクトの作成を行うと、その表面のテクスチャ(物体表面の色や模様)は元
の表面があった方の物体のテクスチャになりますが、cutaway_texture 命令を使うと、元の物体と
同じテクスチャにすることが出来ます。
iv.
iii.のシーンファイルの一部を変更したり、付け加えたりして、下のような 2 つの画像
となるシーンファイルを作って下さい。レンダリング結果の画像をキャリアポートフ
ォリオ上にアップロードして下さい。
芯無し
芯有り
3
v.
【オプション課題】下のシーンファイルに命令を付
け加えて、右図のようにレンダリングされるように
して下さい。レンダリング結果の画像をキャリアポ
ートフォリオ上にアップロードして下さい。つまり、
リンゴ(?)の中に種を入れて下さい。
#include "shapes.inc"
#include "colors.inc"
camera{
location <10,10,-10>
look_at <0,0,0>
angle 60
}
light_source{ <-10, 10, 20> color White}
light_source{ < 10, 10,-10> color White}
light_source{ < 10, 10,-100> color White}
background{color White}
// apple_seed でリンゴの種の形状を定義
#declare apple_seed = union{
difference{
object{
Sphere
scale 1
pigment{color Black}
}
object{
Sphere
scale 0.8
pigment{color White}
}
}
object{
Sphere
scale 0.8
pigment{color White} }
scale <0.5,1,0.2>
}
// apple_body でリンゴの形状を定義
#declare apple_body = union{
difference{
object{
Sphere
scale 5
pigment{color Red}
}
object{
Sphere
scale 4.5
pigment{color Flesh}
}
}
object{
Sphere
scale 4.5
pigment{color Flesh}
}
}
// これ以降に命令を追加
5. 演習課題 5-3(ちょっと複雑な形状を作る)
i. 教科書 pp.48∼pp.52(3-2-5)を読んでください。この部分では、少し複雑な形状の作り方を説
明しています。特に、自分で作った形状に名前をつける declare 命令は便利な命令です。
ii. 下の中から 1 つの形状を選び、球、円柱、円錐などを上手く組み合
わせて、その形状を表示するようなシーンファイルを作って下さい。
4
レンダリング結果の画像をキャリアポートフォリオ上にアップロードして下さい。
雪だるま、ミッキーマウスもどき、ドラえもんもどき、独楽、
右の図のようなブロックを組み合わせて作った形状
iii. 上で作った形状を 3 個以上画面に表示するようなシーンファイルを書いてください。レンダ
リング結果の画像をキャリアポートフォリオ上にアップロードして下さい。
5