webg samples

サンプルの全文は各 README へ移し、ここでは実行ファイルと README への入口を見やすく整理しています。実行ページは各 sample フォルダ内の サンプル名/サンプル名.html です。

webg samples preview

参照先

動作確認用のアプリ一覧は ../unittest/index.html、book 内の実行用 HTML 一覧は ../book/examples/index.html を参照してください。

WebgApp を使う sample は通常 release mode で起動します。デバッグ情報を見たい場合は sample 画面で F9 を押してから M を押すと debug / release mode を切り替えられます。診断情報の copy は F9 のあとに C、JSON copy は F9 のあとに V です。

クイックリンク

検索

49 / 49 samples

サンプル一覧

Sample

animation_state

samples/gltf_loader/hand.glb の手を読み込み、各指ポーズの action 自体は Action で再生しつつ、「今どの action を選ぶか」は AnimationState が決める構成を確認できます。

Sample

axis

3D 空間の原点に X / Y / Z の基準軸を置き、座標系の向きとスケール感を確認する教育用サンプルです

Sample

billboard

Billboard クラスで、常に camera 正面を向く particle 表現を描画するサンプルです

Sample

bloom

BloomPass を使って、3D scene を一度 offscreen RenderTarget へ描いてから bloom 合成して canvas へ戻すサンプルです。

Sample

bone_creature

複数のスキンメッシュ(触手)を同時にアニメーションし、ボーン変形と法線マップの見え方を確認するサンプルです。

Sample

breakout

webg のゲーム向け基礎機能を使って、3D 表現を取り入れたシンプルなブロック崩しを作るサンプルです。

Sample

circular_breaker

webgの基本機能(シーン管理、衝突、HUD、音)をまとめて使った3Dブロック崩しの統合サンプルです。

Sample

collada_loader

main.js 内で指定した Collada (.dae) ファイルを読み込み、ModelAsset に正規化してから表示するサンプルです。

Sample

collisions

space.checkCollisions() で軸平行境界ボックス重なり判定(AABB, 広域)の候補を取り、サンプル内の球 vs mesh 距離判定で詳細衝突を検証するサンプルです。

UI

com_palette

CommandPalette.js が default style、起動 gesture、button、stepper、select を持つ高水準 UI 部品の実験サンプルです。

Compute

compute_bloom

samples/bloom の比較対象となる Compute Shader 版です。

Compute

compute_cloth

WebGPU の Compute Shader を使い、格子状の布を mass-spring モデルで更新するサンプルです

Compute

compute_deferred_lighting

sample-local MRT passでalbedo、view-space normal、depthをG-bufferへ出力します。

Compute

compute_dof

Compute Shader で多段階ぼかしを行い、Sample Step と stage 別 scale で品質とGPU負荷を調整できます。

Compute

compute_edge

scene color の 3x3 近傍を Compute Shader で読み、Sobel filter によるエッジ検出を行います。

Compute

compute_effect

SSAO、directional / spot Shadow Map、SSR、DoF、Bloom、Edge を ComputeEffectPipeline でまとめて扱う高水準 API の実験サンプルです。

Compute

compute_json

ModelAsset JSON のアニメーションを再生しながら、ComputeEffectPipeline の画面効果を切り替えて確認できる汎用 JSON ビューアです。

Compute

compute_particles

WebGPU の Compute Shader を使い、大量の粒子を GPU 側で更新して描画するサンプルです

Compute

compute_physics_bounce

球体の位置、半径、速度、反発係数、摩擦係数、色をstorage bufferへ保持します。

Compute

compute_postprocess

第20章のポストプロセス描画フローを、fragment shader の FullscreenPass ではなく Compute Shader で加工するサンプルです。

Compute

compute_shadow_map

webg coreのShadowMapPassでstatic/skinned Shapeの単一directional light shadow mapを検証します。spot shadowは別コアAPIとして高水準pipelineから利用できます。

Compute

compute_ssao

scene colorとsampleable depthをCompute Shaderで読み、depth-only SSAOを計算します。

Compute

compute_ssao2

sample内のMRT geometry passでlit color、view-space normal、depthをG-bufferへ出力します。

Compute

compute_ssr

sample-local G-bufferのalbedo、view-space normal、depthをCompute Shaderから読みます。

Compute

compute_texture

WebGPU の Compute Shader を使い、2 枚の texture を ping-pong しながら毎フレーム内容を書き換えるサンプルです

Compute

compute_vignette

VignettePass の fragment shader 版と比較するため、同じ周辺減衰を Compute Shader 1 dispatch で処理します。

Sample

demo_spheres

球体を複数配置し、色・テクスチャ・回転・カメラ操作をまとめて確認するサンプルです。

Sample

detouch

ノードの親子関係を実行中に attach / detach で切り替えるサンプルです。

Sample

dof

DofPass の多段階ぼかしを使い、Focus Range を stage 1つ分の幅として調整できます。

Sample

embedded_glb_viewer

WebgApp の layoutMode: "embedded" と fixedCanvasSize を使い、本文の途中へ埋め込んだ canvas の中で .glb ビューアを動かすサンプルです

Sample

eye_rig

Orbit、First Person、Followの役割と、アプリケーションが作るcamera階層の違いを確認するサンプルです。

Sample

fog_cube

shader 側に追加した fog を、WebgApp ベースのサンプルで一通り試すためのサンプルです。

Sample

gltf_loader

main.js 内で指定した glTF / GLB ファイルを読み込み、ModelAsset に正規化してから表示するサンプルです。

Sample

high_level

README.md の「標準の使い方」にある WebgApp 例を、すぐ実行して確認できるサンプルとして切り出したものです

Sample

janken

samples/gltf_loader/hand.glb の手モデルと AnimationState を使って、ジャンケンを行うサンプルです。

Sample

json_loader

main.js 内で指定した ModelAsset JSON ファイルを読み込み、そのまま表示するサンプルです。

Sample

low_level

README.md の「標準の使い方」にある low-level 例を、そのまま実行しやすいサンプルとして切り出したものです

Sample

lowlevel_terrain

WebgApp で camera と HUD を整え、terrain mesh そのものは Shape の low-level API だけで作るサンプルです

Sample

mmodeler

スマートフォンやタブレットのタッチ操作に最適化した Blender 風の 3D modeler です

Sample

model_shape

Primitive.js が返す ModelAsset を ModelValidator で検証し、ModelBuilder で Shape に変換して表示するサンプルです。

Sample

physics_bounce

PhysicsSpace の中で複数の sphere が床、壁、球同士で反発しながら跳ねる見え方を確認するサンプルです

Sample

physics_collider

BoxCollider を持つ複数の body が、回転しながら落下し、空中や床上で接触し、押し合いながら落ち着いていく見え方を確認するサンプルです

Sample

proctex

WebgApp を土台に、Texture.js の手続きハイトマップ生成と法線マップ生成を同時に確認するサンプルです。

Sample

scene

Scene JSON を SceneAsset.load() で読み込み、WebgApp.validateScene() と WebgApp.loadScene() を通してそのまま表示するサンプルです。

Sample

shapes

primitive 系サンプル群の中では、texture / image normal / procedural normal の見え方比較を 1 本へ寄せる主入口です。

Sample

skinning

ウェイト分布や回転軸を切り替えながら、スキニング変形を詳細に観察する教材向けサンプルです。

Sample

sound

AudioSynth と GameAudioSynth を使い、SE と BGM を同じ画面で調整しながら確認するサンプルです。

Sample

tone

ToneSynth だけを使い、単音または3和音で波形、envelope、reverb の違いを確認するサンプルです。