LablGL で遊ぶ


LablGL は Objective Caml のための 3D グラフィックスのためのライブラリです。このライブラリは元々は C++ のために開発された OpenGL を O’Caml でも利用できるようにしたものです。lablgl をインストールして、[[lablgl のサンプルプログラム:http://www.ffconsultancy.com/ocaml/ray_tracer/index.html%5D%5Dをダウンロードしてコンパイルしたら以下の画像が出てきました。

以下がコンパイルに使った OMakefile です。

BYTE_ENABLED = false
NATIVE_ENABLED = true

OCAMLINCLUDES += +lablgl
OCAML_OTHER_LIBS = lablgl lablglut

OCamlProgram(ray, ray)

.DEFAULT: ray

一箇所だけソースを変更しました。110 行目で Glut を初期化する処理があります。

let argv = Glut.init Sys.argv in

このままにすると Objective Caml のコンパイラが、ここで宣言した argv って変数はあとで使ってないと文句を言うので、以下のように変更しました。

let _ = Glut.init Sys.argv in

レイトレースの計算には少し古めの iMac で数秒かかります。