HOpenGLメモ

CG論の課題を提出ed。

まあつまりOpenGLをCとかJavaでただ叩くのもつまんないよね、とか言ってHaskell with HOpenGLで書いてみたわけだけど、そもそもHOpenGLのドキュメントがかなり手抜きなので、OpenGLに慣れている人がHaskellで使ってみるために利用するならまだしも、初心者が初めて使うラッパーとしては不適すぎた。反省。

はまった点をいくつかメモしておく。

  • textureBinding Texture2D $= Just textureName は renderPrimitiveの中でやっちゃだめ。renderPrimitiveの中はcolorとかvertexとか専用。
  • Zバッファを有効にするためには、initialDisplayMode $= [WithDepthBuffer], depthMask $= Enabled に加えて depthFunc $= Just Lessが必要。
  • texImage2Dの前に textureFilter Texture2D $= ((Nearest, Nothing), Nearest) が必要。
  • plusPtr :: Ptr a -> Int -> Ptr b …なんでキャストまでセットになってるかなあ。
  • globalVariable = unsafePerformIO $ newIORef 0