GLSL / WebGLでレイマーチング

現実逃避的にWebGLのGLSLでレイマーチングをやってみました。

下記のstartを押すとJavascriptからWebGLが作動します。 Chomium 40.0 とFirefox 34.0 で動作確認しています。 3D対応のグラフィックカードが必要です。

C/C++ / Pythonを組み込む

アプリケーションにPythonを組み込むサンプルです。

Python 3.3, boost 1.55で実装しました。

要求

  1. shared library(DLL)を作らない
  2. C/C++から外部へモジュールをexportする (== 外部から、C/C++内のモジュールをimportする)
  3. C/C++内から、文字列としてPythonスクリプトを実行する
  4. C/C++内から、外部のモジュールをimportする
  5. Pythonとboost::pythonのみを使用する
  6. C/C++クラスはnoncopyableである
  7. shared_ptr, intrusive_ptrに対応する
  8. factory, addref, releaseを持つクラスに対応する

C/C++ / cast構文にカンマ式を渡して嵌った

さて、失敗談です。

カンマ「,」とコンマは一緒なので、ここではカンマで統一します。

C++にはcast構文があります。

  • static_cast
  • reinterpret_cast
  • const_cast
  • dynamic_cast

これらのキャストは関数ではなく構文なので、カンマ式を渡すことができます。