1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

POV-rayを使った3DCGの描画・アニメーション作品紹介

Last updated at Posted at 2023-09-29

㊗︎初投稿

はじめまして!Reishinと申します.
記念すべき1投稿目、POV-rayでできることや作品例を紹介していきたいと思います!

実は私のプロフィール画像のカエルもPOV-rayで制作したものです🐸

POV-rayってなんぞ??

レイトレーシング技術を用いた「3次元コンピュータグラフィクス」を制作できるツールです.

ちなみに・・・
レイトレーシング(ray-tracing, 光線追跡法)とは
ざっくり言うと、物体に対して光の当たり具合をシミュレーションしてくれる技術のことです.
この技術があるかないかで、画像のリアル度が大幅に変わります.

どうやって作るんじゃ??

図形同士を組み合わせたり引いたりする!!!
Cube(立方体), Sphere(球), Cylinder(三角錐)など使いたい立体図形の、座標位置や大きさ、角度などをコードで調整して作り上げていきます.(((地道

図形同士を引くというのは、例えば
立方体から球を引いて、立方体に球形の穴を作ったりなど.

実際どういうのが作れるの?? 〜作品紹介〜

こんなのが作れます.

カエルくん

input.jpg
この子は、Sphere(球体)のみを組み合わせて作成しました.

え?この葉っぱの茎部分はどうしたのかって?
鋭い指摘ですね・・・

実は茎部分はよ〜〜〜く見るとSphereが連なっているのです!
ちょこっとだけコードを見せます.

	// stem
	   union{
	   #declare Kara4 = -1.4;
	   #declare Made4 = 2.3;
	   #declare T4 = Kara4;

	   #while (T4 < Made4)
    	    #declare X4 = T4;
     	    #declare Y4 = (1/4) * X4 * X4 - 0.15;
     	    object {
   		   Sphere
   		   pigment { color DarkGreen }
   		   scale 0.03
   		   translate <X4, Y4, -0.145>
   		   rotate <0, 0, -120>
  	    }
   	   #declare T4 = T4 + 0.01;
	   #end

何をしているかと言うと、
-1.4 <= x座標 < 2.3 の範囲を0.01ずつ変化させるごとに
y = 1/4 * x^2 - 0.15 に当てはめてy座標を算出し
求まったxy座標の位置にSphereを設置しています.

そう、茎の部分は実は2次関数になっているんです.

	// mouth
	#declare Kara = -0.7;
	#declare Made = 0.7;
	#declare T = Kara;

	#while (T < Made)
 	  #declare X = T;
  	 #declare Y = (1/3) * X * X + -0.15;
  	 object {
   		Sphere
   		pigment { color Black }
   		scale 0.01
   		translate <X, Y, -0.47>
  	 }
   	#declare T = T + 0.01;
	#end

口の部分も同じ要領です.
こちらは y = 1/3 * x^2 - 0.15 ですね.

kadai4_animated.png
アニメーションにもできちゃいます.👀

汽車

スクリーンショット 2023-09-30 1.20.01.png

Sphereはもちろんのことcubeやcylinderも使っています.
また、図形同士を組み合わせるだけでなく、引いています(窓や荷台部分).

difference {
	object {
		Cube
		texture { T_Wood4 }
		scale <0.8, 0.35, 0.6>
		translate <-1.9, 0.2, 0>
	}
	object {
		Cube 
		texture { T_Wood10 }
		scale <0.65, 0.25, 0.5>
		translate <-1.9, 0.4, 0>
	}
}

この部分は、2車両目の部分で、CubeからCubeを引いて穴を開けています.

最後に

約1年前に作成して以来、POV-rayは触ってなかったため、時間を作ってまた何か制作したいな〜〜〜と考えています.
コード自体は書きやすいのですが、座標の調整が大変で地道な作業にはなります.
その分、完成した時の達成感は尋常じゃないです!

ぜひ、この機会にPOV-rayを始めてみてはどうでしょうか?

ここまでお付き合いくださり、ありがとうございました!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?