WebGL 2.0

現実的なウェブにおける影響は?

自己紹介

Masahiro Sugimoto(doxas)

wgld.org、WebGL 総本山、などの運営。その他、WebGL スクールなど。

本日のテーマ

実は、以前にも WebGL 2.0 について簡単にお話させていただいたことがあります。

そのときはまだまだこれからかなあという感じでしたが……

参考:なにが変わるの WebGL 2.0

本日のテーマ

先日アメリカで開催された SIGGRAPH でなんと!

本日のテーマ

100% of the WebGL 2.0 conformance suite is passing!

やっほい!!

参考:WebGL BOF SIGGRAPH 2016 - Google Slide, Khronos Developer Presentations Library

本日のテーマ

ということで本日のテーマは、WebGL 2.0 をあらためて紹介していきます。

いよいよドライバテストをパスした WebGL 2.0。

これがウェブにやってくることによって、どのような点で、ウェブに新たなイノベーションが起こるのでしょうか。

WebGL 2.0

以前のスライドのほうに概要は書いてありますが、さすがになんの説明もないのはちょっと寂しいので、ほんとに簡単に、WebGL 2.0 について説明します。

ちなみに現行の WebGL は 1.0 です

WebGL 2.0

OpenGL ES 3.0 相当の、WebGL の新しいバージョンが WebGL 2.0 です。WebGL 1.0 は、OpenGL ES 2.0 相当だったので、順当に新しい ES のバージョンに対応した形になります。

先日の SIGGRAPH では前述のとおり大々的に嬉しい事実が発表されたものの、まだまだブラウザの対応状況は不完全で、たとえば Chrome なら Canary じゃないと動きません。

WebGL 2.0

WebGL 2.0 は、1.0 と比較して、まるで別物のように劇的に進化している わけではありません。ちょっと別の言い方をすると、普段から WebGL をぺろぺろしているような人でない限り、そこまで大きな恩恵は無いかもしれません。

その代わり、ぺろぺろしているおじさんたちは北極で寒中水泳できちゃうくらいテンション上がっちゃいます。

WebGL 2.0

WebGL 2.0 は、1.0 と比較して、まるで別物のように劇的に進化している わけではありません。ちょっと別の言い方をすると、普段から WebGL をぺろぺろしているような人でない限り、そこまで大きな恩恵は無いかもしれません。

その代わり、ぺろぺろしているおじさんたちは北極で寒中水泳できちゃうくらいテンション上がっちゃいます。

完全に変態!

WebGL 2.0

つまり、この場にあっても、それらの機能をひとつひとつ紹介することに大きな意味があるとは思えないわけです。

そこで、WebGL 2.0 がやってきたとき、現実問題として、three.js を介して簡単な WebGL 実装ができるレベルのエンジニア(要は変態ではない人々)にとって、どのような嬉しい変化があるのか、考えてみました。

WebGL 2.0 がやってきたら

より美しく現実的なレンダリング

WebGL 2.0 の機能を利用すると、いわゆる物理ベースのレンダリングや、遅延レンダリングといった、現状の WebGL では実現が難しいテクニックを使いやすくなります。

現状はちょっと変化球で無理矢理やってる感じ

WebGL 2.0 がやってきたら

three.js の利用者自身がそれを理解していなくても、three.js のコントリビュータが、恐らくこれを利用した形で機能をアップデートしてくれるでしょう。

これにより、より手軽に、それらの技術を使うための「入り口」が用意されるはずです。

利用できるとは言ってない

WebGL 2.0 がやってきたら

リソースやデータ型が柔軟に

現行の WebGL 1.0 では、描画に利用するリソースにも、いろいろな制限がありました。

たとえば、わかりやすいのがテクスチャに利用する画像データ。これは、大きさが 2 の累乗サイズになっている必要がありました。

厳密にはそれ以外は非推奨という形でした

WebGL 2.0 がやってきたら

このテクスチャ用のリソースの制限のような、いくつかの制限が取り払われ、扱うことができるデータ型なども、大幅に増えます。

これにより、これまでは利用できなかったバイナリや、画像などのリソースが、WebGL に活用できるようになるでしょう。

活用できるとは言ってない

WebGL 2.0 がやってきたら

より高速で効率的なレンダリング

これも最初の話とちょっとかぶりますが、より効率的に描画を行うための機能もパワーアップします。

これにより今までは重くてつらかった処理も、もしかしたら実用的な速度で動くようになるかもしれません。

WebGL 2.0 がやってきたら

そもそも WebGL をスクラッチで記述できない場合は、やはりこのあたりも活用が難しいですね。

ただし、three.js などの既存のライブラリが内部でこれらに対応した形にバージョンアップしていけば、知らず知らずのうちに、その恩恵を受けることができるかもしれません。

受けられるとは言ってない

既存のコンテンツはどうなる?

また、気になるところとしては、既にウェブ上に公開されている既存の WebGL コンテンツはどうなるの? という疑問を持つ方もいるでしょう。

ですが、ここは心配しなくても、大丈夫です。

既存のコンテンツはどうなる?

WebGL 2.0 は、初期化の際に 1.0 とは異なる方法で、WebGL コンテキスト(WebGL API の集合体)を取得します。ですから、既存の WebGL 1.0 のコンテンツとは、最初のところから分岐した全く別の実装形態になります。

言い換えれば、既存のコンテンツは、その実行には当面は問題は起こらないと考えていいでしょう。

WebGL の学習は難しくなる?

これについては、どちらを本格的に学んでいくか、という点で決まります。

ただ、3DCG というのはその独特な実装方法や 3D 数学については、非常に似通ったものが多い分野です。ですから、どちらをベースに学んだかということが、3DCG のスキルの根幹を揺るがすような差異にはならないと思います。

WebGL の学習は難しくなる?

ただし、当然ですが 2.0 をベースにしたほうが新しい技術を多く使うことができるわけですから、伸びしろは大きいと言えますね。

まだまだ国内でこれらの解説を行っている文献が少ないのが苦しいところですが、たぶん、wgld.org とかいうサイトがそのうちなんか書くでしょ。(てきとう)

がんばります

まとめ

ということで、かなり雑な感じで紹介してきてしまいましたが、最後くらいはまじめにまとめてみます。

まとめ

WebGL 2.0 は、既にハードウェア側の準備が整いつつあり、近いうちにウェブにやってくることがいよいよ見通せる段階に入りました。

これにより、WebGL 1.0 のころには実現の難しかったテクニックや、そもそも扱うことができなかったリソースなどが、ウェブでの表現にも導入できるようになります。

まとめ

なかなか情報も少なく、そもそも WebGL 1.0 の深い部分を理解できていないと、その恩恵を感じることが難しいような機能ばかりですが、その界隈の人にとってはとてもうれしい、素晴らしい機能がたくさん追加されます。

その影響は少なからず、少しずつですがウェブにもやってくるでしょう。

まとめ

それはより美しいレンダリング結果かもしれませんし、あるいはその高速な動作かもしれません。

いずれにせよ、ウェブにおける表現のレベルが またひとつ上がる ということは、間違いありません。

正座して、そのときを待ちましょう。

まとめ

ということで非常に簡単にではありましたが、WebGL 2.0 について、少しでも興味を持っていただけたなら、幸いです。

最後に、より深く WebGL について知りたい方のために、参考リンクなどを置いておきますので、活用してみてください。

ちょっとだけ宣伝

GLSL 短期スクール、現在受講者募集中です。

クリエイティブなシェーダコーディングの世界に浸ってみたい方、お待ちしてます。

今年もやります! 短期集中 GLSL スクール 2016 受講者募集開始!! - WebGL 総本山

ありがとうございました!