openFrameworksでドーム映像制作
[2017/05/18追記]
- 3つ目の動画で使用している楽曲の使用許可をいただけたので、音ありに変更。
- その他のスナップショットに追加。
今回は、ドーム状のスクリーンに投影する映像を作った話です。 ドーム映像の業界では、ドームマスターと言われている、円型にレンダリングされた形式の映像を投影しています。 (参考:ORIHALCON Project: 全天周映像(ドーム映像)の作り方)
私がやっていたのは2015年の頃で、openFrameworksを使ってドームマスター形式の映像を作ってました。
以前は、ドームマスター形式の映像はAfterEffectsのプラグインなどで制作されることも多かったみたいですが、
最近では、Unityなどを使って制作することもできるようです。
Unityによるインタラクティブドームコンテンツ作成 | 株式会社オリハルコンテクノロジーズ | ORIHALCON Technologies, Inc.
今やるなら、断然 Unity でやりたいですね!
続きを読むretryするデコレータ
失敗してもretryするデコレータを書いてたら、頭の体操みたいなコードができました。 機能要件は、試行の最大回数と試行の時間間隔をデコレートするときに指定できるように…
それから、下記のコードはf文字列を使っているので python3.6+です。
from functools import wraps from time import sleep, time def retry(count=0, delay=0): def _retry(func): @wraps(func) def wrapper(*args, **kwargs): _delay = delay _time = time() for c in range(count): print(f'time: {time()-_time:.1f}') success = func(*args, **kwargs) if success or c == count-1: break sleep(_delay) _delay *= delay return success return wrapper return _retry try_count = 0 @retry(count=3, delay=1.5) def unstable_func(threshold): global try_count try_count += 1 print(f'try count: {try_count}') return True if try_count > threshold else False if __name__ == '__main__': print(f'unstable_func is {"succeeded" if unstable_func(3) else "failed"}') print() print(f'unstable_func is {"succeeded" if unstable_func(3) else "failed"}')
実行結果は
time: 0.0 try count: 1 time: 1.5 try count: 2 time: 3.8 try count: 3 unstable_func is failed time: 0.0 try count: 4 unstable_func is succeeded
実際に使うときは、ちゃんとしたライブラリを使いましょう!
- pypi/retry → ドキュメントが簡潔。
- pypi/retrying → 機能豊富な感じ。