自作WASMプリプロセッサとWeb要素技術を使ってレトロ・シューティングを作る

自作WASMプリプロセッサとWeb要素技術を使ってPSGエミュレータを軽く作ってみた。そしていまレトロ・シューティングを作っている(進行中)。
3
S.F. @SFPGMR

複数のボクセルデータを表示するのはサクっと作ってしまうつもりだったんだけど、WebGL2.0の理解が深まるにつれいろいろ盛り込みたいことが増えてきてる。盛り込みたいというか変更したいというか。。

2019-06-30 07:08:39
S.F. @SFPGMR

複数のボクセルデータを表示するために今改造してるところなんだけど、これを機会にオイラー角での指定をやめて、軸ベクトル+ラジアンで回転を表すようにしてみるつもりである。

2019-06-30 07:07:15
S.F. @SFPGMR

軸ベクトルをつかうと例えばx軸周りの回転は (1,0,0)になるわなあ。そしてx軸かつy軸周りの回転は (1,1,0)となるのだろうなと思う。でまあy軸だけ逆回転させたくば(1,-1,0)とすればよいのかなと。たしかに考えやすい気がするねえ。。考え方が間違って理解してなければの話だけど。。

2019-06-30 07:04:28
S.F. @SFPGMR

クォータニオンはさておいて、軸ベクトルとラジアン1個で任意の回転をあらわすことができることは理解したのである。。

2019-06-30 06:57:53
S.F. @SFPGMR

こっちはクォータニオンを使うに必要な知識が書いてある。 marupeke296.com/DXG_No10_Quate…

2019-06-30 06:57:53
S.F. @SFPGMR

でまあこれを読んでみたわけだが。理解しとらんが「いいね」をつけとこう。。 qiita.com/drken/items/06…

2019-06-30 06:55:22
S.F. @SFPGMR

x,y,zの各軸は互いに直交してるわけで、なんで軸が重なるねん??となって頭が混乱するわけだ。

2019-06-30 06:54:15
S.F. @SFPGMR

しかし、「ジンバル・ロック」とやらはいくら頭の中で考えても全くイメージできんわけだ。これが。。 ja.wikipedia.org/wiki/%E3%82%B8…

2019-06-30 06:54:14
S.F. @SFPGMR

これはひょっとして「ジンバル・ロック」によるものなのかと考えたりとかしてたり。わからんけどね。 そこでまあ「ジンバル・ロック」のない回転とやらはどんな感じなのかと思ったわけだ。そこで思い出したのが「クォータニオン(四元数)」である。

2019-06-30 06:49:06
S.F. @SFPGMR

x,y,z軸固定でオイラー角でx,y,zをx,z,yの順番に回転行列を掛け合わせるのだが。各軸周りの回転が等速になってるように見えんところが気になるところだ。 youtu.be/Q5xShxUkbdE

2019-06-30 06:49:06
拡大
S.F. @SFPGMR

回転のアニメーションをオイラー角でしていると妙な違和感があって。x,y,zを同じ角速度で回してるのになんかこう回転速度が変化するような感じになってしまうのはなんでかな。。と昔から思ってた。 youtube.com/watch?v=Q5xShx… sfpgmr.net/sandbox/vox/20…

2019-06-30 06:43:08
拡大
S.F. @SFPGMR

あかん。難しい。今まで3次元空間での回転は軸固定でx,y,zのオイラー角で表してたのだが、回転軸ベクトルとラジアンを使って3次元の回転を表す方法をいまさら理解してさらにクォータニオンに行き着いたわけだが、朝一でこれはきつい。

2019-06-30 06:37:45
S.F. @SFPGMR

今さらクォータニオンを学習中。。 qiita.com/drken/items/06…

2019-06-30 06:05:47
S.F. @SFPGMR

知る人ぞ知るニチブツ「チューブパニック」。こういう粗いピクセルの3Dグラフィックをイメージしている。 youtube.com/watch?v=q58XNh…

2019-06-29 09:45:50
拡大
S.F. @SFPGMR

Uniform Bufferの価値が今になって理解できた。

2019-06-29 08:28:58
S.F. @SFPGMR

8x8x8ボクセルデータを4倍に拡大して表示。1ボクセル=1ポイントスプライトという処理なのでこのような独特な表現になる。正確にボクセルをレンダリングするというわけではない。 youtube.com/watch?v=Q5xShx…

2019-06-28 05:02:35
拡大
S.F. @SFPGMR

これでMagicaVoxelをキャラクタ・エディタとして使うめどはついたかもですな。

2019-06-27 21:22:37
S.F. @SFPGMR

1ボクセル=1ピクセル(1ポイントスプライト)、そして「なんちゃってライティング」での描画はなんとかいけそうな感じですな。。

2019-06-27 21:20:37
S.F. @SFPGMR

ちょっとエッジの処理が?だが大体思い通りの感じになった。 youtube.com/watch?v=VslBks…

2019-06-27 21:18:12
拡大
S.F. @SFPGMR

まああの「なんちゃってライティング」の改良案はようやくまとまり、実装をはじめたところ。さてどうなることやら。。

2019-06-26 20:23:28
S.F. @SFPGMR

うーむ。クォータニオン使えばジンバルロックを回避できるのか。。

2019-06-26 18:11:38
S.F. @SFPGMR

ArrayBufferやDataViewについての理解度はかなり増してきた気がする。しかしもう爺の領域に差し掛かりつつあるので、すぐ忘れてしまうんだよなあ。爺だからと言って新しいことにチャレンジできないわけではないが、脳の可塑性はやっぱり落ちるんでそこはどうしようもないんだよな。。

2019-06-25 20:47:17
S.F. @SFPGMR

しかしこのところシェーダーコードばかりを書いてるからwasmを忘れつつあるなあ。JSとシェーダーで画面周りのインターフェースを作って、それをメモリにマップしてそれ経由でWASMと会話することを目論んでるわけだけどね。

2019-06-25 20:45:01
S.F. @SFPGMR

よくできてるよなあ。MagicaVoxelってマイクラが華やかりしころできたツールっぽいねぇ。。

2019-06-25 20:15:27
残りを読む(263)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?