WebGLを動かしてみよう [ javascript / WebGL ]

間口狭っ!

セキュリティ関連の問題が残るらしいけど、ひとまずWebGLがどんなものか見てみたかったのだが…手元のパソコンでWebGL demoでググったページからそれっぽいものを開いてみようとすると、

WebGLをサポートしてないですよ

とか、

ブラウザをアップグレードしたほうがいいんじゃない?

なんて趣旨のメッセージをいただくばかり。

ブラウザは最新のChromeだってば。13.0.782.200ですよ!…ダメですか。凹むなあ。Orz

めげずにもう少し頑張ってみる

まずアドレスバーに「about:gpu」と入力してGPUの状態を確認。

Graphics Feature Status
  • Canvas: Software rendered. Hardware acceleration not enabled.
  • 3D CSS: Unavailable. Hardware acceleration unavailable
  • Compositing: Software only, hardware acceleration unavailable
  • WebGL: Unavailable. Hardware acceleration unavailable
  • WebGL multisampling: Unavailable. Hardware acceleration unavailable

WebGLのあたりが痛々しく赤字で「Unavailableほにゃほにゃ」と。その後ろにもいろいろドライバが古いとかなんとか表示されているなあ。ごめん、でもドライバは入れ変えたくないのよ、せっかく今安定して動いてるから。

設定する方法がありそうなことも書いてある。

Accelerated 2D canvas has not been enabled (in about:flags or command line)

試しにアドレスバーに「about:flags」と入力してみると、なんか特殊なフラグを設定できそうなページが開いた。しかも日本語に訳されてるじゃないの。

ソフトウェア レンダリング リストを上書き
組み込みのソフトウェア レンダリング リストを上書きし、サポートされていないシステム設定で GPU アクセラレーションを有効にします。
有効にする

ページの底にある再起動ボタンでChromeを再起動してもう一回デモページに行ってみると、動いた!…正確にはいくつかのデモは動いた、というところかな。このページこれこれは動いたが、他のは動いているのかいないのかわからん。でもまあこれで一応試せなくはないんだ。

本当はドライバを更新したほうがいいんだろうなあ。古いOS、古いハードウェアだから探してもなかったりして…

WebGLのセキュリティ問題

ついでに(?)セキュリティリスクて何かと思ってちょっと見てみたら、煎じつめると

GPU側で任意のコードを実行できてしまうので何されるかわかんねー

せっかくかけてあるいろんな制約をバイパスできてしまうかもしれないし、シェーダプログラムを暴走させてDoSとかできるじゃん

それでなくても怪しいことが多いGPUドライバの脆弱性を突きやすくて危なっかしいことこの上ない!

ということらしい。

言われてみれば概ねその通りで、OpenGLが嫌いなマイクロソフトの言いがかり100%というわけではないようだ。

先進性という意味では劣るけど、ここはOpenGLES1あたりの固定パイプラインAPIをベースにしたほうが良かったんじゃないですかね。

固定パイプラインの3Dレンダリングなら、ハードウェアが3Dをサポートしてなくてもソフトウェアフォールバックが比較的簡単そうですし…今更固定パイプなんてダメですか?

1 件のコメント:

匿名 さんのコメント...

現在の最新は21(以下略)ですよー

コメントを投稿