Sunday, January 23, 2022
CGAL intersectionは汎用的に作られているため、型が分からずバグるのか
Friday, January 21, 2022
二つのメッシュの接触のメモ
CGALでの二つのメッシュの接触判定と結果の取得方についてのメモ
https://stackoverflow.com/questions/22900932/cgal-meshes-intersection-collision
良記事。手元で実験済みでうまくいくことも確認した。
face_descriptorのidx()はメッシュのindexで、二つのメッシュについて、pair<face_descriptor,face_descriptor>が出力の1要素となる。
vectorで出力されるので、back_inserterを引数で忘れないように。
Thursday, October 28, 2021
CGALで形状の近似が実装されてたというメモ
https://doc.cgal.org/latest/Surface_mesh_approximation/index.html#Chapter_Triangulated_Surface_Mesh_Approximation
figure 74.10が結構理想的
Wednesday, March 24, 2021
DTP操作のために、プログラム組んでたら、単位でハマった
ファブリケーションの研究しているとどうしてもフォーマット関係でハマります。
今回はDTPで扱うような、ベクター形式の画像の単位でハマりました。プログラムで印刷前提に、ベクター形式を出力しようというモチベーション自体があまりないので、情報も少なく、意図を手繰るような感じで、実験してわかったことをメモっていきます。
ここでの目標はベクター形式の画像をラスター画像と同じソフトで扱いたいというものです。
ベクター形式で画像を出力すること自体は実は簡単でした。svgというフォーマットを使えば、テキスト出力だけで、画像が出せます。文だけ読むと意味わからないのだけれど、テキストデータが、解釈されて、ベクター形式の画像として扱えるフォーマットがsvgです。ルールについては、ほかのページに任せるとして、fstreamなどのファイル出力で実現可能なのは確認済みです。ストリームで出力するとき、数値はダブルクォーテーションを入れる必要があるのですが、このとき\"として、ダブルクォーテーションを出力することだけ覚えておけばOKです。
出力された画像の長さの単位が、イラストレーターとかで開くと、ポイントという単位として扱われます。このポイントという単位は、フォントとかでしか見ないので、具体的に何ミリメートルかなんて考えることがありませんが、私はラスター画像と一緒に使いたいので、単位の換算を知る必要があります。ラスター画像の単位はmmやinchで指定はできますが、基本的には、dpiかppiを使います。dpiはdots per inch でppiはpixels per inchです。dotsはインクの粒で、pixelsは画像の粒であるピクセルです。ラスター画像では、ピクセルで色を指定するので出力を考えるとppiを単位とすることが多いです。例えば、ppiで300と指定すると、1inch=25.4mmに、300個のピクセルを並べるという、ことになります。このppiに、ベクター形式内の1という単位を無理やり合わせるにはどうしたら良いかを考えます。
ベクター形式での1という単位は、先に述べたようにポイントとなります。ポイントとインチの換算は決まっていて、1inchの中に72ポイント並べられます。1inchの換算の比率さえ合えば、単位を調整できるので、ppiのほうに無理矢理ベクター形式の1をあわせるなら、xをppiの数値とすると、72/xを係数として、ベクターの数値に掛けてやればOKとなります。具体的には、300ppiの画像に合わせるためには、ベクター形式の1を72/300かけたものでぴったり解像度が合うようになります。
具体例を挙げると、svg形式で、1ピクセル分を1×1の正方形で表現すると、300dpiの1ピクセルと合わせるには、72/300×72/300の正方形とすると、ぴったりあうということです。
終わり
Thursday, December 17, 2020
はじめてmitsuba 2使ってみたことを記事にしてみたけど
とある投稿に向けて、私の手法との比較画像を作る過程で、いやー最適化してーなぁ、と思ったのだけど、ほぼ手付かずで、そのまま数週間たって、某上司から「アドベントカレンダーって企画しってる?」と聞かれて、知らなかったけど、イキり負けしたくなかったので、「んー、聞いたことあるかなぁ」とか言ってたら、話が進んで、冒頭の最適化の記事を書くことが決まってしまいました。
どうやらアドベントカレンダーってのは、もとは25日までの日めくりカレンダーだったのだけど、qiitaという謎サイトが技術屋が12月1日から25日まで、毎日更新の記事を書くイベントに仕立てたらしく、上の会話のアドベントカレンダーは、元の意味のアドベントカレンダーではなかったということです。
どうせなら、今やらなきゃいけないことを書こうと思い、Mitsuba 2という神を使うことを書いてみました。
で、できたページがこれ。
https://qiita.com/dw_sakurai/items/08888526d70672a2c402
本当はボリュームレンダリングまで書くつもりでしたが、書くのがだるいし、時間もゆとりがあるわけではないので、途中でやめました。無理。
それでも、多少、読む人がいるかな、と思っていたら全然人気がないらしく、なんじゃい、という感じです。
まぁ、よくよく考えたらMitsuba 2に興味ある人は英語読めるし、コードも読めるし、なんでもできるので、こんなページに興味持つわけないな、と気づいて、「あっちゃぁ、やっちまったなぁ」という気分です。
Thursday, September 24, 2020
CGAL5.1でボロノイ図の頂点を参照する関数
Delaunay_triangulation_3をTriangulationとし、入力点群pを母点として、それらに対応したボロノイ領域の頂点を返すコードのメモ。
incident_cellsではなく、finite_incident_cellsでトラバースしないと、仮想のボロノイ領域まで参照してしまい、思い通りにならない。
vector<vector<Point>> compute_voronoi(vector<Point> p) {
vector<vector<Point>> vor;
Triangulation T;
vector<Vertex_handle> vh;
for (int i = 0; i < p.size();i++) {
vh.push_back(T.insert(p[i]));
}
for (int i = 0; i < p.size(); i++) {
vector<Cell_handle> cells;
//T.incident_cells(vh[i], back_inserter(cells));
T.finite_incident_cells(vh[i], back_inserter(cells));
vector<Point> cell;
for (auto& cit = cells.begin(); cit != cells.end(); cit++) {
auto VP = T.dual(*cit);
cell.push_back(VP);
}
vor.push_back(cell);
}
return vor;
}
Friday, June 5, 2020
The solution is DYNAMICBASE:NO
I used a geometry processing library, Libigl, to make surface from implicit functions because I had used the library earlier.
All examples of the default tutorial had no problem, but some problems occurred when I execute problems I made from the project template of Visual Studio.
Sunday, December 2, 2018
VRST2018 最終日ほとんど参加せず
ハオリーの講演は9時からにも関わらず、かなりの人が聴講したとのこと。さすが。
10時から11時ごろまで会場の賞の準備を行いましたが、体から非正規ルートで水分が出るので、久保さんに仕事を引き継ぎ撤収しました。
帰り水分がないはずなのに、蕎麦屋のてんぷらのにおいが半端じゃなく不快で出そうでした。
家で風呂につかり、水飲んでは吐きを4時間ほど繰り返したあたりで、吐き気がおさまり、普通に水が飲めるようになりました。
なぜか全身が痛いです。
あとからチェアコミュニティの共有ログを見ると、VRSTは無事終わったとのことでした。非常に素晴らしい会だったと思います。
Saturday, December 1, 2018
VRST2018 三日目
某社がよく作られたプレゼンをした一方で、ぐだぐだのプレゼンをしたため、中にいる人の力の差、努力の差が露呈するかたちになりました。ぐだぐだのほうは、時間を過ぎていたので、止めましたが、もっと早くに止めれたかなぁ、と反省しました。ただ、終わるタイミングが見えないので、止めるのに躊躇しました。ま、と言っても、悪いレフリーではなかったと思います。
今日はバンケットでした。仕事が降ってきたので、あまり飲めませんでしたが、楽しい時間でした。
Friday, November 30, 2018
VRST2018 二日目
急遽、9時からのオープニングで話すことになり、一瞬登壇。数時間前に言われて登壇するのは人生初で、結構クルものがありました。
その後、FFの担当でもあるため、発表者の確認と進行のために各ブースを回りました。
そんで、急にやめるとかやめてほしい(苦笑)。
FFの時間。
またチェアで登壇。
あまり接続のチェックなどはできずに登壇した人もいるので、何かトラブルかなとは思っていましたが、案の定、一時ストップがありました。
毎回、なんかありますね。
そして、自分の説明もあるのに、チェアってどういう状況?
という感じでFFを無事終了。
この時点でだいぶセッションが押してきました。
夕方あたりの企業セッションでまたチェアなので、それまで自分のブースでもろもろを準備しました。
そのとき、某Mの千葉さんがふらっときて挨拶なり、お話なりをしました。あの人めっちゃいい人です。自分も某Mに行きたい。
休憩するのも一苦労という会議が多いですが、この会議はその辺をちゃんと抑えてて素晴らしい。コーヒーの部屋がかなり充実してて、いい感じです。
時間になって、企業セッションの準備に向かったのですが、時間が押してて、まだ前のセッションでした。
少しの休憩のあと、段取り決めて、企業セッション。結構どこも引き付けるプレゼンだったので、かっこいいなと素直に思いました。
企業ってすごい。
そのセッションが終わって、ポスター会場に。
光る発表が何個あって、すごいなという感じです。
デモも面白かったです。
8時ちょっと前にセッションが終わり、流れて解散になり、その日の会議は終了。
遅くはなってますが、大きな事故がなく、よかったです。
そのあとはちょっと懇親会に参加して撤収しました。
帰ったのは12時。遅すぎ。
Wednesday, November 28, 2018
VRST2018初日
超大変。
時間がないので、短く書きます。後で思い出せるところは埋めていきます。
午後3時に早稲田大学国際会議場に到着しました。そのあと、自社ブースに入って、某M井さんにもろもろ説明しました。が、実はこの説明は不要でした。
佐藤さんがだいたい教えてたらしい。さすが段取りの鬼 佐藤氏。彼にすべて任せておけばオールオーケーでした。
準備ほどほどに、3時半ごろ用事で外に出ました。
するとモルモン教を広めているという若いアメリカ人につかまりました。志が高いので、一頻り感動した旨を教えて、用事があるということで離れました。彼ら、熱心ですごいね。
そうそう、外に出るときに、河合さんに会いました。3年ぶりだけど全然変わってなかったです。
会場にもどり、4時半からバンナムのVR Zoneについての講演を聴きました。超おもしろい内容でした。
そして通訳の人すごいと思って、憧れました。来年あれやりたい。
その後、レセプション会場兼VR体験会場のVR Zoneに行って、もろもろの整理の仕事をしました。
その後、体験。
自分の体験しているのは自分ではとれないのであれですが、こんな感じです。
その後、撤収。9時に出たのに、家に着いたのは11時。ほんと遠い。
ほとんど食わず飲まずだったのでただただつらい。
そして、なぜか明日の仕事をいろいろ振られるという。すごい人気者なんだな、自分。どこでも。と自分を慰める。
Tuesday, July 3, 2018
台湾4日目
この日は台湾から出て、次の場所に移動する日です。
昨夜は3時ごろまで飲んでいて、6時ごろに起床。
昨夜、I橋君と話して、何度も考えたけど、地元でそこそこで生きていこうという学生が、研究する気になるわけない。だから、I橋君が学生を研究者に育てようとするのは、時間の無駄だと思う。やめちまえ。
10時半ごろに、台南駅。
ここでジャーナカさんとお別れ。ありがとうございました。
ほんと、ジャーナカさん超人だなぁと思いました。
苦労の割に得るものが少ない気がするけど、結果は後からついてくるだろうことを願っております。
台北へ。
10時48分の電車に乗車しました。
車窓から。雲が低い。
台北駅に12時30分につきました。
歩いて、MRTTaipei main stationへ移動です。
またもコイン型のチケットを買い、構内へ。
これが入り口。
この黄色のところにタッチ。
すると開く。
車内。
乗り換え。
反対側は、この階段で移動する。
車内の天井に今どこかを示す情報が呈示。松山空港まであと数駅。
松山空港に着。ちなみに、松山駅というのもあるので、間違えそうになった。情報は正確に。
本当に空港側に地下で行けそう。
動く歩道もある。店も何点か。
国際線はこっちのほうらしい。
地上へ。普通に地上。
気が付かないだけで、地下への道は空港の前にあった。
これは知らないと入れないです。もう少しわかりやすくできるはず。
空港内。
噂のタピオカドリンク。言葉なんてわかんなくても指さしのみで指定できました。
甘め、うまめ。食事部門では、エッグタルト、ステーキの次においしい。ドリンク部門では、マンゴージュースと同等。
次は噂の麺屋。
うめジュース。なぜか煙い曇った味がする。うまくはない。
牛リブラーメン。細麺も選べますが、太麺を選択。
コシ強い風のうどんみたい。すごく強い麺ではない。
肉はやわらかった。うまみ。
ニンニクが強いので、このあと6時間以上はにんにく臭かったはず。
出国後の風景。
がらん。
がらん。
はじっこ。
自販機がところどころにあります。
アスパラガスを飲みましょう。
甘い飲み物。別にアスパラ感はないです。
次に豆も行きましょう。
無言。
時間になり飛行機に乗る。
機内食。
まぁ。まぁかな。
その後、空港で買ったライチのゼリーを開封。
こちらはおいしい。想像のライチそのもの。だれかが種のないライチと言ったが、その通りだと思いました。
飛行機を降りて以降、鼻水が出てくる。