学生の頃は、CG系のプログラミングと言えば全て自前実装するものだと思っていた。
ライブラリなんて何にも知らず、レンダラを作るためにMeshデータの構造から全部(Javaで)自前実装してました。画像ファイルの読み込み機能すら自作しちゃってた。良い勉強になったけどね。
当時は「世界トップレベルのCG研究者達は全部自前でプログラム書いてるんだスゲー」なんて思ってました。
会社に入って仕事で画像処理を扱うようになり、OpenCVを触るようになってから、「当たり前の機能」は自前実装する必要が無いことを知った。
ちょっと前置きが長くなったけど、CG系でも同じように、当たり前の機能・構造はライブラリがあるんだろうなぁ、と思って調べたらこれを見つけた↓
OpenMesh
OpenMeshは、ポリゴンメッシュを表現、操作するための汎用的で効率的なデータ構造を備えています。OpenMeshはアーヘン工科大学のコンピュータグラフィックスグループが開発したものです。このプロジェクトはドイツ連邦教育・研究省(BMBF)の出資を受けています。
このライブラリは、以下の理念に基づいて設計されています:
- 柔軟性:改造しなくても多くの異なるアルゴリズムの原理が利用できる。
- 効率性:メモリの使用を極力抑え、高速処理を実現する。
- 使いやすさ:複雑な内部構造を使いやすいインターフェイスで隠蔽する。
最新版は三条項BSDライセンス(修正BSDライセンス)。つまり、「無保証」であることの明記と、再頒布の際に著作権およびライセンス条文を表示が必要。
OpenMeshの各コンポーネント間の相互関係を示した図↓
このライブラリ、流行っているかどうかは良くわからないです。日本語で記事書いているのはこちらの方のブログぐらい↓
http://www.cloud.teu.ac.jp/public/MDF/toudouhk/blog/2015/04/10/OpenMesh/
追記:Qiitaに記事がアップされた↓
https://qiita.com/shohirose/items/d92447fcc07a623ebf24
CG系の人は普段何を使ってるんでしょうね。CGALとか?
会社員になってからというもの、何かプログラムを書くにしても既存のライブラリありきで実装プランを考えることが多くなった。
関連記事
Python2とPython3
顔のモデリング
TensorFlowでCGを微分できる『TensorFlow...
SVM (Support Vector Machine)
写真から3Dメッシュの生成・編集ができる無料ツール『Auto...
OpenMVS:Multi-View Stereoによる3次...
4K HDR『ガメラ3 邪神覚醒』
劇場版『仮面ライダーエグゼイド トゥルーエンディング』を観た...
RSSフィードを読込んで表示するWordpressプラグイン...
オープンソースの物理ベースレンダラ『Mitsuba』をMay...
ROSの薄い本
『シン・エヴァンゲリオン劇場版:||』を観てきた (ネタバレ...
GoB:ZBrushとBlenderを連携させるアドオン
WordPressプラグインの作り方
UnrealCLR:Unreal Engineで.NET C...
Seleniumを使ったFXや株の自動取引
書籍『ROSプログラミング』
Autodesk CompositeとAutodesk Ma...
機械学習のオープンソースソフトウェアフォーラム『mloss(...
SculptrisとBlenderで作ったGodzilla ...
geometry3Sharp:Unity C#で使えるポリゴ...
SIGGRAPH ASIA 2009で学生ボランティア募集し...
OpenCVで平均顔を作るチュートリアル
ZBrushで人型クリーチャー
ラクガキの立体化 分割ラインの変更・バランス調整
情報の編集
映画『空の大怪獣ラドン』 4Kデジタルリマスター版
UnityのMonoBehaviourクラスをシングルトン化...
Regard3D:オープンソースのStructure fro...
ZBrushでアヴァン・ガメラを作ってみる モールドの彫り込...
Mayaでリアルな布の質感を作るチュートリアル
ファインモールド 1/144 ミレニアム・ファルコンの制作再...
CGWORLD CHANNEL 第21回ニコ生配信は『シン・...
法線マップを用意してCanvas上でShadingするサンプ...
BlenderのRigifyでリギング
BSDF: (Bidirectional scatterin...
OpenCVでPhotoshopのプラグイン開発
ブラウザ操作自動化ツール『Selenium』を試す
AR (Augmented Reality)とDR (Dim...
Webスクレイピングの勉強会に行ってきた
Google App Engineのデプロイ失敗
Unreal Engineの薄い本
コメント