前回モデリングしたキャンプファイアの炎に少し手を加えて、ろうそくの炎をモデリングしてみようと思います。
前回キャンプファイアで使った炎との大きな違いは、炎の大きさです。特に、火点が小さくなります。炎の横幅を狭くして、ろうそくの炎を思い浮かべながら高さを調節しました。
更に、火点から少し上った辺りに、膨らんだ部分がある様なイメージが有ったので、炎の形を成形してみました。
成形修正箇所:candle_flame_2d.xitr
px=(px - fwid/4)*(1 - pk/2) + fwid/4;
↓
px=(px - fwid/16/2)*2*sin (PI*1/8*(1 - pk) + PI*pk) + fwid/2;
少し暴れて見えてくれるとイメージ通りです。
蝋燭のある風景として、燭台の上で燃える和蝋燭をモデリングしようと思います。
和蝋燭の芯は、竹ひごに和紙などを巻いて作り、最後に竹ひごを抜き取るため、中は空洞になっています。
燃える時、周りの空気のみならず中空の芯からも酸素が供給されるので、ゆらゆらと大きく揺らぎ、消えにくいそうです。
西洋蝋燭は芯が糸ですからね。そもそも、蝋自体の材質も違いますが、芯から、全体の構造までも違っているのです。なので、炎の見た目にも違いがあるんですね。
昔、照明が電気ではなくて炎だったころ、暗い廊下などを歩くときにろうそくを手で持って運ぶための燭台を手燭と言います。
持ち手が付いていて、そのまま机の上などに置けるようになっています。
今回は、手燭を机の上に置いた状態の風景をモデリングしてみました。
完成したデータをリンクしておきます。
1) | Xi-TRACEデータ | candle_flame.xitr |
2) | 座標計算用スクリプト | candle_flame_2d.xitr |
3) | マッピングデータ | flame_wood.jpg |
1)で、ろうそくの炎をモデリングしたレイトレーシングを実行します。1)の実行には、2)で生成した座標ファイルが必要となりますので、先に2)を実行して、座標ファイルを生成しておく必要があります。3)はマッピングデータで、1)から読み込んで使います。
完成した動画を以下にリンクしておきます。
沢山のメタボールを狭い範囲に集中して配置したことで、視線とメタボールとの交点リストバッファがオーバフロウして、ハングしてしまうケースが有った様です(バグ)。Xi-TRACEのバージョンによってはレイトレーシングが停止してしまう場合があるので、最新版(下のダウンロードコーナより)をお試しください。