Kotlin JavaScriptでWebGL

Kotlin 1.2が現れ始めた時期で今更ながら、Kotlin 1.1でJavaScriptからWebGLを書いてみました。
型があるのはいい一方、やはりOpenGL系はC言語系の手続き系言語的な関数でもって動作させるので、ライブラリを使うのがいいのかもしれません。

プロジェクト全体のソースコードはこちらから。今回はJavaScriptモジュール定義に対してはAMDを使ってみました。

まず、canvasを対象に描画するのでHTMLのロードを待たねばなりませんので、web/main.jsではそのような処理を行っています。

3次元ベクトルと4次元正方行列は、それぞれdata classとしてsrc/main/kotlin/Vector3.ktsrc/main/kotlin/Matrix4x4.ktに切り出しています。

残りの、本体となるコードはsrc/main/kotlin/main.ktにあります。
単純にwgld.orgをKotlinに移植したような見た目になっていますが、気を付けるべき箇所がいくつかありました。

  • 型を生かすようにキャストやNullの扱いを丁寧に行う
  • (単精度の場合)Float32Arrayなるクラスを、WebGLの関数に対して与える
  • GLSL等の識別子は型チェックが利かない(当然だが)
  • 生WebGLではオブジェクト指向的には書けない

もっと手っ取り早くモデルを表示させたい場合はTHREE.jsなどがあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です