2.8 プロジェクト開発者キックオフミーティングメモ

投稿日時 2015年12月11日 | カテゴリ: Blender.org

元記事:2.8 project developer kickoff meeting notes | Blender Code

Ton Roosendaal 氏が Blender Code Blog に投稿した、Blender Conference での2.8プロジェクトのミーティングのメモの翻訳です。

2015 Blender Conference にて、2.8プロジェクトをソフトウェアエンジニアリングの一つの可能性とすべく、参加した開発者たちが一丸となって議論を始めました。

以下は2.8プロジェクトを効率化し、対応ハードウェアの変更を最小限に留めるための議論の内容です。



C++ 11 / C99


Blender は主に C、C++、Python で書かれています。現在、C++98、C89、Python 3.4を使用しています。意味のある、私たちの現在のホスティングコンパイラ(ここでは Microsoft Visual Studio 2013が最低共通基準)が対応する機能に対し、C++11と C99が利用可能であるというコンセンサスが得られています。

これにより、いくつかの馬鹿馬鹿しい制限が引き上げられたおかげで、私たちはもっといいコードを書けるでしょう。しかし、要求するプラットフォームも引き上げる必要があり、特に10.8以前の OS X や、glibc が2.14以前の Linux はドロップすることになるでしょう。


OpenGL


現在 Blender は OpenGL を、スタンダードのバージョン1.4に互換性があるよう使用しています。20年の月日が経ち、グラフィックのハードウェアは大幅に進化しており、ハードウェアにアクセスするいくつかの概念も変化してきています。
2009年、初めて古い方式を廃止した、OpenGL 3.2スタンダードがリリースされました。更に今日では多数のプラットフォームで、このハードウェアにアクセスする古い方式が使用できなくなっており、古いコールが使用された時、いくつかの新機能の使用が不可能になっています(例えば MacOS X など)。

開発者たちは例外なく、それがいずれ起こり、不可避な事だということに同意しています。また、新しいビューポートデザインとは関係なく、これが即時モードからの脱離と VBO と GLSL への移行が起こる必要性を感じています。Antony Riakiotakis 氏はこの変換を開始していますが、大量の作業が残っており、現時点ではこれがどれぐらいベストなアプローチかは不透明です。
この移行には、初期の Intel i9xx カードでのハードウェアアクセラレーションがなくなるなどの欠点もいくつかあります。2008年以降の nVidia や AMD ハードウェアではどれも影響はないと思われます。


Scons


現在、Blender の開発者たちは二つのビルドシステム(CMake と SCons)を保守しています。私たちの大半は CMake を使用しており、SCons の使用より多く、トータルで考えると、これを脱落させることで大量の必要なリソースを確保でき、その恩恵はコストを補って余りあると感じています。ビルドシステム特有のバグがある所為で、貢献者になるのを難しくしている一面もあり、さらに現在、両システムでのビルドは一貫性がありません。

残る作業は主に CMake による Linux リリースビルドの対応と、SCons 版に対する MacOSX リリースビルドの検査です。Brecht 氏と Martijn 氏がこれを志願しています。


コードのリプレースまたは削除


Blender のどの部分が壊れているか、保守が困難か、未来がないか、については様々な意見があります。挙がった物には Sequencer(シーケンサー)、Game Engin(ゲームエンジン)、OpenImage-IO、Constraints(コンストレイント)、Particle System(パーティクルシステム)、OpenCollada があります。この中で唯一コンセンサスが得られそうな物は OpenCollada です。このライブラリと統合は Blender のサイズの1/3にもなり、現在 Gaia 氏のみが保守しています(氏はミーティングには現れていません)。私たちは2.8でこれを削除することを真剣に検討することに決めました。

Particle System(パーティクルシステム)と Constraints(コンストレイント)は全面的なオーバーホールが必要でしょう。

Sequencer(シーケンサー)と Game Engine(ゲームエンジン)は、私たちが2.8プロジェクトの期間中にいい解決方法が見つけ出せなかった場合、
深刻な削除の危機にさらされることになります。

OpenNL も議論され、大半の用途は Eigen ライブラリによってカバーできるものと思われます。


最後にこの議論は、ソフトウェアエンジニアリングの観点から、Blender と Blender の開発者にとって何ができるのか、そしてどうすればいい Blender を楽に届けられるのかを考えさせるいい機会でした。私たちは Blender をアーティストを第一に作成しており、その意味で、このリストを2.8プロジェクトの完全な表現として説明するのは不可能かつ、すべきことではないでしょう。





Blender.jpにて更に多くのニュース記事をよむことができます
https://blender.jp

このニュース記事が掲載されているURL:
https://blender.jp/modules/news/index.php?page=article&storyid=3848