タグ

gpuに関するlepton9のブックマーク (84)

  • The Book of Shaders

    ジェネラティブデザイン 繰り返しと秩序を十分に堪能したので、今度は多少の混沌を持ち込んでみましょう。 ランダム ランダムはエントロピーが最大になった状態です。一見厳格で規則正しいコードの世界で、どのようにしてランダムな要素を生成することができるのでしょうか。 下記の関数を検討することから始めましょう。 ここではサイン波から小数点部分を取り出しています。-1.0 から 1.0 の間を往復する sin() の値から、小数点の後ろだけを切り取ると 0.0 から 1.0 の間の正の値だけが残ります。これを利用し、さらにサイン波を細かな部分に分割することで擬似的にランダムな値を得ることができます。どういうことのでしょう。sin(x) の結果の値に大きな数を掛けてみます。上の関数をクリックして 0 を幾つか書き加えてみましょう。 100000.0 に至る頃には(式は y = fract(sin(x)*

    The Book of Shaders
  • 条件分岐のためにstep関数を使う時の考え方をまとめてみた - Qiita

    GLSLでは条件分岐をする際にif/else構文を使うと処理負荷が高いと言われています。 (その分だけ暖を取りやすくなるかもしれませんが・・・?) そこで、最初に考えつく代替案は三項演算子ではないでしょうか? vec3 BLACK = vec3(0.0); vec3 WHITE = vec3(1.0); vec3 color; // こんなif文は、 if (x < 0.5) { color = WHITE; } else { color = BLACK; } // こんな三項演算子に置き換える color = (x < 0.5) ? WHITE : BLACK; こんな感じでif/else構文を避けていくわけですが、この方法の欠点はベクトルを一度に条件分岐することができない事です。 ですが、step関数とmix関数を使うとベクトルの要素ごとに条件分岐をしてその結果をベクトルに直接反映させ

    条件分岐のためにstep関数を使う時の考え方をまとめてみた - Qiita
    lepton9
    lepton9 2020/04/13
  • リアルタイム 3D サーフェースシェーダ in WebGL | LAB | Q'TECHNICAL

  • 最新WebGL通信 〜いまキャッチアップしたいWebGL2・WebGPU・WebXRとは〜 - ICS MEDIA

    2011年に仕様が正式リリースされて以来、WebGLは多くのブラウザベンダー、コンテンツ開発コミュニティの手によって普及してきました。記事では、2019年1月現在のWebGLの現状と周辺技術、そして未来について紹介します。 環境が完全に普及したWebGL 1.0 WebGLの最初のバージョンであるWebGL 1.0は、現在ではデスクトップ、モバイルともにすべての主要なブラウザで対応しています。対応環境という観点ではもはや案件での採用も問題ない状況といえるでしょう。実際のユーザーのWebGLサポート環境を集計する「WebGL Stats」によると、デスクトップ、スマートフォンともに98%もの環境で動作していることがわかります。 ▲WebGL 1.0を利用可能なブラウザについて。「Can I use…」より ▲WebGL 1.0のサポート環境について。「WebGL Stats」より 国内でも

    最新WebGL通信 〜いまキャッチアップしたいWebGL2・WebGPU・WebXRとは〜 - ICS MEDIA