2012-02-18

Processing 2.0a4: 手軽なGlow / OpenGLを使うとAppletが動かない

 

気分転換にProcessing(Proce55ing)を少し触っています。Processingといえば発光体とかパーティクルのイメージがあるので、まず発光体を作るために簡単にGlowさせられる方法を調べてサンプルを作りました。

  • 手軽なGlow (※要Javaプラグイン。マウスに追従して発光体が動きます)

image

調べた中ではGlowする方法として

  1. ピクセルを全なめして自力で加算合成
  2. blend()でADDを指定
  3. OpenGL(JOGL)で加算合成

の3パターンがあったんですが、この中ではOpenGLを使うのが重くならなくて簡単な感じがしたのでサンプルではOpenGLを使っています(blend()は重かったです…)。3. の方法は上記リンク先にあるソースとコメントを見て下さい。

発光体をもうちょっとどろっとした質感にしたいです。

それと最初はProcessing 1.5.1で作っていたんですが、OpenGLを使うとwidthやmouseXなどを2倍しないと意図したように動かないのと下記の問題の1.5.1での対処がわからなかったので2系にしてしまいました。

OpenGLを使うとAppletが動かない

OpenGLを使ったSketchで「File」 > 「Export Applet」を実行して、生成されたAppletのHTMLをブラウザで開くと「java.io.FileNotFoundException: http://jogamp.org/deployment/webstart/jogl-core.jnlp」と言われてAppletが動きませんでした。

Issue 845 - processing に書いてあった通りAppletのHTMLの<applet>のjogl-core.jnlpのURLを変更してもリンク先の最後のPostと同じように「java.io.IOException: Cannot validate certificate for nativewindow_awt.dll」と言われてしまいます。

いろいろ試してみたんですが http://jogamp.org/deployment/ 以下のファイル構造が変わっているためjogl-core.jnlp + 3つのjar(nativewindow.all.jar, jogl.all.jar, gluegen-rt.jar)のURLを変えないと動かないようでした。

/v2.0-rc2/以下のファイルはAppletのHTMLに書かれているURLと似ているのでAppletのHTMLのソースで「/webstart/」となっている箇所をすべて「/v2.0-rc2/」に一括置換するようにすると動くようになります。例えば「http://jogamp.org/deployment/webstart/nativewindow.all.jar」は「http://jogamp.org/deployment/v2.0-rc2/nativewindow.all.jar」とします。

ただ/v2.0-rc2/配下のファイルがもし消されたらまた動かなくなってしまうのでjogamp.orgのURLを使わずにjarをダウンロードしておく方がいいかもしれません。