Enviar pesquisa
Carregar
Emscripten night "WebGL + WASM"
•
0 gostou
•
166 visualizações
翔 石井
Seguir
Emscripten night 12 月の資料です
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 21
Baixar agora
Baixar para ler offline
Recomendados
モダンJavaScriptフレームワークで技術的負債を作らないために
モダンJavaScriptフレームワークで技術的負債を作らないために
YukiOniki
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
Hajime Ogushi
PWA aruaru
PWA aruaru
n_harada
Knockout を用いた大規模 JavaScript 開発
Knockout を用いた大規模 JavaScript 開発
Kentaro Iizuka
自動化ツール「Grunt.js」について
自動化ツール「Grunt.js」について
Seiko Kuchida
20130202 fe勉強会 canvas
20130202 fe勉強会 canvas
Keisuke Aizawa
WebAssembly と Rust の入口の向かいにある道路のベンチに腰掛けるレベルのさわってみた感想を共有
WebAssembly と Rust の入口の向かいにある道路のベンチに腰掛けるレベルのさわってみた感想を共有
zaru sakuraba
Web開発初心者がReactをチームに導入して半年経った
Web開発初心者がReactをチームに導入して半年経った
kazuki matsumura
Recomendados
モダンJavaScriptフレームワークで技術的負債を作らないために
モダンJavaScriptフレームワークで技術的負債を作らないために
YukiOniki
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
Hajime Ogushi
PWA aruaru
PWA aruaru
n_harada
Knockout を用いた大規模 JavaScript 開発
Knockout を用いた大規模 JavaScript 開発
Kentaro Iizuka
自動化ツール「Grunt.js」について
自動化ツール「Grunt.js」について
Seiko Kuchida
20130202 fe勉強会 canvas
20130202 fe勉強会 canvas
Keisuke Aizawa
WebAssembly と Rust の入口の向かいにある道路のベンチに腰掛けるレベルのさわってみた感想を共有
WebAssembly と Rust の入口の向かいにある道路のベンチに腰掛けるレベルのさわってみた感想を共有
zaru sakuraba
Web開発初心者がReactをチームに導入して半年経った
Web開発初心者がReactをチームに導入して半年経った
kazuki matsumura
PWAでタイマーを 作ってみた
PWAでタイマーを 作ってみた
Yuhei FUJITA
最近知ったBootstrapの注意点
最近知ったBootstrapの注意点
Kawaji Masaki
ReactでCMSを作ったときにハマったこと
ReactでCMSを作ったときにハマったこと
kazuki matsumura
【2017早めの夏休み自由研究】SPAとサーバーレスについて
【2017早めの夏休み自由研究】SPAとサーバーレスについて
kazuki matsumura
Devops4cloudlbuilder ja
Devops4cloudlbuilder ja
Go Chiba
React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみた
kazuki matsumura
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
kazuki matsumura
デザイナーさんでもできる Browsersync からはじめる作業効率化
デザイナーさんでもできる Browsersync からはじめる作業効率化
Kumiko SHIMIZU
Bootstrapを使ってみよう
Bootstrapを使ってみよう
Kawaji Masaki
WebGLことはじめ
WebGLことはじめ
Kazuya Hiruma
MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方
Kazuki Shibata
勉強会vol.16 Instapage
勉強会vol.16 Instapage
GIG inc.
デザイナーさんでもできる Browsersync からはじめる作業効率化・春
デザイナーさんでもできる Browsersync からはじめる作業効率化・春
Kumiko SHIMIZU
オープンソースプロジェクトのはじめかた@Creators MeetUp #25
オープンソースプロジェクトのはじめかた@Creators MeetUp #25
Erina Takei
ホームページ制作
ホームページ制作
yosuke mizusawa
KMC Font Project 1 - フォント製作・Typeface Designの基本
KMC Font Project 1 - フォント製作・Typeface Designの基本
k maztani
SVGの基本&活用法。SVGのメリットと事例を基礎から学ぶ。
SVGの基本&活用法。SVGのメリットと事例を基礎から学ぶ。
Daisuke Koshimizu
Middlemanによる静的サイト作成術
Middlemanによる静的サイト作成術
豊明 尾古
ソースコードをAAに変換するやつやってみた
ソースコードをAAに変換するやつやってみた
Takahashi Koki
久しぶりにWebエンジニアのためのプロジェクションマッピング
久しぶりにWebエンジニアのためのプロジェクションマッピング
KatsuyaENDOH
Three.js使ってみた
Three.js使ってみた
晴哉 谷口
スマホにおけるWebGL入門
スマホにおけるWebGL入門
Yohta Kanke
Mais conteúdo relacionado
Mais procurados
PWAでタイマーを 作ってみた
PWAでタイマーを 作ってみた
Yuhei FUJITA
最近知ったBootstrapの注意点
最近知ったBootstrapの注意点
Kawaji Masaki
ReactでCMSを作ったときにハマったこと
ReactでCMSを作ったときにハマったこと
kazuki matsumura
【2017早めの夏休み自由研究】SPAとサーバーレスについて
【2017早めの夏休み自由研究】SPAとサーバーレスについて
kazuki matsumura
Devops4cloudlbuilder ja
Devops4cloudlbuilder ja
Go Chiba
React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみた
kazuki matsumura
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
kazuki matsumura
デザイナーさんでもできる Browsersync からはじめる作業効率化
デザイナーさんでもできる Browsersync からはじめる作業効率化
Kumiko SHIMIZU
Bootstrapを使ってみよう
Bootstrapを使ってみよう
Kawaji Masaki
WebGLことはじめ
WebGLことはじめ
Kazuya Hiruma
MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方
Kazuki Shibata
勉強会vol.16 Instapage
勉強会vol.16 Instapage
GIG inc.
デザイナーさんでもできる Browsersync からはじめる作業効率化・春
デザイナーさんでもできる Browsersync からはじめる作業効率化・春
Kumiko SHIMIZU
オープンソースプロジェクトのはじめかた@Creators MeetUp #25
オープンソースプロジェクトのはじめかた@Creators MeetUp #25
Erina Takei
ホームページ制作
ホームページ制作
yosuke mizusawa
KMC Font Project 1 - フォント製作・Typeface Designの基本
KMC Font Project 1 - フォント製作・Typeface Designの基本
k maztani
SVGの基本&活用法。SVGのメリットと事例を基礎から学ぶ。
SVGの基本&活用法。SVGのメリットと事例を基礎から学ぶ。
Daisuke Koshimizu
Middlemanによる静的サイト作成術
Middlemanによる静的サイト作成術
豊明 尾古
ソースコードをAAに変換するやつやってみた
ソースコードをAAに変換するやつやってみた
Takahashi Koki
久しぶりにWebエンジニアのためのプロジェクションマッピング
久しぶりにWebエンジニアのためのプロジェクションマッピング
KatsuyaENDOH
Mais procurados
(20)
PWAでタイマーを 作ってみた
PWAでタイマーを 作ってみた
最近知ったBootstrapの注意点
最近知ったBootstrapの注意点
ReactでCMSを作ったときにハマったこと
ReactでCMSを作ったときにハマったこと
【2017早めの夏休み自由研究】SPAとサーバーレスについて
【2017早めの夏休み自由研究】SPAとサーバーレスについて
Devops4cloudlbuilder ja
Devops4cloudlbuilder ja
React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみた
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
デザイナーさんでもできる Browsersync からはじめる作業効率化
デザイナーさんでもできる Browsersync からはじめる作業効率化
Bootstrapを使ってみよう
Bootstrapを使ってみよう
WebGLことはじめ
WebGLことはじめ
MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方
勉強会vol.16 Instapage
勉強会vol.16 Instapage
デザイナーさんでもできる Browsersync からはじめる作業効率化・春
デザイナーさんでもできる Browsersync からはじめる作業効率化・春
オープンソースプロジェクトのはじめかた@Creators MeetUp #25
オープンソースプロジェクトのはじめかた@Creators MeetUp #25
ホームページ制作
ホームページ制作
KMC Font Project 1 - フォント製作・Typeface Designの基本
KMC Font Project 1 - フォント製作・Typeface Designの基本
SVGの基本&活用法。SVGのメリットと事例を基礎から学ぶ。
SVGの基本&活用法。SVGのメリットと事例を基礎から学ぶ。
Middlemanによる静的サイト作成術
Middlemanによる静的サイト作成術
ソースコードをAAに変換するやつやってみた
ソースコードをAAに変換するやつやってみた
久しぶりにWebエンジニアのためのプロジェクションマッピング
久しぶりにWebエンジニアのためのプロジェクションマッピング
Semelhante a Emscripten night "WebGL + WASM"
Three.js使ってみた
Three.js使ってみた
晴哉 谷口
スマホにおけるWebGL入門
スマホにおけるWebGL入門
Yohta Kanke
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
WheetTweet
20170719 GCPUG OSAKA #3
20170719 GCPUG OSAKA #3
Yuya Ohara
GoImagickThumbnail
GoImagickThumbnail
Yo Ya
2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
miso- soup3
2017/09/02 CloudGaragere lease tour in okayama LT
2017/09/02 CloudGaragere lease tour in okayama LT
Takeshi Furusato
今更GWTで遊ぶぜ!
今更GWTで遊ぶぜ!
Daisuke Kamikawa
JavaScriptでCGを扱う WebGL紹介
JavaScriptでCGを扱う WebGL紹介
Isao Ebisujima
vImageのススメ
vImageのススメ
Shuichi Tsutsumi
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
Katsunori Kanda
Glide活用イメージ紹介20220421
Glide活用イメージ紹介20220421
kazu_1803
Visual Studio 2017 で Azure Functions の開発
Visual Studio 2017 で Azure Functions の開発
Yasuaki Matsuda
VueとAWSAppSyncで始めるチャットアプリ開発
VueとAWSAppSyncで始めるチャットアプリ開発
Ryosuke Izumi
ShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみ
Kohei Kadowaki
Webページで学ぶJavaScript2013 第0回
Webページで学ぶJavaScript2013 第0回
京大 マイコンクラブ
若手エンジニアとして今年頑張ったこと
若手エンジニアとして今年頑張ったこと
Tsukasa Omukai
AWS SDK for Go を使って作ってみた話
AWS SDK for Go を使って作ってみた話
uchimanajet7
Semelhante a Emscripten night "WebGL + WASM"
(18)
Three.js使ってみた
Three.js使ってみた
スマホにおけるWebGL入門
スマホにおけるWebGL入門
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
20170719 GCPUG OSAKA #3
20170719 GCPUG OSAKA #3
GoImagickThumbnail
GoImagickThumbnail
2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
2017/09/02 CloudGaragere lease tour in okayama LT
2017/09/02 CloudGaragere lease tour in okayama LT
今更GWTで遊ぶぜ!
今更GWTで遊ぶぜ!
JavaScriptでCGを扱う WebGL紹介
JavaScriptでCGを扱う WebGL紹介
vImageのススメ
vImageのススメ
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
Glide活用イメージ紹介20220421
Glide活用イメージ紹介20220421
Visual Studio 2017 で Azure Functions の開発
Visual Studio 2017 で Azure Functions の開発
VueとAWSAppSyncで始めるチャットアプリ開発
VueとAWSAppSyncで始めるチャットアプリ開発
ShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみ
Webページで学ぶJavaScript2013 第0回
Webページで学ぶJavaScript2013 第0回
若手エンジニアとして今年頑張ったこと
若手エンジニアとして今年頑張ったこと
AWS SDK for Go を使って作ってみた話
AWS SDK for Go を使って作ってみた話
Mais de 翔 石井
WebでのARには ハードル(闇)がいっぱいある話
WebでのARには ハードル(闇)がいっぱいある話
翔 石井
DotsLT AA Overview
DotsLT AA Overview
翔 石井
Grimoire.js Community announcement June 20 2016
Grimoire.js Community announcement June 20 2016
翔 石井
WebGLで浮動小数点テクスチャを扱う話
WebGLで浮動小数点テクスチャを扱う話
翔 石井
jThree community kickoff
jThree community kickoff
翔 石井
jThree announcment 4-24
jThree announcment 4-24
翔 石井
jThree 0.10 alpha release
jThree 0.10 alpha release
翔 石井
チョコ溶かす奴
チョコ溶かす奴
翔 石井
Dynamic lighting and dropping shadow in WebGL
Dynamic lighting and dropping shadow in WebGL
翔 石井
Efficacy of deferred rendering in WebGL
Efficacy of deferred rendering in WebGL
翔 石井
Mais de 翔 石井
(10)
WebでのARには ハードル(闇)がいっぱいある話
WebでのARには ハードル(闇)がいっぱいある話
DotsLT AA Overview
DotsLT AA Overview
Grimoire.js Community announcement June 20 2016
Grimoire.js Community announcement June 20 2016
WebGLで浮動小数点テクスチャを扱う話
WebGLで浮動小数点テクスチャを扱う話
jThree community kickoff
jThree community kickoff
jThree announcment 4-24
jThree announcment 4-24
jThree 0.10 alpha release
jThree 0.10 alpha release
チョコ溶かす奴
チョコ溶かす奴
Dynamic lighting and dropping shadow in WebGL
Dynamic lighting and dropping shadow in WebGL
Efficacy of deferred rendering in WebGL
Efficacy of deferred rendering in WebGL
Emscripten night "WebGL + WASM"
1.
WEBGL WITH WASM EMSCRIPTEN
NIGHT 2018 DECEMBER
2.
WHO AM I? @KYASBAL-1994
(石井 翔) ▸ 東工大 M1 ▸ 未踏2016スーパークリエータ ▸ Web開発のためのWebGLフレームワーク”Grimoire.js”作者 ▸ 未踏アドバンスト2018イノベータ ▸ 普段はWebGLとかWebXR周りのことをやっている人
3.
導入 WASMでスレッドが使えるようになる! ▸ これでマルチコアをフル活用したWASMばっかりのWebサ イトを作れるぞ! ▸ もっと活かせるコアはたくさんある!
4.
導入 WEBGL ▸ WebGLって単語を知っているよって方? ▸ WebGL使ったことあるよって方?
5.
導入 WEBGLとは? 🤔ちょっと微妙
6.
導入 WEBGLはWEBで3DCGを行う為だけのものじゃない ▸ GPUを用いて主に3DCGなどの描画を高速に行うAPI 🤯 CPU
? GPU ?
7.
導入 WEBGLはWEBで3DCGを行う為だけのものじゃない 🤯 CPU ?
GPU ?
8.
導入 WEBGLの得意な処理の例 ▸ グラデーションをかける ▸ 入力: 各点の一番近い3つの頂点から の距離 3つの頂点の色 ▸
出力: 色 ▸ ある点の色を決める際に別の点 の色が関係ない
9.
WASMと共にWEBGLも活用してもっと高速化しよう
10.
WEBGL+WASMの実例 WEBGLとWASMを用いた線分認識
11.
WASMの効果 GPUを用いた事前処理 WASMでの処理時間 JSでの処理時間 GPUで可能な処理: 色の勾配を求める処理 (Sobel
フィルタリング) 輝度を2値に分解する処理 CPUでしかできない処理: 線分検出(RANSAC) WEBGL+WASMの実例
12.
デモ WASMとWEBGLを連携させてみよう ▸ 流石にマーカー認識は難しいのでエッジのセグメンテーショ ンをします デモコード: https://github.com/kyasbal-1994/emscripten-night
13.
デモ WASMとWEBGLを連携させてみよう ▸ WebGLだけでは難しい。 (隣同士のピクセルの値によって処理が変わってしまう) デモコード: https://github.com/kyasbal-1994/emscripten-night
14.
デモ WASMとWEBGLを連携させてみよう ▸ WASMだけでもできるが、勾配の計算はGPUでやると早い デモコード: https://github.com/kyasbal-1994/emscripten-night
15.
WASMとWEBGLでメモリを共有する ▸ WASM側にallocとdeallocを実装する
16.
WASMでALLOCしたメモリをJS側で表示する ▸ js側からallocを呼び出して、ポインタを取得する ▸ このポインタを用いてシェアされたUint8Arrayを作れる 画像として使う際の例
17.
テキスト 補足) UINT8ARRAY コンストラクタ ▸
4つ目の第一引数に直接memoryを渡す ▸ byteOffsetにwasm側で取得したpointerを渡す ▸ lengthにメモリ全体の長さを渡す ▸ これはただのビューなのでコピーのコストなどは生じない
18.
WEBGLでSOBELフィルタを描画する ▸ WASM関係の話の場なので省略するが比較的簡単なチュー トリアルを見ればエッジの抽出ができる 参考) https://wgld.org/d/webgl/w055.html 中心の画素を決める際に左右上下斜めの色を見て 係数をかけて足し合わせる
19.
WEBGLで描いた内容をWASMに渡す ▸ Framebufferというものに描画することによって、 Uint8Arrayに書き出すことができる
20.
WASMで幅優先探索を行なってメモリに直接色を乗せる
21.
まとめ まとめ ▸ 同じ処理を入力が若干違うもの同士に適用する際には WebGLを使うと早い ▸ WASM側でallocしたポインタをjsに渡す ▸
js側でUint8Arrayなどに渡して切り出す ▸ WebGL側でFBOに描画してreadPixelsを用いればWASM側 に直接GPUで描画したテクスチャを渡すことができる
Baixar agora