KOKAの頭に泡のように浮かんだ思い・考え、口を衝いて出るつぶやき・ぼやき、等などを詰め込んだスクラップブックのようなブログ。でもやっぱり話題は、趣味の3DCG・ヨット・スキーのことが主になるかも。何故か、花や木の話題も多かったりする(^_^)。
<< September 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>
pc
FOLLOW me on
KOKA1946をフォローしましょう
LINKS
『KOKA@尼崎通信』へ 『KOKAのCG』へ
SELECTED ENTRIES
CATEGORIES
ARCHIVES
RECENT COMMENTS
  • CadNav.comからダウンロードしたオートバイの3Dモデリングデータ、"Honda NR750 Motorcycle"
    KOKA (09/14)
  • CadNav.comからダウンロードしたオートバイの3Dモデリングデータ、"Honda NR750 Motorcycle"
    gumin (09/14)
  • Archive3D.netからダウンロードした船の3Dモデリングデータ、"Ship N090408"
    KOKA (07/13)
  • Archive3D.netからダウンロードした船の3Dモデリングデータ、"Ship N090408"
    KOKA (07/13)
  • Archive3D.netからダウンロードした船の3Dモデリングデータ、"Ship N090408"
    卜部 (07/13)
  • Archive3D.netからダウンロードした船の3Dモデリングデータ、"Ship N090408"
    Asforham (07/13)
  • Archive3D.netからダウンロードした船の3Dモデリングデータ、"Ship N090408"
    KOKA (07/12)
  • Archive3D.netからダウンロードした船の3Dモデリングデータ、"Ship N090408"
    Asforham (07/12)
  • 2017年4月5日の琵琶湖は、桜はまだですがすっかり春
    KOKA (04/06)
  • 2017年4月5日の琵琶湖は、桜はまだですがすっかり春
    雄琴のSHINE (04/06)
RECENT TRACKBACK
LINKS
PROFILE
MOBILE
qrcode
OTHERS
<< 2017年5月18日の花、ブラシノキ、ツクバネウツギ、サツキ、ゴデチア、マーガレット、ガマズミ、バラ、アサツキ、トキワツユクサ、ガザニア、マツバギク | main | 2017年5月19日の花、シモツケ、ヒルザキツキミソウ、ヘンルーダ、ホタルブクロ >>
"POV-Ray"で作った3DCG、『タンポポの綿毛』

2017年5月19日(金曜日)。この時期には散歩で歩いているとタンポポの綿毛によく出合います。以前からこのタンポポの綿毛を3DCGで作ってみたいと思っていました。

そんな時に、WEBで気になったCGのテクニックなどをメモにして貯めているフォルダーを読み直していて、"POV-Ray"で"Golf Ball"を作るサンプルを見つけました。

球の表面にディンプルを付けるロジックが書かれたコードです。ディンプルを掘るロジックをそのまま綿毛を植えるロジックに書き換えれば上手くタンポポの綿毛が表現できるのではないかと、気が付いたのです。

 

そのメモの原本の出処は次のとおりです。

POV-Ray: Newsgroups: povray.binaries.images: CGSE (Golf Ball)

この中の次の発言。

POV-Ray: Newsgroups: povray.binaries.images: CGSE (Golf Ball): Re: CGSE (Golf Ball)

 

これをそのまま"POV-Ray"のシーンに組み込んで実験してみました。

ゴルフボールにディンプルを付けるロジック。

まず、Blobを用いたマクロ。

#macro GeodesicBlob(n,R,Obj,k)
    #if (n=0)
      cylinder{-z,z,Obj,k}
    #else
      #local nL=pow(2,(n-1));
      #local i=-nL;
      #while (i<=nL)
        #local nS=4*(nL-abs(i));
        #if (nS=0)
            cylinder{-z,z,Obj,k translate<0,0,-R> rotate x*i*90/nL}
        #else

          #local j=0;
          #while (j<nS)
            cylinder{-z,z,Obj,k translate<0,0,-R> rotate x*i*90/nL rotate
y*j*360/nS}
            #local j=j+1;
          #end

        #end
        #local i=i+1;
      #end
    #end
#end

 

そして、ロジック的には殆ど同じですが、differenceを用いてくり抜くのに用いるマクロ。

#macro Geodesic(n,R,Obj)
    #if (n=0)
      cylinder{-z,z,Obj}
    #else
      #local nL=pow(2,(n-1));
      #local i=-nL;
      #while (i<=nL)
        #local nS=4*(nL-abs(i));
        #if (nS=0)
            cylinder{-z,z,Obj translate<0,0,-R> rotate x*i*90/nL}
        #else

          #local j=0;
          #while (j<nS)
            cylinder{-z,z,Obj translate<0,0,-R> rotate x*i*90/nL rotate
y*j*360/nS}
            #local j=j+1;
          #end

        #end
        #local i=i+1;
      #end
    #end
#end

この二つのロジックで作ったゴルフボールを並べてレンダリングしたもの。

Golf_Ball_tg11_w560h420q10.jpg

 

私はこのロジックを、cylinderのdifferenceでくり抜くのではなく、unionで植える様に変更しました。

そのレンダリング結果。

Golf_Ball_tg12_w560h420q10.jpg

この右側の球に円柱を植え込んだロジックを使います。

 

植え込むのは、"POV-Ray"でモデリングした次の「穂」です。

Watage_display_w560h420q10.jpg

この「穂」を、先程のcylinderの代わりにします。

こんな感じになりました。

Watage_Ho_Display_w560h420q10.jpg

 

後は、それらしく見えるように萼や茎を付け加えました。萼と茎は、WEBで見つけてきた沢山の花の3Dモデリングデータを"POV-Ray"形式に変換してライブラリ化しているものから取り出しました。

ただ、今回使ったものはポリゴンが粗くて不出来ですが。

 

≪ タンポポの綿毛 ≫

タンポポの綿毛
上の画像をクリックすると大サイズ(1600*1200)画像を表示

 

WEBでたくさん見つかるタンポポの綿毛の写真を見ると、背景や遠くの綿毛をボケを使って処理したもの目につきます。

そこで、今回私としては初めての"POV-Ray"の"focal blur camera"を使ってみました。

"POV-Ray"のサンプルソースから抜粋。

// focal blur camera
camera {
        perspective //keyword is facultative in this case
        location <50,10,30>
        right    x*image_width/image_height
        look_at <0,10,0>
        angle 35
        blur_samples 120 //add samples if you got a fast computer
        aperture 10
        focal_point <5,10,5>
}

ただ、これは非常に時間のかかる処理になるので、適当なaperture、 blur_samples等などの値を見出すのに苦労しています。

 

JUGEMテーマ:コンピュータ

| CG | 14:15 | comments(0) | - |