タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

WebGLとGPGPUに関するagwのブックマーク (3)

  • WebGL GPGPUでfloatの結果を得る - デー

    現在の仕様だとふつうにやるのは無理そうだったので、vec4にエンコードして返して、javascript側でデコードするようにした。 シェーダ側。 vec4 nvjs_encode_float(float v) { vec4 c = vec4(0.0, 0.0, 0.0, 0.0); if (v < 0.0) { c[0] += 64.0; v = -v; } float f = 0.0; float e = ceil(log2(v)); float m = v * exp2(-e); if (e < 0.0) { e = -e; c[0] += 128.0; } c[0] += e; m *= 255.0; f = floor(m); c[1] = f; m -= f; m *= 255.0; f = floor(m); c[2] = f; m -= f; m *= 255.0; c[3]

    WebGL GPGPUでfloatの結果を得る - デー
  • WebGLで浮動小数点テクスチャを使う - デー

    WebGL OES_texture_float Extension Specificationという仕様があってこれを有効にするとGoogle Chromeだと使えた。 alert(gl.getExtension("OES_texture_float") ? "使える!!!" : "使えない!!"); Firefoxは対応していない。 ということで、WebGL GPGPUでfloat型のデータが入力可能になった。ハジマッタ…。 と思ったけど、出力を受け取るのに使っているgl.readPixelsはgl.FLOATに対応していない。 とりあえず、値に幅を持たせたいときは複数のUNSIGNED_BYTEで1つの数値を表すなどエンコードデコードすればいいと思います・。 http://www.udp.jp/misc/nvjs/gpgpu.html:title= のrun3にgl.FLOATの入力と

    WebGLで浮動小数点テクスチャを使う - デー
  • WebGLでGPGPU - デー

    下のイラスト調のやつを爆速にしようと思って試した。(まだイラスト調のほうは実装してないです) WebGL GPGPU Sample Code WebGLで計算を行う方法は、 GPU側へ入力データをテクスチャとして転送 出力サイズの画面にフレームバッファオブジェクトを設定して画面サイズの四角を描画 このときのフラグメントシェーダーでテクスチャ(入力データ)を参照して計算を行う javascript側から結果を読む としています。 基的にはOpenGLでやる場合と同じなので、以下のサイトがとても参考になります。 OpenGLによる実装方法 - Satoshi OHSHIMA's web site (今落ちてるみたいですが、そのうち復活することを願ってリンクを張っておきます) 「GPGPU シェーダ」とかでググれば、古のGPGPU手法に関するPDF等がいっぱいヒットすると思います。 オレオレ計

    WebGLでGPGPU - デー
  • 1