So-net無料ブログ作成
レンズ形状をBezierで描く ブログトップ

Bezier曲線によるレンズ形状近似 - その6 [レンズ形状をBezierで描く]

ビットマップしかないZEMAXのレンズ形状出力のかわりに、Bezier曲線で滑らかに美しくPress Qualityでレンズ系の断面形状を描きたい、ということで始めた3次Bezier曲線による球面と非球面の近似。さくっとできてしまったので、結果をまとめておしまいにする。結果はかなり満足のいくものになった。

続きを読む


Bezier曲線によるレンズ形状近似 - その5 [レンズ形状をBezierで描く]

前回前々回で、Bezier曲線で近似するための数学の整理は終わった。というわけであとはさくっと実装してZEMAXの出力と比較してみる。直接比較のためにまずZEMAXのファイルを読み込むためのクラスを先に実装する。

続きを読む


Bezier曲線によるレンズ形状近似 - その4 [レンズ形状をBezierで描く]

前回で計算は終わった。考え方はスプライン補間なんかと同じ、というかスプラインのものまね。

前回の球面をBezier曲線で近似するだけではごく普通なので、今日はこれを非球面に拡張する。でもそれも考え方は全く同じ。

続きを読む


Bezier曲線によるレンズ形状近似 - その3 [レンズ形状をBezierで描く]

突然始めた、Bezier曲線によるレンズの断面形状近似。さくっとあげないとまただらだらしてわからなくなってしまう。一気に計算しよう。今日のところがキモになる、はず。

続きを読む


Bezier曲線によるレンズ形状近似 - その2 [レンズ形状をBezierで描く]

急に始めたレンズ外形をBezier曲線で近似する問題。動機については前回書いたんだけど、なにが直接のきっかけになったかというと、今月に入ってから、あることに使いたくて以前自分で書いた光線追跡に手を入れて、NSOperationでマルチスレッド化した(照明計算並みに光線本数を飛ばしたかった)。まだどこかにスレッドセーフでないところが残っているらしくて、しょっちゅう変なアドレスのオブジェクト(0x02なんていうところにあったりする。なんだろこれ?)にアクセスしてクラッシュするけど、ラッキーだとほぼコア数に比例した効率向上(iMacで4倍近く、MacBookでほぼ2倍)が得られたのでうれしかった(ちなみに、まだ満足に動かなくて目的は達成されていない)。

追跡結果の確認のために光線を表示させたんだけど、レンズがないと合ってるんだかなんだかわからない。レンズデータをZEMAXに入れ直してレンズの絵を描いたりしてたけど、やってるうちにいやになってしまった。もともとZEMAXの描く絵が気に入らなかったせいもあって、えーい、もう自分で書こう、と。で、どうせなら折れ線でレンズを描くんではなくて、Bezierで近似してしまおう、と。

普通の人ならZEMAXを使うだろうし、光線本数が足りなければ照明モジュールを買うだろう。そういう人は僕がやってることを「車輪の再発明」と呼ぶだろう。いや、誰でもそういうだろうけど.....

続きを読む


Bezier曲線によるレンズ形状近似 [レンズ形状をBezierで描く]

また例によって新しいことを始める。OpenCLはどうなったんだ、GigE Visionドライバはどうなったんだ、という批判は甘んじて受けよう。スタック深さが2あればいい。歳はとったけどそのくらいはある、つもりである。こっちをさくっと終わらせてOpenCLに戻ろう。そしてOpenCLでベイヤRGB変換ができたらGen<i>Camのプログラミングに戻ろう.....

続きを読む


レンズ形状をBezierで描く ブログトップ
メッセージを送る