タグ

gpuとjavascriptに関するlepton9のブックマーク (15)

  • Three.jsで新宿駅構内図を3Dで可視化してみる - Qiita

    これは MIERUNE AdventCalendar 2023 24日目の記事です! 昨日は@northprintさんによるSvelteKitでURLクエリパラメーターの操作をするでした。 はじめに この記事では新宿駅の屋内地図データを使用して、Three.jsで3Dによる可視化をします。 DEMOはコチラ 使用するデータ 今回は、G空間情報センターで公開されている「新宿駅屋内地図オープンデータ」の統合版(ShapeFile)を使用します。 データについての詳細は製品仕様書に記載されています。 この記事のように、データの加工利用には以下の出典が必要となります。 コンテンツを編集・加工等して利用する場合は、上記出典とは別に、編集・加工等を行ったことを記載してください。なお、編集・加工した情報を、あたかも国(又は府省等)が作成したかのような態様で公表・利用してはいけません。(コンテンツを編集・

    Three.jsで新宿駅構内図を3Dで可視化してみる - Qiita
  • マイクロソフト、Webブラウザで3Dゲームがびゅんびゅん動く「Babylon.js 5.0」正式リリース、WebGPUにフル対応、iOS/Androidなどクロスプラットフォーム展開も

    マイクロソフト、Webブラウザで3Dゲームがびゅんびゅん動く「Babylon.js 5.0」正式リリース、WebGPUにフル対応、iOS/Androidなどクロスプラットフォーム展開も マイクロソフトは、JavaScriptで2Dや3Dモデルを高速に扱えるライブラリ「Babylon.js」の最新版「Babylon.js 5.0」正式版をリリースしました。 We'd like to formally introduce the next version of the Babylon Platform - #BabylonJS5 Blog: https://t.co/aMgjIIeIin Video: https://t.co/OMssjZZPPz#gamedev #gamedevelopment #indiedev #indiedeveloper #webdev #3D @WebGPU #w

    マイクロソフト、Webブラウザで3Dゲームがびゅんびゅん動く「Babylon.js 5.0」正式リリース、WebGPUにフル対応、iOS/Androidなどクロスプラットフォーム展開も
  • [忙しい人向け] 100行から始めるWebGPU(WGSL対応版) - Qiita

    この記事はWeb グラフィックス Advent Calendar 2020の13日目の記事です。 ※ 2023年1月7日、内容が古くなっていた為、記事の内容を最新化しました。 変更箇所は「主な変更内容(2020年12月~2022年12月)」を参照ください。 はじめに WebGPU は WebGL や WebGL2 の後継とされているグラフィックス API です。 今のところリリース時期としては 2023年5月 Chrome 113 を目標 としているようです。 API の仕様は固まりつつありますが、まだ仕様変更等が入る可能性があることにご注意ください。 ここでは、主に、シェーダ機能「WGSL」(WebGPU Shading Language)について試してみようと思います。 2019年時点は WebGPU 用のシェーダの方針が決まっていなかった為、glslang と呼ばれるライブラリを用い

    [忙しい人向け] 100行から始めるWebGPU(WGSL対応版) - Qiita
  • 高速WebGLレンダリングシステムを備えた軽量の2DJavaScriptゲームエンジン・「LittleJS」

    LittleJSは高速WebGLレンダリングシステムを備えた軽量の2DJavaScriptゲームエンジンです。他ライブラリに依存せずに動作してくれます。 軽量、シンプルで、様々なゲーム開発に使えるライブラリを目指しているそうです。超高速レンダリング、物理演算、パーティクル、サウンドエフェクト、キーボード/マウス/ゲームパッドの入力処理、アップデート/レンダリングループ、デバッグツールなど、ほとんどのゲームに必要なものをすべて備えているとの事。 Steamのようなプラットフォームで配布するために、electronを使ってWindowsの実行ファイルとしてビルドすることも可能だそうです。ライセンスはMIT。 LittleJS

    高速WebGLレンダリングシステムを備えた軽量の2DJavaScriptゲームエンジン・「LittleJS」
  • 新感覚!メソッドチェーンでアニメーションがスラスラ書ける「Tween24.js」を作りました - ICS MEDIA

    新感覚!メソッドチェーンでアニメーションがスラスラ書ける「Tween24.js」を作りました アニメーションを作る時に、「思いついた演出をすぐに実装したい」「頭の中ではできているのに、コーディングするのが面倒」と思ったことはありませんか?アニメーション作成にはライブラリを使用することが多いと思いますが、使い方を調べて覚えて、ドキュメントからコピペしたり、ひたすらタイピングをして… 私はこれらの問題を解決するために、「Tween24」というライブラリを作りました。Tween24はメソッドチェーンで記述するのが特徴で、たった1行でアニメーションが実装できます。依存ライブラリもなく、単体で動作します。アニメーションライブラリの多くはオブジェクト型でプロパティを指定するためタイピングが多くなりがちですが、メソッドチェーンであればエディターのコード補完機能でスラスラと記述できます。 その他にも、メソ

    新感覚!メソッドチェーンでアニメーションがスラスラ書ける「Tween24.js」を作りました - ICS MEDIA
  • WebGLで綺麗な線香花火を作る

    夏が完全に終わってしまいましたね。今年は花火をできなかった人も多かったことと思います。 そんなこともあってWebGL(three.js)を使って線香花火を作ってみました。 WebGL線香花火デモページ ソースコード(github) はじめに 写真や、スローモーションで撮影された動画などが参考になるのでまずは見てみましょう。 画像検索:線香花火の写真 参考にした動画 玉から飛び出した火花が分裂している、そして火花の動きが速すぎて人の目には点ではなく線に見えるのがわかると思います。 また、写真ではボケが遠近感を出していて美しいので再現したいですね。 この記事では、WebGLによる線香花火の描画について、個人的に線香花火の大事だと思う3つの要素 滑らかな軌跡 綺麗な枝分かれ 美しいボケ それぞれについて解説します 滑らかな軌跡: 火花の軌跡の方程式 シンプルな自由落下ではなく、空気抵抗も入れた式

    WebGLで綺麗な線香花火を作る
  • TensorFlow.jsがWebGLで並列計算を実行する仕組みを理解する - 開発日誌

    先日、機械学習モデルの学習・デプロイのためのJavaScriptライブラリ「TensorFlow.js」がGoogleから公開されました。Googleからは「deeplearn.js」という同様のライブラリが以前から公開されていましたが、TensorFlow.jsはこのdeeplearn.jsをコアライブラリとして利用しており、モデルの構築を簡単にするhigh level APIや、TensorFlow体・Kerasで学習したモデルをインポートするツールを備えているとのことです。 このライブラリでは、WebGLを介してGPUを利用することで計算を高速化しているのが特徴です。WebGLはJavaScriptでグラフィック描画を高速に行うための機能ですが、これをどのようにして機械学習の計算に利用しているのか調べてみました。 そもそもWebGLは何をするためのもの? TensorFlow.js

    TensorFlow.jsがWebGLで並列計算を実行する仕組みを理解する - 開発日誌
  • サンプルで理解するWebGL 2.0 - Transform Feedbackによるパーティクル表現 - ICS MEDIA

    ブラウザからハードウェアアクセラレーションを使用してリッチな表現を実現できるWebGL。その新たなバージョンであるWebGL 2.0はChromeとFirefoxで標準で利用でき、次世代のウェブ3D表現技術として注目されています。 前回の記事では一度のドローコール(描画命令)で複数のテクスチャーに別々の情報を同時に描画(出力)できるMultiple Render Targets(マルチプル・レンダー・ターゲッツ)について紹介しました。連載の最後となる記事では同じくWebGL 2.0で追加された代表的な機能であるTransform Feedback(トランスフォーム・フィードバック)についてデモを交えて紹介します。 Transform Feedbackによるパーティクル表現 Transform Feedbackを使うと下記のデモのような表現が可能です。 デモを別ウインドウで再生する ソース

    サンプルで理解するWebGL 2.0 - Transform Feedbackによるパーティクル表現 - ICS MEDIA
  • JavaScriptからGPGPU(WebGL2)を利用する&パーティクル描画

    WebGL2ではTransformFeedbackという機能が使えるようになりました。TransformFeedbackがあればGPUでの計算結果をバッファに書き出すことができるようになります。これを使えば、なかなか面白いことができるようになります。 この記事では、TransformFeedbackを利用したGPGPUと、パーティクル描画について解説します。 前提知識 この記事では、WebGL2について、基礎的な知識を持っていることを前提としています。まだWebGL2に慣れ親しんでいない人は、以下の記事を参考にしてください。 WebGL2入門 基礎編 また、WebGL1/WebGL2について、@h_doxas様がwgld.orgという解説サイトを開いています。そちらも参考にしてください。 wgld.org ソースコード この記事で使われているプログラムの完全なコードはGithubに置いてあ

    JavaScriptからGPGPU(WebGL2)を利用する&パーティクル描画
  • Three.jsでCurl Noise - Qiita

    はじめに GLSLを触り始めるとやっぱりやりたくなりますよね。Curl Noise。 残念なことにWebGLではまだCompute Shaderは対応されてない状況です。(WebGL2.0から対応するらしい) ですが、Three.jsにはGPUComputationRendererというものございまして、誰でも簡単に粉を飛ばせます。 今回作成するものです。gitはこちら。 また、今回はCurl Noiseの説明というよりかはThree.jsでGPUComputationRendererを使ってGPGPUをすることについて解説します。 実装の大まかな説明 Curl Noiseのようなパーティクルは少なくとも1万くらいのパーティクルを出すことが多いですが、普通にThree.jsでオブジェクトを生成、位置の更新を行うと非常に重い、というか生成すらままならないかもしれません。 そこで、GLSLの出

    Three.jsでCurl Noise - Qiita
  • オフスクリーンキャンバスを使ったJSのマルチスレッド描画 – スムーズなユーザー操作実現の切り札 - ICS MEDIA

    OffscreenCanvas(オフスクリーンキャンバス)はWeb Workers(ウェブワーカー)を使用してWorkerスレッドで描画処理を行える機能です。負荷の高い描画処理をWorkerスレッドに移動することで、メインスレッドの負担が軽くなり、余裕ができます。これによりメインスレッドでスムーズなユーザー操作を実現できるようになり、ユーザー体験の向上が期待できます。記事ではOffscreenCanvasについて機能と使い方を解説します。 ▲ OffscreenCanvasを使用したデモ。OffscreenCanvasを使用すると、Canvasへの描画負荷が高い場合でもスムーズなユーザー操作とCSSアニメーションの再生を実現できる JavaScriptでマルチスレッドに処理を実行できるWeb Workers OffscreenCanvasの説明の前に、まずはWeb Workersについて

    オフスクリーンキャンバスを使ったJSのマルチスレッド描画 – スムーズなユーザー操作実現の切り札 - ICS MEDIA
  • THREE.MeshLineで、ヌルヌル動く線を作ろう! - Workship MAGAZINE(ワークシップマガジン)

    デモページ ソースダウンロード 線を使ったアニメーションは、流れ星や紙吹雪、風の動きなど、さまざまなモチーフの表現をより豊かにしてくれます。 今回はTHREE.MeshLineを使い、リボンのように滑らかに線が動くアニメーションを作る方法を、5つのデモとともにご紹介します。オリジナルのアニメーションを作る際は、ぜひ参考にしてみてください。 THREE.MeshLineとは 筆者は2年前から、Jaume Sanchez EliasがThree.js用に作成したライブラリ『THREE.MeshLine』を使用して、WebGLでヌルヌルと動く線を作りはじめました。 THREE.MeshLineの特徴は、Three.jsが長年抱えてきた「線の幅が変更できない」という問題に取り組んでいる点にあります。MeshLineは、幅のパラメーターをサポートしていないGL_LINEメソッドのかわりに、ビルボード

    THREE.MeshLineで、ヌルヌル動く線を作ろう! - Workship MAGAZINE(ワークシップマガジン)
  • Depth of Field · inconvergent

    The 3D webs in the previous post are represented as graphs. Rendering them in 3D presents a few challenges. Depending on what tools you use, you might be able to convert them into meshes. There are several other ways to do it as well. The following is the outline of the method used to render the webs, as well as the images you see here, that does not involve building meshes. It should work for a w

    Depth of Field · inconvergent
  • [Three.js] Three.jsでシェーダー入門 - Qiita

    はじめに デモページ Three.jsやBabylon.jsのようなWebGLライブラリで、シェーダーを利用すると表現力が向上します。 シェーダーは難解です。これから学習を始める人にとって、どこから手をつけていいのかわからなくなります。WEB上にはシェーダーを扱ったさまざまな記事がありますが、どのような読者を想定して書かれているかは千差万別です。著者が想定している前提知識を持っておらず、読者が内容を理解できないことがあります。 この記事ではThree.jsを利用することを前提に、シェーダーを利用してマテリアルを自作するまでの方法を解説します。 上の2つのリポジトリは、私がシェーダーの学習の過程で製作したものです。先頭のGIFアニメの元のマテリアルもこのリポジトリで公開しています。ご参考までに。 想定する読者 この記事は 現在Three.jsを利用している。 WebGL, GLSLの知識はな

    [Three.js] Three.jsでシェーダー入門 - Qiita
  • リアルタイム 3D サーフェースシェーダ in WebGL | LAB | Q'TECHNICAL

  • 1