mieki256's diary



2017/05/12(金) [n年前の日記]

#1 [ubuntu][cg_tools] Ubuntu Linux上でフラクタル図形を描画

足元に Ubuntu Linux 16.04 LTS をインストールしたまま放置しているサブPCがあるので、コレを使ってフラクタル図形を描画できないものかなと。サブPCに計算させとけば、レンダリング計算でいくら時間がかかっても、気にせずメインPCで他の作業ができるよなと。てなわけで、Ubuntu上で動かせるその手のツールを探してみたり。

_FLAM3 というサイトで、 _qosmic なるアプリが紹介されていた。Linux上で動くらしい。どうやら flam3 というこの手のソレ用ライブラリのフロントエンドっぽい感じ。コレをUbuntuにインストールできないものかと。

qosmicをインストール。 :

必要になるかどうかは分からんけど、flam3自体は apt-get でインストールできた。
sudo apt-get install flam3

qosmic は、Ubuntu公式リポジトリ上でパッケージが用意されてないのだけど。 _GetDeb なる場所でパッケージが公開されているらしい。GetDeb ってなんじゃろ。

_UbuntuTips/Application/GetDeb - Ubuntu Japanese Wiki
_GetDeb.netのリポジトリでUbuntuアプリの最新版へのアクセスが超簡単に | ライフハッカー[日本版]

GetDebは、今後Ubuntuに導入されることが予想されるソフトウェアや、公式リポジトリにはないが使いやすいソフトウェアのパッケージを公開しているリポジトリです。GetDebリポジトリを登録することにより、導入済みソフトの最新版を入手することもできます。

UbuntuTips/Application/GetDeb - Ubuntu Japanese Wiki より

そういうものらしい。

_GetDeb.net V2 - Software for Ubuntu Linux - Updates for Ubuntu all に飛んで、「1. Install the getdeb package.」と書いてあるところの「getdeb」のリンクをクリックすると、getdeb-repository_0.1-1-getdeb1_all.deb がDLできる。

DLした getdeb-repository_0.1-1-getdeb1_all.deb を右クリックして、「ソフトウェアのインストール で開く」等でインストールしてやれば、getdeb が使える状態になるらしい。その後、
sudo apt-get update
をすれば利用できるパッケージが一気に増える。この状態で以下を実行。
sudo apt-get install qosmic
インストールできた。ありがたや。

試用してみた印象。 :

UIは Apophysis と似たような感じ。三角形をドラッグして位置を変えたりすると、プレビュー結果が変わったり。というか、GitHub上の README.md にも「Apophysisを使ったことがあるなら分かるやろ」って書いてあるな…。

Ctrl+Rを押すか、ツールバー上のボタンをクリックすると、ランダムに図形が生成される。が、アプリを起動するたびに、毎回同じ形が順番に表示されるような…? 気のせいだろうか。 *1

Ctrl+I、もしくは、File → Render to File、あるいはツールバー上のボタンで、レンダリング結果を画像ファイルとして保存できる。

レンダリング時間は…CPU AMD Athlon II X2 250 (2コア、3.0GHz)だと、やっぱり30分〜2時間ぐらいかかってしまう感じ。

レンダリング結果。 :

こんな感じに。

qosmic_0001.jpg

qosmic_0002.jpg

qosmic_0003.jpg

qosmic_0004.jpg


一応、レンダリングした直後のpng(1920x1080、アルファチャンネル付き、1ファイル約5MB前後)も置いときますので何かに使えそうなら自由に使ってくださいって使い道が無さそうだけど…。

_qosmic_0001.png
_qosmic_0002.png
_qosmic_0003.png
_qosmic_0004.png

コマンドラインでレンダリングしたい。 :

せっかくLinux上でレンダリングできたのだから、コマンドラインツールでレンダリングしてアニメーションを生成してみたい、のだけど、そういうツールは存在するのだろうか。

ググってみたら、どうやら flam3-animate なるコマンドラインツールがソレっぽい。Apophysis等でキーフレームになるプロジェクトファイルを作って、ツールに渡して、てな形になるのかなと。

_Animation - scottdraves/flam3 Wiki
_apophysis animation tutorial (Internet Archive)

しかし、使い方がさっぱりわからん…。

そもそもWindows版のバイナリからして見つからなくて。Ubuntu Linux なら flam3 をインストールすると flam3-animate も一緒にインストールされるけど。

*1: もしかするとランダムシードを決め打ちにしてあるのかもしれない。だとしたら、そこは時間を使うなりしてランダムにしてほしい気も。あるいはランダムシードを入力できるようにするとか。

#2 [cg_tools] Apophysisでアニメーションを作成

Apophysis + スクリプトで、アニメーションを作成できるらしいので試したり。レンダリング時間が不安だけど、画質をめちゃくちゃ落とせばなんとかなるのではないか、と。それに、動いてれば結構分からないものだし。

Apophysis用スクリプトについて。 :

以下は、Apophysis 2.02 に同梱されていた、Animation Render.asc というスクリプトの内容。微妙に書き換えてしまったけど…。とりあえずコレを使えばアニメーションが生成できる、らしい。
{ ************************************ }
{ Animation rendering example script.  }
{ Mark Townsend, September 2003.       }
{ *************************************}

{ Set the size of the rendered frames. }
Renderer.Width := 1280;
Renderer.Height := 720;
{ Need to calculate the scale of the flame for the image size... }
SetRenderBounds;
{ I  set sample density set for reasonable speed.
  Increase it for higher quality images, which will take longer to render.
  The other Flame parameters will use the default display values. }
Flame.SampleDensity := 200;
for j := 0 to 119 do // 120 frames,
begin
  for i := 0 to Transforms - 1 do
  begin
    SetActiveTransform(i);
    { 360 degrees / 120 will give an animation that cycles seamlessly. }
    Rotate(3.0);
  end;
  { The filename needs to be changed for each frame,
    otherwise they'd just be rendered over and over to the same file.
    I use 0000.bmp to 0099.bmp }
  Renderer.Filename := 'D:\tmp\apophysis_render\' + Format('%.4d', [j]) + '.bmp';
  Render;
end;
UpdateFlame := False;

処理内容としては、全ての三角形を少しずつ回して、その都度レンダリングして画像を保存。フレーム数分(360度回るまで)繰り返す、みたいな感じだろうか。

構文としては、おそらく以下のような感じ、だと思う。たぶん。
  • コメント文は、「{」「}」 で挟む。
  • 命令文の最後には「;」がつく。
  • 変数への代入は、「:=」を使う。
  • Renderer.Width、Renderer.Height は、レンダリング画像の横幅と縦幅。
  • SetRenderBounds で、レンダリング画像サイズを確定してる?
  • Flame.SampleDensity が小さい値なら、ドットは目立つけどレンダリングはすぐ終わる。大きい値なら、ドットは目立たなくなるけど時間がかかる。
  • for j:=0 to 119 do begin 〜 end で、フレーム数分のループをしてる。
  • for i := 0 to Transdorms - 1 do begin 〜 end で、全ての三角形に対して処理をしてる。
  • 三角形は、回転だけを行ってる。360度回れば元の場所に戻ってくる。(ループアニメになる)
  • Renderer.Filename で、レンダリング画像の保存ファイルパスを指定。
  • Render でレンダリングして画像を保存。

上記スクリプトは直接スクリプトファイル(.asc)を書き換えて設定を変更するけど、そのあたりをダイアログで入力できる、 _CJ-AnimationRender.asc というスクリプトもあるそうで、今回はこちらを使わせてもらったり。ありがたや。

Apophysisのスクリプトエディタがなんだか妙。 :

フォントが欠けて表示される…。おそらく日本語環境で起きる問題だろうけど…。

何かしらのテキストエディタを使って編集したほうがいいのかもしれない。

おそらくだけど、Delphiの構文を流用すれば色分け表示できるんじゃないかと…。例えば、 _Meryエディタ で、表示 → 編集モード → Delphi にしたら、それっぽく色分け表示できた。

結果画像。 :

こんな感じの動画が作れた。






Apophysis 2.09 + CJ-AnimationRender.asc で連番bmpを出力。AviUtl で mp4 に変換。

YouTube にアップロードすると、相変わらずガビガビ動画になるなあ…。

#3 [nitijyou] 部屋の温度がヤバい

なんだか暑いなと思ったら部屋の温度が31度になってた…。

まさか、PCを2台動かしてたから、ではあるまいな…。しかも1台はCPUを全力で回してるし…。と思ったけど犬の散歩で外に出たらやっぱり暑かった。

以上、1 日分です。

過去ログ表示

Prev - 2017/05 - Next
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 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project