LoginSignup
5
3

More than 5 years have passed since last update.

2017年に作ったGrimoire.jsのサンプルを振り返ってみる

Last updated at Posted at 2017-12-03

この記事はGrimoire.js Advent Calender 2017の3日目の記事です。

はじめに

Grimoire.js は日本発の WebGL フレームワークです。
この1年を振り返ってみると、Grimoire.js には表現力を強化する仕組みが多く実装された年ではなかったかと思います。
早速ですがサンプルをいくつか紹介したいと思います。

2017年にサポートされた主な機能

  • シェーダタグ
  • インスタンシング
  • 複数カメラの設置
  • PBR
  • glTF 2.0

シェーダタグ

従来は、シェーダを外部ファイルとして用意する必要がありましたが、本機能により、HTML の script タグ(type="text/sort")としてシェーダを記載できるようになりました。jsdo.it 等で、シェーダを確認しながらコーディングできるので個人的に重宝している機能です。

image
http://jsdo.it/cx20/eRe9

image
http://jsdo.it/cx20/chhM

image
http://jsdo.it/cx20/4EztL

インスタンシング

複数のメッシュを1回のドローコールで描画できるようになる便利機能です。使いこなすにはデータ構造を意識する必要がある為、少し練習が必要かもしれません。

image
http://jsdo.it/cx20/u3rD
image
http://jsdo.it/cx20/u3rD

複数カメラの設置

もしかしたら、前からある機能だったかも知れません。複数カメラが設定できることを今年知りました。

image
http://jsdo.it/cx20/Kqig

PBR

PBR は 物理ベースレンダリングの略で、あまり詳しくは理解できていないですが、現実のライティングに近い表現ができる仕組みのようです。

image
http://jsdo.it/cx20/89C8
image
http://jsdo.it/cx20/ATDR

glTF 2.0

glTF は Khronos の提唱する 3D フォーマットです。glTF 2.0 より PBR に対応し、より表現力が向上したフォーマットになっています。

image
http://jsdo.it/cx20/Qurl
image
http://jsdo.it/cx20/oGhR

その他ライブラリ・API の組み合わせ

Effekseer

Effekseerはパーティクルなどのエフェクトを制作する為のツールです。エフェクトファイルが WebGL でも利用できるようなので使ってみました。

image
http://jsdo.it/cx20/Q3n5

Draco 形式ファイル

Draco 形式は Google の提唱する新しい 3D Mesh の圧縮形式です。デコードするライブラリが提供されているので使ってみました。データにもよりますが、かなりの高圧縮が期待できます。下記サンプルで使用しているモデルはobj形式に比べて約1/30に圧縮(6.6MB→212KB)されることを確認しています。

image
http://jsdo.it/cx20/UOJ0

Web Audio API

image
http://jsdo.it/cx20/8wgq

ジャイロセンサー

ジャイロセンサーはスマホ等に内蔵されている傾きセンサーです。これらのセンサーを Grimoire.js と組み合わせて使ってみました。スマホで作品を傾けると模様が変わるようになっています。

image
http://jsdo.it/cx20/AJJ5

Oimo.js

Oimo.js は JavaScript による物理演算ライブラリです。軽量かつ高速な動作が特徴です。

image
http://jsdo.it/cx20/OEes
image
http://jsdo.it/cx20/0fsp

おわりに

いかがでしょうか。ここで紹介したサンプル以外にも多数サンプルを投稿していますので興味ある方がいらっしゃいましたら http://jsdo.it/tag/Grimoire.js をご覧ください。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3