Open3
WebAssemblyでWebGLを触ろう!
WebAssembly(Rust)でWebGLを扱うコードを書いてみようの、お話。
なお、このスクラップにおいて、Three.jsやBabylon.jsは使いません
ブラウザに標準搭載されているメソッドのみを活用して、爆速WebGLを実現していきたいと思います!!
環境構築
Vite(TypeScript)
yarn create vite
cd [指定したディレクトリ名]
yarn
Rust(WebAssembly)
cargo new --lib [指定したディレクトリ名2]
cd [指定したディレクトリ名2]
cargo install wasm-pack
cargo add wasm-bindgen
cargo add web-sys
WebAssemblyのビルドコマンド
wasm-pack build --target web
開発環境サーバの起動
yarn dev
今回使用しているパッケージ
TypeScript
{
"name": "wasm-webgl",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview"
},
"devDependencies": {
"typescript": "^5.2.2",
"vite": "^5.2.0"
}
}
Rust
[package]
name = "rust-wasm-webgl"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
crate-type = ["cdylib", "rlib"]
[dependencies]
wasm-bindgen = "0.2.92"
web-sys = {version = "0.3.69",features=[
"Window",
"Document",
"Element",
"HtmlCanvasElement",
"WebGlRenderingContext"
]}
参考URL