Beyond code – Improved Quality through User Centric Development – with Björn Balazs
Debugging and Profiling Qt applications – with Milian Wolff
Introduction to QML – also known as Qt Quick – with Kevin Funk and Jesper Pedersen
What’s new in C++11/C++14 – with Thomas McGuire
Introduction to Modern OpenGL with Qt – with Giuseppe D’Angelo
Introduction to Testing Qt applications with Squish – with Florian Turck
私が参加した『Introduction to Qt 3D – with Dr Sean Harmer』コースは、KDAB UK社のManaging Director兼Qt 3D Maintainerであり、宇宙物理学のPh.D を所有するDr. Sean Harmer氏が講師を務めています。彼は1998年からQt C++の開発に携わり、セキュリティやインフラ、可視化や数値シミュレーションといったさまざまな分野で開発者として活躍されてきました。講義のタイトルにある『Qt 3D』とは、UIプログラミング言語QML(Qt Meta-Object Language)を使用したQt QuickアプリケーションやC++アプリケーションに対しての2D/3Dレンダリングをサポートした、リアルタイムシミュレーションエンジンです。こちらはQt 5.7から正式リリースされました。
この講義では、(1)ソフトウェアアーキテクチャパターン ECS(Entity Component System)、(2) オブジェクトの座標やマテリアル、光源の処理の描画方法、(3)Qt 3D QMLエレメントの1つであるNodeInstantiatorの特徴について、(4)Qt 3D SceneGraph、グラフィックスパイプラインの概要や、GLSLを利用したシェーダの概要と球などさまざまな図形、テクスチャの描画方法、(5)Qt 3Dの今後の展望、について述べていました。
このQt 3Dを利用して3D描画を行うアプリケーションを作成することは可能ですが、スケーラブルにデザイン可能で非常に柔軟性が高く、慣れていない人が一からコーディングするのは簡単とは言えません。このトレーニングはQt 3D Maintainerから直々に受けられる、Qt 3Dを理解するための貴重な機会となりました。この講義はスライドと事前に配布されたサンプルプログラムを使った形式で行われ、説明後や説明の合間で質問やサンプルプログラムの実演、コードレビュを実施し受講者の理解を深める工夫がされていました。20人以上の受講者が参加していたにもかかわらず、疑問や質問があれば一人ひとり即座にかつ丁寧に答えてくれました。
カンファレンス
9/2~9/4の3日間に本格的なカンファレンスが開催されました。Qt以外のセッションもあるためこの日から参加する人も多く、非常に多くの人が会場に集まりました。そして多くの人の視線を浴びながら、KDABグループCEOであるMatthias Kalle Dalheimer氏のウェルカムスピーチを皮切りに講演がスタートしました。
ドイツではペットボトルや瓶の料金にデポジット料金が上乗せされています。これらをスーパーマーケットに置かれた回収マシンに入れると受領証が発行され、レジに持っていくとデポジット料金が差し引かれる仕組みがあります。彼らは回収マシンの横に受領証の募金箱を置かせてもらい、その寄付金を地域の発展に貢献するシステムを作りました。また、地理情報データを誰でもフリーで作成・利用できることを目的としたプロジェクトOpen Street Mapを利用した、車椅子で行くことが可能なお店や交通機関の位置を確認できる地図アプリWheelmapがあります。こちらは日本でも利用することが可能で、日本語にも対応しています。その他、駅などのエレベータが稼働中かどうかを調べられるサービスBrokenLiftsについても述べていました。
Keynote 2 - Cultivating Empathy
Leslie Hawthorn氏は大学入学前の学生を率いてGoogle Code-inの開発を行ったことで知られており、現在はRed Hat Inc.でCent OSのエコシステム構築プロジェクトに携わっています。
最終日9/4に、欧州議会議員かつ緑の党/欧州自由同盟の副議長であるJulia Reda氏がEUにおけるFree/Libre or Open Source Software (FLOSS)の影響について講演しました。彼女はOpenSSLのいわゆるheartbleedバグ問題に対して作られた実験的プロジェクト『ソフトウェアの統治と価値 - FOSSの監査』の主要メンバーで、このプロジェクトはフリーのオープンソースソフトウェアのセキュリティ強化を目指しています。
また、現在開発中の機能として、New Feature System/New Configuration Systemが簡単に紹介されました。詳しい説明は「New configuration system in Qt 5.8」として別のセッションで行われましたが、このシステムでは Linux や OS X向けに使用されているconfigureスクリプトとWindowsで使用されているconfigure.exeを統合して、1つのシステムですべてのプラットフォームをサポートすることを目的としています。qmakeとJSONをベースにして構築するそうです。
9/2に行われたこのセッションでは、トレーニングと同じKDAB社のDr. Sean Harmer氏により、Qt 3Dにおける物理ベースレンダリング(Physics Based Rendering)について紹介されました。物理ベースレンダリングは、さまざまな材質に対する光学現象を考慮することで、より現実世界に近いグラフィックスを表示する技術として、近年注目を浴びています。
このセッションは他のセッションと大きく異なり、物理学的かつ数学的な話に大きく時間が割かれています。たとえば、光とは何かから始まり、エネルギ保存則や放射フラックス、入射した光がどの方向にどのような光として反射しやすいかを表す双方向反射率分布関数(Bidirectional Reflectance Distribution Function)について述べた後、陰影をつけるシェーディングに対してこの双方向反射率分布関数が必要であることを説明されています。