タグ

WebGLに関するsawa_zenのブックマーク (4)

  • 安定しないフレームレートに効果的! WebGLのカクつき対策まとめ(Three.js編) - ICS MEDIA

    FlashのStage3Dや、WebGLの登場によってブラウザ上でも高度な3D表現ができるようになり、ウェブコンテンツの表現の幅が広がりました。しかし、高速と言ってもコンテンツの内容によっては処理負荷が高くなり、カクつきが生じる場合があります。カクつきはコンテンツの見栄えを損なわせ、作り手の想定とは異なる体験を与えてしまう可能性があります。そのような場合の対策として、記事ではWebGLのカクつき解消方法をいくつか紹介します。 解説用にカクつきの起こりやすい高負荷なデモを用意しました。記事で紹介するカクつき解消方法はこのデモで実際に体験できるので、読み進めながら同時に触れておくとイメージがしやすいと思います。 デモを別ウインドウで再生する ソースコードを確認する ※このデモはThree.js(r141)とTypeScript 4.7とwebpack 5で作成しました。開発環境の構築は記事

    安定しないフレームレートに効果的! WebGLのカクつき対策まとめ(Three.js編) - ICS MEDIA
    sawa_zen
    sawa_zen 2016/07/11
    安定しないフレームレートに効果的! WebGLのカクつき対策まとめ(Three.js編)
  • エフェクト作成入門講座 Three.js編 RPGのセーブポイント風の魔法陣 - ICS MEDIA

    昨今のWebサイトではWebGLを利用した3Dコンテンツをしばしば見かけるようになってきました。WebGLに対応した端末が普及してきていることや、Three.jsなどのライブラリが充実していることもあり、実案件での採用が現実的になってきているからです。 しかし、いざ3Dコンテンツを作ってみると、どこか味気のないものになってしまう事があります。そんな時はエフェクトの追加をオススメです。エフェクトを追加することで、コンテンツの見栄えが派手になったり、キャラやゲームの状態が伝わりやすくなります。今回エフェクトの例として、RPGのセーブポイントや回復ポイントで使用されそうなデモを制作してみました。 デモを別ウインドウで再生する ソースコードを見る ※このデモはThree.js r146とTypeScript 4.9によって書かれています。 記事では、セーブポイント風なエフェクトの作成を通して、T

    エフェクト作成入門講座 Three.js編 RPGのセーブポイント風の魔法陣 - ICS MEDIA
  • WebGL で高速 BlendMode | Yomotsu net

    WebGL を使えば、色の加算、減算、乗算といったブレンドモードが高速で処理できるというお話。 Canvas2D でもピクセルマニピュレーションができるので、様々なブレンドモードを自前で実装することができるのだが、ピクセル数 * 4色の処理負荷が CPU にかかるためパフォーマンスがよくない。しかし WebGL のフラグメントシェーダーを利用すれば色を高速で処理できる。 demo WebGL は簡単なことをするにも、初期化の処理が冗長なためコードは長くなってしまうが、実際は大したことはやっていない。 2つのトライアングルを用意する 2枚のテクスチャー画像を適用する フラグメントシェーダーでテクスチャー画像の色をブレンドする GLSL では、4成分 (Red, Green, Blue, Alpha) をそのまま足したり掛けたりすることができるので、ブレンドの公式に当てはめるだけで処理できる。

    WebGL で高速 BlendMode | Yomotsu net
  • [GLSL] WebGLで炎の揺らぎ - Qiita

    このサイトの炎の揺らぎを解読してみようと思います。 実際に見てもらうと分かりますが、立体的でだいぶリアルな感じの炎が表現されています。 ちなみに解説用にThree.jsで実装しなおしたやつをjsdo.itに上げてあります。 そして結論から言うと、メインとなる処理のところはなんとなくの推測しかできませんでした( ;´Д`) おそらく、視点位置から炎の輪郭となる頂点郡を計算し、3DのCubeTexture的なことをやっているんだと予想。 (なのでメインの処理のメソッド名がsliceなんだと思う) [2015.06.17 追記] ここで紹介している実装、サンプルは「ボリュームレンダリング」と呼ばれるものです。 (今回の炎は「Volumetric Flame」) これは炎などのようにポリゴンで表現しづらい現象を実現するものです。 仕組みとしてはボリューム(今回の例ではキューブ)をスライスして、各断

    [GLSL] WebGLで炎の揺らぎ - Qiita
  • 1