Weekly report 2017-W32
2017-W31-6 (Sat) から 2017-W32-5 (Fri) までの日記。
ニュース・知ったこと
Firefox 55 リリース
- より優れた、高速でプライベートな最新ブラウザー | Firefox
- Firefox — Notes (55.0) — Mozilla
- Firefox 55.0 リリースノート
- Firefox 55: first desktop browser to support WebVR ★ Mozilla Hacks – the Web developer blog
Content process の数を設定画面で変更できるようになったりとか、パフォーマンスの劇的な改善とか。 WebVR サポートとかは個人的には当面使いそうにないのであまり興味ない。
Firefox はいいぞ
cloud-dl
- cghdev/cloud-dl: Bash script to list/upload/download files from owncloud/nextcloud
- Nextcloud鯖を立てた - マツダイアリー
Nextcloud鯖を立てた - マツダイアリーで紹介されていた。 めっちゃ便利。 これでサーバのバックアップを、ラップトップを経由せずオーンクラウド個人鯖に直接送れるようになった。
"No maintenance Intended" バッヂ
"No maintenance intended" バッヂを GitHub の README とかに貼れるよ、みたいなサイト。
ブラウザでブックマークするとサイト自体がメンテされてないように見えてややこしいし、サイト末尾に This project is maintained and is on GitHub!
とか書いてあって笑う。
私的活動
進捗: last-progress1
last-progress1 は、ゲームにしたい予定の何か。 今のところは静的な FBX のビューアの域を出ない。
-
Merge branch 'feature/allow-meshes-with-no-diffuse-texture' into feat… · lo48576/last-progress1@fc7ad3d
-
対応する diffuse テクスチャの存在しないモデルについて、白 1x1 px のダミーテクスチャを用意し使用する。
色を白としたのは、 fragment shader において
color = VertexIn.diffuse_color * texture(diffuse_texture, VertexIn.diffuse_uv);
のようにすることで、条件分岐を回避できるからである。 diffuse テクスチャの有無での分岐は vertex shader のみで行われ、テクスチャが存在する場合はVertexin.diffuse_color
がvec4(1.0)
になり、存在しない場合はVertexIn.diffuse_color
が頂点色を持ちtexture(〜)
がvec4(1.0)
を返すようにした。 -
diffuse テクスチャが存在する場合の UV 座標と、存在しない場合の頂点カラーを、同じ変数 (
diffuse_color
) で保持することでサイズを節約。
-
-
Merge branch 'feature/load-clusters-weights' into feature/limbnodes · lo48576/last-progress1@63cdb3c
-
cluster の情報を FBX から読み、 Geometry(Mesh) ノードとは別に保持する。
所有関係としては Geometry(Mesh) ノードが Deformer(Skin) ノードを子に持ち、その下に SubDeformer(Cluster) ノードがあるという木構造になるので、意味だけ考えれば cluster は geometry に所持されるべきである。 しかし、 FBX におけるメッシュは面ごとに異なるマテリアルを使用することが許されており、私のコードではそのようなメッシュについてマテリアル毎にサブメッシュへと分割する戦略をとった。 その結果、複数のサブメッシュが共通の skin や cluster を参照することが有り得るため、所有をさせないように実装しなおした。 (これが
last-progress1/src/model/fbx/mod.rs
のコード削除部分 である。) -
vertex shader において cluster のインデックスと重みを受け取り、反映させる。 (last-progress1/src/default.vert)
-
今週は、ボーンを使ったアニメーションで用いられる行列と頂点の対応と重みづけ (FBX 用語では "cluster") のロードを実装した。 ただし、これだけではアニメーションはできない。 ボーン(あるいは関節、ジョイント)をロードし、 cluster とジョイントを関連づけて、そのうえでジョイントに対して適切な姿勢変更を適用してやることで、やっとメッシュも動かすことができるようになる。 よって、ここからの実装が完成しなければ cluster のロードにバグがあったとしても発見できないかもしれない。 本番はここからだ。
また、デバッグ用に、 XYZ 軸を RGB の色で表示できるようにした。 これに伴い、シェーダ周辺に変更を行った。
感想
-
コミケ行きたい人生だった。
-
ラップトップがそのうち壊れるはずなので、買い替えのための資金を貯めなければならない。 よって金がない。
-
-
ぼちぼちサークルでの C++ 講習会の資料を書き始めないと……