情報メディア導入ユニット(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
© Copyright 2024 Paperzz