WebGL Lib 2019/05/29

## とりあえず MMD モデルを表示してみるテスト2
ミクさん召喚に成功。
[実行](sample/index.html)
### 大雑把な説明
- 3D 勉強用に作ったブラウザ上で動く PMD/PMX ビューアーのような何か。
- chrome or firefox でのみ動作確認。
- モーフ, IK, 物理、セルフシャドウ, モーションその他諸々未実装
- 両面素材も未対応, 常に表のみ
### 前回からの差分
- PMD も読めるように
- トゥーン
- エッジ
- スフィアマッピング
- HTML 要素いじった時に FPS が下がる現象をやや軽減
- その他細々と UI 変更
- 関係ないけど、このブログもどきも少し機能拡張した
### usage
- フォルダ毎 PMX/PMD を放り込む
- 複数モデルが入っていたら選択肢が出るので選ぶ
- 待つ
- tga 形式のテクスチャがあると画像の変換が入るので重い
- 見る
- マウス左: 回転, マウス右: 移動, ホイール: 拡縮(ズームではなく距離)
- 画面右側で色々いじる
- ポーズファイルを読む
- VPD ファイルを突込む
- IK が無いので足回りが悲しいことになるので適度に嘆く
### 感想
- MMD に近いシェーダ書くのが大変だった。以下メモ。
- MMD モデルの diffuse → いわゆる ambient 相当
- MMD モデルの ambient → いわゆる emissive 相当
- light は ambient と specular に掛かる
- diffuse color はトゥーンレンダリング時には "無い"
- diffuse factor は toon のサンプリングに使うのみ
- アクセサリにはあるっぽい?
- 通常テクスチャは diffuse に掛けるのでなくライティング後に掛ける
- (ambient * light + emissive) * texture
- 加算スフィアでもアルファは掛け算
- toon は、スフィアマッピングの後に掛ける
- specular は最後に足す
※ 実行サンプルはアルファに関しての計算は MMD のものとは異なる