[Recent news&events]

There’s no news&events

Joe Alter の Patent(hair)問題が解決したようです

CG/VFX 界隈では, よく知られた特許問題がありました.

– Pixar のモンテカルロサンプリング(=> 特許切れ)
– Mental images の準モンテカルロサンプリング(=> Pixar のモンテカルロサンプリングに対抗したものと思われる. 特許は有効であり, 一時は VRay が販売差し止めになったこともあったらしい? 最近では Pixar(RenderMan)にライセンスしたりしたようですが, 昨今の機械学習デノイズなどの登場により, あまり実務で利用する価値はほぼ無くなった気がします)
– Microsoft のなんかグラフィックス関連の特許が, 上記モンテカルロ or 準モンテカルロとクロスライセンスしていたような?
– SGI の浮動小数バッファ特許(=> 特許は patent pool 会社が買い取り, モバイル GPU メーカーに特許料徴収を目論んでいたようですが, 期限切れになりました https://www.phoronix.com/scan.php?page=news_item&px=OpenGL-Texture-Float-Freed)
Joe Alter(個人事業主?)による Hair の生成方式 https://patents.google.com/patent/US6720962B1/en

Joe Alter の Hair 特許は, 特に hair 関連業界(?)では有名で, これを侵害することなく hair/fur 関連技術を利用するのは難しかったようです. Joe Alter が, Autodesk に hair 特許をライセンスしたものの, Disney の XGen を Autodesk が買い取った(?)ことにより, Disney と訴訟になって揉めたりしたり(結果はどうなったのかしらん?),

Yeti に代表される関連ソフトウェアを販売差し止めなど, かなり広範囲に特許を活用していました.
(ちなみに, Joe Alter 特許は US でのみ申請されており grant され, US のみ有効なので, , Yeti は US 以外の国では販売できました)

Yeti fur plugin will not be sold in the United States
http://www.cgchannel.com/2012/05/yeti-fur-plugin-will-not-be-sold-in-the-us/

転機

そんなつよつよな Joe Alter 特許ですが, 2021 年 06 月 15 日まで有効であるので, あと 2 年くらいは静観かな, と思っていた矢先に, 衝撃的(?)な Epic Games(Unreal Engine)による買収がありました(Epic Games はバーチャルヒューマン関連を強化したいようで, rigging 関連を行う 3lateral も買収しています).

そして, Shave and a haircut(Joe Alter の hair モデリングソフト) のソースコードはオープンソース化されました(2019 年 10 月 23 日)

https://www.unrealengine.com/en-US/blog/shave-and-a-haircut-v9-6-for-maya

ソースコードがオープンであるのと, 特許というのは別物であり, ソースコードがオープンであるから特許の利用(grant)も OK というわけでは必ずしもありません. また, Patent の情報を見る限り, Epic Games が権利を保持していて有効なままなのは変わりません.

Shave and Haircut のコードには, UE4 の license(EULA) が適用されるようなので, 基本的にはUE4(Shave and Haircut)に対して特許侵害してはならないという条項はあるのですが, しかし, 実情はおおらかな対応のようです.
詳細は不明ですが, この買収劇により, Yeti も US で販売再開となりました.

Yeti fur plugin goes back on sale in the United States
http://www.cgchannel.com/2019/07/yeti-fur-plugin-goes-back-on-sale-in-the-united-states/

そんなわけで, hair 関連のツールを作って販売したりサービス提供というのも, 障壁がさがってきた感がありますね.

昨今, ソフトウェア関連においては, MPL 2.0 や Apache 2.0 のライセンスでオープンソースソフトウェアが配布されることが多くなり, 特許は grant するが, ただし特許侵害したら grant は無効にするよ, という特許の防衛的な利用が増えてきて, 特許(使用料)だけでがっぽがっぽ, みたいな風潮は無くなってきたような気もしますね.
(Facebook が, BSD だと特許条項がないので, 特許項目を追加したライセンス形態を提案していましたが, なにやらいろいろ反対の目にあい MIT に変更などがありました. MIT には特許条項がないのでこれはこれで問題はありそうではありますが. https://hackernoon.com/facebooks-bsd-patents-license-and-how-it-affects-you-66088e052845 )

補足

ちなみに, XGen はもはや開発者がおらず, メンテナンス(Maya Xgen)もままならない状態のようです(XGen Interactive Grooming(XGen と名前が付いているが, 別物に近い)は開発者が別なので, 細々とアップデートされているようではあります).

VFX 関連の hair 業者(?)からは, Shade and a haircut は微妙という話も聞きますので, 独自の hair ツールの制作の機運が高まります.

最近ではレイトレーシングベースの hair 関連業務を行っていますが, まだまだやるべきことはたくさんあります. 優秀な hair 若人さまを合法的なあらゆるどんな手段を使ってでも探し出し, 研究委託なりお仕事発注なり出資なりして, ツール作っていただく旅に出たい.

 

Nikon RAW の white balance pre-conditioning について

いつの頃からか, Nikon の RAW データ(NEF)では, R と B のチャンネルの RAW 値にスケーリングがかかっています.

これを, “White Balance Pre-conditioning”, “White Balance pre-scaling” と呼んでいるようです(日本語で, これに対する良い訳はあるのでしょうか?)

http://www.strollswithmydog.com/bayer-cfa-spectral-power-distribution/

http://forum.luminous-landscape.com/index.php?topic=74178.0

http://blog.kasson.com/the-last-word/nikon-d810-dark-field-histograms/

これは A/D(Analog -> Digital) 変換された後, RAW にデータが記録される前に値がスケーリングされます.

上記リンクにあるように, プレスケーリングされることによって, RAW のヒストグラムを表示した時に歯抜けになることでその存在を確認することができます(プレスケールされ int に丸められるため, 特定の RAW 値が存在しないことになる).

このスケーリング機能を off にすることはできません.

したがって, ユーザ(RAW を扱うプログラム)では, スケーリングされた R と B を実質的な感度として扱うことになります(我々のような, 物理的絶対的に  RAW = センサーの A/D 値そのものが取れると思っているような人々からすると,  プレスケーリングがかかってしまうのはちょっと厄介ですね).

R と B については, 通常分光感度の絶対値が G よりも低いため, あらかじめスケーリングをかけることで, 精度を稼ぐというのが, この pre-conditioning の目的のようですね.

ちなみに, Nikon RAW(NEF) の場合でも, カメラの white balance 設定自体は RAW 値には影響を与えません.

HPG 2014 report

lyon_rhone

今や猫も杓子もレイトレという世の中, レイトレの国際学会といってもおかしくないであろう HPG 2014 に参加してきました.

http://www.highperformancegraphics.org/2014/

hpg2014

 

今年の HPG 2014 は EGSR 2014 と共催で, フランスはリヨンの University of Lyon で開催されました. 講堂がヨーロッパらしくてここで学問を極めることができるとは, リヨン大のひとはなんと恵まれているのでしょう. そしてローヌ川もすぐ近くにあってサイクリングや運動するのに最適です. 感動です.

lyon_u

Arnold レンダラの Marcos が「レイトレはどうやって VFX 映画界を制覇したのか!」という内容のキーノートスピーチを行いました.

IMG_2286

論文発表では皆さんレイトレ研究だったりハイパフォーマンスグラフィックスの成果を切磋琢磨して発表していました. 素晴らしい. 今年はスマホ時代のグラフィックス処理をどうするか? もトレンドとして見えてきたりしました.

コーヒーブレイクなどでは, 何人かの海外のレイトレの知り合いにも会う事ができて感動ひとしお. 新しいレイトレ研究アイデアも生まれました.

CERN

また, 知り合いのフランス在住レイトレ野郎を通じて, リヨンから車で 2 時間ほどで行ける, スイスはジュネーブにある CERN に行くことができました.

entrance

CERN では観測器(?)からのデータが 20 PB/year くらいの規模であるそうです. ビックデータと行っても過言ではないかもしれませんね. 「PB 規模のデータの可視化にもレイトレが有効ですよ」, と CERN の方々に説き伏せてきました.

CERN では構内の道の名前が「アインシュタイン通り」や「パウリ通り」などと命名されていて我々の心をゆさぶりました.

einstein

まとめ

  • レイトレが全盛.
  • でもまだまだやることはありますね. リアルタイムレイトレや, ゲーム, VR への応用など.
  • ヨーロッパはすばらしい.

来年の HPG 2015 は SIGGRAPH と共催になる予定です.

No ray-tracing, No life!

 

エクサバイトまで対応可能なバイナリシリアライズライブラリ ESON

コンピュータグラフィックスでは, 静的で, リードの比率が高く, 大量で1つのデータサイズが大きいバイナリデータを扱うのが多いので, そのためのシリアライズライブラリ ESON を作りました.

https://github.com/syoyo/eson/

 

実際には 1 年くらい前からありましたが, それなりに使うプロジェクトも増えてきたのでもう少し詳細を書いて普及してみようと思いました.

たとえば

https://github.com/lighttransport/obj2eson

など.

特徴は,

  • single header, single source でポータブル
  • C++ API は STL のみに依存
  • シリアライズ後のデータは linear になるので, リード時に mmap でより扱いやすい(予定). たとえば必要な部分領域だけをアクセスがあったときのみリードするなど.

バイナリデータのシリアライズについては, たとえば以下のような例がありますが, どれもしっくり来ませんでした.

  • redis : GB 単位のファイルを扱うのが難しい
  • bson(mongodb) : GB 単位のファイルを扱うのが難しい.  32bit のデータタイプしかサポートしていない.
  • Alembic : boost とか HDF5 とか依存関係が多すぎて扱いづらい.
  • protocol buffer 系 : 細かいデータの通信に特化した感があるので, 単一で大きなデータには向かない.

ESON のシリアライズの仕様については

https://github.com/syoyo/eson/blob/master/SPECIFICATION.md

にあります. 基本的には BSON の仕様を strip して 64bit 化した感じになります.

ESON の主な利用先としては以下が挙げられます.

  • テクスチャ, HDR 画像.
  • CAD やメッシュなどのジオメトリデータ.
  • シーングラフやシミュレーションキャッシュデータ.
  • NVM(Non volatile memory) 時代の KVS 的なストレージ.

NVM(persistent memory)は最近出始めて来た感があるので, ESON は CG 用に限らずより一般的な使い方にも使えるかもと考えています.

圧縮については, lossless は lz4, lossy(特に浮動小数点データ) はいいライブラリがまだありませんが wavelet か fpack あたりを取り入れてみたいと考えています.

Towards implementing ray tracing on FPGA at 2014.

While Imagination released a GPU IP with dedicated raytracing logic, still it would be meaningful to implement our own ray tracing on FPGA.

Here’s notes on ray tracing on FPGA nowdays(2014).

 

– Zynq

http://www.xilinx.com/products/silicon-devices/soc/zynq-7000/

ARM + FPGA logic.

 

Zynq-based FPGA dev board can be purchased from $200 for example ZYBO http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,719,1197&Prod=ZYBO

 

– SGRT: A Mobile GPU Architecture for Real-Time Ray Tracing

http://web.yonsei.ac.kr/wjlee/

 

– Towards Hardware Ray Tracing using Fixed Point Arithmetic

http://www.eng.utah.edu/~cs7940/papers09/HW-fixed-point.pdf

 

– Robust Ray-Bounding Volume Hierarchy Traversal with
Reduced Precision Integer Arithmetic

http://pages.cpsc.ucalgary.ca/~blob/papers/jeff/mar1jeffcgf/CGF/latex/paper.pdf

Integer is saving its area by 6x than floating point .

PS4Eye をハイフレームレートステレオカメラとして使う(試み)

PS4Eye は最大 240fps を出力できるステレオカメラとして魅力です.

https://github.com/ps4eye/ps4eye

カスタムファームウェアを利用すれば Linux などでも USB カメラとして利用することができます.

ただし, PS4Eye はコネクタが独自なので, まずはケーブルを改造(?)して, USB3.0 ケーブルとうまく結線してあげる必要があります.

Image

 

USB3.0 ケーブルから出ている白と緑の線は UBS2.0 互換のための線のようなので, 結線する必要はありません(PS4Eye 側にそもそも対応する線が無い)

また, USB3.0 対応 PC でも初期のころのものは対応していない? ようです. 実際に繋がるかどうかは USB3.0 対応機器に刺してみて確認してみる必要があります

参考までに, Samsung’s ARM Chromebook では認識されましたが, Thinkpad T420s では認識されませんでした.

Image

Chromebook の Ubuntu Linux で, Chrome を使って webcamera として使ってみた図. 傍のピクセルがおかしいですが, もともと横 1000 ピクセルほどが無駄に reserve されているようなので, これで正しいのかもしれません.

RAW モード? 

さて, 現在の ps4eye ファームウェアツールでは YUV422 のピクセルフォーマットに設定されていますが, PS4Eye は仕様上は 12bit RAW(Bayer?)が取れるようになっています.

RAW で取れるとよりよい諧調が取得できて, ステレオ画像からのデプス推定や三次元復元で有益です. うまくレジスタを設定して取得できるようにしてみたいですね.