Loading

S.F. Info.

Dai Tamesue (為末大)@daijapan

2019/2/19 6:56:33

失望が多い人は期待している。そのうちに他者に期待をしては勝手に怒って疲弊している人がいる。誰も頼んでいないのに自分はこうあるべきだ、みんなもこうあるべきだと考えていて思い通りにならなくて怒り疲れる。他人は他人なのでコントロールできないだけなのだがそれがわからない。

S.F.@SFPGMR

2019/2/19 5:58:04

まとめを更新しました。「オレオレ言語を作る」

オレオレ言語を作る - Togetter
node.jsでWASMを吐くコンパイラを作っています。まだ完成には至っていません。。リポジトリ

masafumi@masafumi

2019/2/18 23:22:03

C++でSIMDで最適化の話 masafumi.cocolog-nifty.com/masafumis_diar…

S.F.@SFPGMR

2019/2/19 4:41:58

WindowsからLinuxファイルへのアクセスが可能に ~「Windows 10 19H1」におけるWSLの改善 - 窓の杜

WindowsからLinuxファイルへのアクセスが可能に ~「Windows 10 19H1」におけるWSLの改善 - 窓の杜
@madonomoriさんから

Oguchi T/小口 高@ogugeo

2019/2/18 19:08:29

ベゼライト(ベゼリ石)はハンガリーの鉱山技師のベゼリ氏にちなむ銅の二次鉱物で、美しい青色が特徴。日本では秋田県の荒川鉱山や岐阜県の神岡鉱山で見つかり、当初は荒川石や神岡石と呼ばれた。ベゼライトを多く含む球状の石の動画。 imgur.com/gallery/9tSMBtB 外部もかなり青いが内部はさらに青い。 https://t.co/AdIyvlNlh6

ボタQ@bota9

2019/2/17 22:31:03

映画「ファースト・マン」に日本の新聞が出てきた。ウチにも当時の新聞があったはずと探したら、ありました。中日新聞の号外。ボロボロですが、50年前のモノなので、ご勘弁。 https://t.co/YVypANULmW

人工知能・機械学習ニュース [公式]@A_I_News

2019/2/17 12:00:57

100ページ以上の強化学習の資料が公開(日本語)
強化学習について分かりやすくまとめられています。

《対象読者》
・強化学習について知らない
・機械学習に興味がある
・生物学の分野出身でモデル生成の行動に興味がある
・ゲームを AI に解かせたい

@komi_edtr_1230
github.com/komi1230/Resum… https://t.co/pEmDu2nwR5

FM-7好きの姪bot@fm7mei

2019/2/17 17:28:36

お父さんに「プログラムをしたいなー」とアピールしてNew3DSとプチコンをねだったんだけど、伯父さんが「んー、手軽だけどBASICより速いぞ」って言って、FM-7用のKコンパイラをくれたよ。
…お、おう。姪は頑張るぞい(汗 goo.gl/YJmf1C https://t.co/VhZ8zaiIDj

I-zk tom@Izk_tom

2019/2/17 18:08:42

締めはこのゲーム。
よく喋るなぁ。 https://t.co/Jgx4Dv9zHN

S.F.@SFPGMR

2019/2/13 21:03:53

ランタイムのデバッグを可能にするためにglsl-simulatorは作られたんだよな。cpuでglsl動かしたらそれが可能になるもんね。。

2019/2/13 21:13:31

makeって軽くていいなあ。。

2019/2/14 6:19:43

まずはglsl-simulatorをes6モジュール化することから始めることにする。

2019/2/14 12:11:50

と思ってソースに手をつけ始めたけど、これはちょっと方向が違うよなあ。。元の路線に戻るか。。って元の路線ってなんだっけ?

2019/2/14 12:13:59

要するに型変換のコストをなくしたいんだよな。。あとはglsl風の文法とプリプロセッサ、文字列対応すればいいのだよな。。

2019/2/14 12:15:00

ただglsl-simulatorのコードは参考にさせていただこう。。

2019/2/14 18:05:22

pratt parser ベース → peg.js ベースと来たけど、最初のバージョンの路線でいいのではという気もする。が、なんかだんだん夢が広がってきてオーバースペック気味だしそのあたり自分の身の丈に戻さんといかんよなあ。。

2019/2/14 18:08:03

pegブランチを捨てる決断をせんといかん。。というような大袈裟なことではないが。所詮下手の横好きだからね。。

2019/2/14 21:00:39

しかしながらオレオレ言語を作り始めてはや1年が経過しようとしている。wasmの情報もアップデートせねばいかんな。。おそらく今年は何らかの成果物を作ることができると思ってるが、甘いかもしれん。。

2019/2/14 21:07:26

でもちょっとどこまで作ってどうしようとして放置したのか思い出せんな。。今年の1月の頭までは作ってたはずなのだが。。

2019/2/14 21:08:46

こういう時のためにつぶやきをTogetterにまとめといたんだった。。まさに備忘録。。

オレオレ言語を作る - Togetter
node.jsでWASMを吐くコンパイラを作っています。まだ完成には至っていません。。リポジトリ

2019/2/14 21:18:51

そうかあ。

・pratt parserのコードをもとに手書きパーサ&コードジェネレータを作りかけ
・グラマーの文書化の重要性に気づき、peg.jsで文法を書き直し
・glslに立ち返り、仕様書のBNFをPEGに変換しはじめた

でしたな。。

2019/2/14 21:20:03

この辺も読んどくか。

コンパイラ勉強会 まとめ #compiler_study - Togetter
2018/11/10(土) コンパイラ勉強会 @ Fixstars のまとめです。

2019/2/14 21:22:12

これも読まんとな。。

No Image
低レイヤを知りたい人のためのCコンパイラ作成入門

2019/2/14 21:22:12

ベクトル解析の本を図書館で借りたんだけどこれも全然読んでない。というか読む時間がない。。

2019/2/14 21:23:21

binaryen.jsの現バージョンをちらりと見たらなんかSIMDというキーワードを見かけたけどひょっとして実装されたのかな?

2019/2/14 21:27:16

これですかな。

SIMD by tlively · Pull Request #1820 · WebAssembly/binaryen · GitHub
This PR has:

Parsing and printing
Assembling and disassembling
Interpretation
C API
JS API

and their respective tests. It does not have:

Fuzzing

2019/2/14 21:30:42

あかん。wasmのインストラクション半分忘れとる。。

GitHub - AssemblyScript/binaryen.js: A buildbot for binaryen.js, a port of Binaryen to the Web, with TypeScript support.
A buildbot for binaryen.js, a port of Binaryen to the Web, with TypeScript support. - AssemblyScript/binaryen.js

2019/2/15 4:47:57

そうかそしてbinaryen.jsをwasmでビルドすると動かなくなってしまったんだっけ。。確か。対応しないといかんなあ。。

2019/2/15 5:27:25

ビルドしなおすと確かに命令増えとるな。。SIMDですがな。。これでベクトルの演算書いたらいいかんじになるのでは。。 https://t.co/SsTEy1xBLv

2019/2/15 5:52:32

前にbinaryen.jsをwasmでビルドしたときの記録はこれだ。
Promiseチェーンがどこで切れてるかをもうちょっと詳細に書いておけばよかったよ。どこで切れてたのか忘れちゃったよ。。

S.F. Blog:binaryenをwasmでコンパイルしなおす
今作っているオレオレ言語はbinaryen.jsというライブラリでwasmバイナリを出力している。これを使うことによってJS上でwasmオペコードを編集・バイナリ出力・テキスト形式出力などが簡単にできる。https://github.com/AssemblyScript/binaryen.jsbinaryen.jsはbinaryenをemscriptenでコンパイルしたjsファイルである。これを今...

2019/2/15 5:54:36

そこが修正されてるかどうかわからんもんな。。それとemscriptenが吐くJSはES5レベルっぽいのでちと古い。。なんかES6で吐くオプションがありそうな気がするけれど。

2019/2/15 5:57:37

このSIMDインストラクション群たぶん内部でエミュレーションするんだろうなあ。このインストラクションをそのまま受けることができるブラウザは存在するのかな。 https://t.co/RuXa8JMG2C

2019/2/15 5:59:05

ちなみにビルドするときはbuild.jsをこのようにしている。

compileWasm({
post: path.join(projectDirectory,"scripts" ,"binaryen.js-post.js"),
pre: path.join(projectDirectory, "scripts" ,"binaryen.js-pre.js"),
out: "binaryen-wasm.js"
});

2019/2/15 5:59:53

binaryenの中身見たらエミュレーションかどうかすぐわかることだけどな。。

2019/2/15 6:01:35

いずれにしろSIMDでベクトルの演算を吐くようにしとけばブラウザやnode.jsがよしなにしてくれるようになるのだろうし、利用しない手はないな。。なんかうれしいなあ。。

2019/2/15 6:04:39

一応ビルドはできたんだけど、動かしてみるのはこれから。。動くかなあ。。

GitHub - sfpgmr/binaryen.js at support-binaryen-wasm-esm
A buildbot for binaryen.js, a port of Binaryen to the Web, with TypeScript support. - sfpgmr/binaryen.js

2019/2/15 12:31:01

やっぱり動かんな。でも直せそうな気がする。。

2019/2/16 5:54:31

どこでダメになってるのかは分かった。binaryen.jsはparseText()というメソッドがある。

GitHub - AssemblyScript/binaryen.js: A buildbot for binaryen.js, a port of Binaryen to the Web, with TypeScript support.
A buildbot for binaryen.js, a port of Binaryen to the Web, with TypeScript support. - AssemblyScript/binaryen.js


Creates a module from Binaryen's s-expression text format (not official stack-style text format).

2019/2/16 5:56:15

bynaryen独自のs式を渡すとモジュールバイナリを返してくれるというメソッドである。

2019/2/16 6:08:18

でこれを使って、watで書いたヘルパ関数をwasmバイナリ化してJSから呼んでいるのだが、このparseText()メソッドで以下のエラーが発生していた。以前のバージョンではエラーは起こらなかった。

[parse exception: f32.reinterpret/i32]Fatal: error in parsing wasm text

2019/2/16 6:10:03

ちなみにf32.reinterpret/i32というのは、i32のビット配列をそのままに型だけをf32にするというインストラクションである。これ自体は特に問題ないのだが、なぜかここでエラーが発生してしまう。

2019/2/16 6:18:31

ソースはこれである。実際これをwat2wasmに食わせるとエラーなしでwasmバイナリを吐く。だがparseText()に渡すと先ほどのエラーが出るのだ。。

sgl2/generateCode.mjs at binaryen-debug · sfpgmr/sgl2 · GitHub
TDOPパーサをベースとした言語を作っていく. Contribute to sfpgmr/sgl2 development by creating an account on GitHub.

2019/2/16 6:21:03

私が書いたS式は「official stack-style text format」で、「Binaryen's s-expression text format」じゃないからかな?と推測してるところだが、この「Binaryen's s-expression text format」って何?ちゅうのが今今の状況。。

2019/2/16 6:23:57

S式って論理的・あいまいさがなく・無駄もない感じがしてちょっと好きになった。LISPが根強く残るのもよくわかる気がする。

2019/2/16 7:38:23

しかし以下のS式はいけるんだよな。
(module
(export "test" (func $test))
(memory $memory 1)
(export "memory" (memory $memory))
(func $test
(drop(grow_memory (i32.const 3)))
(i32.store
(i32.const 0)
(i32.mul (current_memory) (i32.const 65536))
)
)
)

2019/2/16 7:39:43

reinterpret/i32という記法がいかんのだろうか。。ちょっとbinaryenのソースを覗いてみるとするか。。

2019/2/16 7:51:29

これがS式のパーサのコードっぽいな。。

binaryen/wasm-s-parser.cpp at 1.38.10 · WebAssembly/binaryen · GitHub
Compiler infrastructure and toolchain library for WebAssembly - WebAssembly/binaryen

2019/2/16 8:11:44

ここがreinterpretインストラクションを判別してるコードなんだけどなかなか効率的ですわ。。

binaryen/wasm-s-parser.cpp at 1.38.10 · WebAssembly/binaryen · GitHub
Compiler infrastructure and toolchain library for WebAssembly - WebAssembly/binaryen

2019/2/16 8:11:45

reiまで見ればreinterpretだと判別できるからな。。ただこのコード見ると、型を見てソースの型を判断してるようだから、reinterpret/i32の「/i32」はあってもなくてもいいような気もしないでもない。

2019/2/16 8:11:45

ちょっと気になるのはreinterpret/i32と書いたときにトークナイザーがどういう処理をしてるかなんだな。

2019/2/16 8:16:07

このエラーを見る限りはきちんと解釈しているようには見えるのだが。もし「/」を区切り文字として解釈してるのであれば違うエラーがでそうな気もする。。
[parse exception: f32.reinterpret/i32]Fatal: error in parsing wasm text

2019/2/16 8:17:24

もうちょっとコードを読まないといかんなあ。。

2019/2/16 8:21:44

ここを読んでる。

SExpressionParser::parse()

binaryen/wasm-s-parser.cpp at 1.38.10 · WebAssembly/binaryen · GitHub
Compiler infrastructure and toolchain library for WebAssembly - WebAssembly/binaryen

2019/2/16 10:31:23

わかった。。
記法が変わったんだ。。

f32.reinterpret/i32

f32.reinterpret_i32

binaryen/gen-s-parser.inc at master · WebAssembly/binaryen · GitHub
Compiler infrastructure and toolchain library for WebAssembly - WebAssembly/binaryen

2019/2/16 10:39:34

いろいろ変わっとる。。

get_local → local.get
i64.extend_u_i32 → i64.extend_i32_u

これはwatと互換性なさそうな感じだけどこのインストラクションでwat2wasmやるとどうなるのかな。。

2019/2/16 10:44:06

やってみたらエラーでたわ。。
wat2wasm ./sgl2lib2.wat
./sgl2lib2.wat:10:6: error: unexpected token "f32.reinterpret_i32", expected an instr.
(f32.reinterpret_i32
^^^^^^^^^^^^^^^^^^^
./sgl2lib2.wat:12:12: error: unexpected token local.get.
(local.get $i)
^^^^^^^^^
.
.

2019/2/16 10:44:06

ちゅうことはこの一文は正しいなあ。。

parseText(text: string):

Module Creates a module from Binaryen's s-expression text format (not official stack-style text format).

binaryen.js API · WebAssembly/binaryen Wiki · GitHub
Compiler infrastructure and toolchain library for WebAssembly - WebAssembly/binaryen

2019/2/16 10:53:23

masterブランチのコードは修正した。binaryen's s-expression text formatにね。。

sgl2/generateCode.mjs at master · sfpgmr/sgl2 · GitHub
TDOPパーサをベースとした言語を作っていく. Contribute to sfpgmr/sgl2 development by creating an account on GitHub.

2019/2/16 10:54:45

コンパイラのエラーも消えたわ。。

No Image
オレオレ言語を作る
オレオレ言語を作る
https://t.co/yr0KIbHB4e

2019/2/16 12:49:10

インストラクションから特殊文字を消すという提案があったのですな。。

Text format revisions · Issue #884 · WebAssembly/spec · GitHub
At the Oct. 2 CG meeting, there was unanimous consent to consider making changes to the text format to improve the consistency of instruction names and remove special characters. Specifically, interest has been expressed in removing slas...

2019/2/16 12:56:10

変わっとる。。「/」が消えたのですな。。

No Image
Instructions — WebAssembly 1.0

2019/2/16 15:58:38

wabtもビルドしなおすか。。

GitHub - WebAssembly/wabt: The WebAssembly Binary Toolkit
The WebAssembly Binary Toolkit. Contribute to WebAssembly/wabt development by creating an account on GitHub.

2019/2/16 16:00:40

まあいずれにしろ、動かなかった原因はテキスト・フォーマットが変わったということでいいかな。。

2019/2/16 16:05:33

wabtをアップデートしたら新しいインストラクションでも大丈夫だったわ。とりあえずよかった。

2019/2/16 16:09:20

しかしSIMDのサポートが入ったのはちょっと大きいよな。。

2019/2/17 7:04:40

ようやくというか、考え迷っていたオレオレ言語の方向性が昨日固まったので、それに従って進めていこうかなと。キーワードは「CPUとGPUコードのシームレスな統合」なんだけど。きれいに言うと。ただそれを実現することは私にとっては容易いことではない。

2019/2/17 7:05:48

ちょっとスッキリした。。

S.F.@SFPGMR

2019/2/15 12:32:01

wasm SIMDって今開発中のステータスなのね。。

No Image
WebAssembly SIMD - Chrome Platform Status
WebAssembly SIMD will expose hardware SIMD instructions to WebAssembly applications in a platform-independent way. Implementations will explore using SIMD.js as a basis for WebAssembly SIMD. Add three SIMD vector types: float32x4, float64x2, and int32x4, and corresponding Typed Array views.

SIMD can speed up applications that process lots of data that is naturally organized as 2, 3, or 4 element vectors. SIMD is also useful when compiling native code to WebAssembly.

S.F.@SFPGMR

2019/2/14 21:31:29

とりあえず眠いので寝ることにしよう。おやすみなさい。。

S.F.@SFPGMR

2019/2/14 21:26:47

こ、これは。。

Alon Zakaiさんのツイート: "Binaryen now has experimental wasm SIMD support, thanks to tlively https://t.co/wQwux5liE6 probably the largest PR we've ever had!"

S.F.@SFPGMR

2019/2/11 19:02:19

まとめを更新しました。相当紆余曲折してますな。。「オレオレ言語を作る」

オレオレ言語を作る - Togetter
node.jsでWASMを吐くコンパイラを作っています。まだ完成には至っていません。。リポジトリ

2019/2/11 19:03:21

そろそろGLSL/C++の仕様書読みを再開しようか。。

2019/2/11 19:09:53

仕様書読みでなくて「オレオレ言語」作りだった。。

2019/2/12 7:43:15

気がつくとC++ のドラフトも N4800に上がってるな。。日々進化し続けるC++。

draft/n4800.pdf at master · cplusplus/draft · GitHub
C++ standards drafts. Contribute to cplusplus/draft development by creating an account on GitHub.

2019/2/12 7:48:27

オレオレ言語もまずは可能な限りglsl es 3.0に忠実に実装を進めようかなと。できる限りだけどね。文字列関係はC++の仕様を借りようかなあと思ったりしてる。

2019/2/12 20:56:24

でももうこういうのあるんだよねえ。これをベースにしてwasm化するのがいいかもね。。

No Image
glsl-simulator
glsl-simulator : A simulator for OpenGL ES 1.0 Shader Language written in JavaScript.

2019/2/12 20:57:21

これのデモページもかなりいい感じ。。

No Image
glsl-simulator: debugger

2019/2/12 21:01:24

このglsl-simulatorはglslのデバッグ目的なんだよね。確かに変数トレースやブレークやステップ実行とかできんもんな。ふつう。CPUでそれをシミュレーションすればできるわな。。

2019/2/12 21:02:37

まあでもプリプロセッサを自作したいちゅう欲望が渦巻いてるので、まずはそこから再開しようかなと。今年中にできるだろうか。。

2019/2/13 5:00:08

去年はコンパイラをどうやれば作れるのかが多少理解できたレベルで終わった。今年はまともなやつを作りたいよねぇ。。でもソースをコンパイルして実行できた時のうれしさは去年第一位ですよ。。

2019/2/13 5:00:08

しかしまずは勉強のため、glsl-simulatorの中身を見てみようか。残念ながらレポジトリは4年前で更新が止まっている。

GitHub - burg/glsl-simulator: A simulator for OpenGL ES 1.0 Shader Language written in JavaScript.
A simulator for OpenGL ES 1.0 Shader Language written in JavaScript. - burg/glsl-simulator

2019/2/13 5:00:08

とりあえずglsl-simulatorをforkした。
中身見るとES6化したくなったり、binaryen使ったりしたくなるだろうだけど、それは成り行きで。。趣味ですから。。

GitHub - sfpgmr/glsl-simulator: A simulator for OpenGL ES 1.0 Shader Language written in JavaScript.
A simulator for OpenGL ES 1.0 Shader Language written in JavaScript. - sfpgmr/glsl-simulator

2019/2/13 5:00:08

binaryen.jsはforkしてwasm化した。ASTのレベルでこれを使ってwasmを吐けばいいかなあと。

S.F. Blog:binaryenをwasmでコンパイルしなおす
今作っているオレオレ言語はbinaryen.jsというライブラリでwasmバイナリを出力している。これを使うことによってJS上でwasmオペコードを編集・バイナリ出力・テキスト形式出力などが簡単にできる。https://github.com/AssemblyScript/binaryen.jsbinaryen.jsはbinaryenをemscriptenでコンパイルしたjsファイルである。これを今...

2019/2/13 5:00:09

あとはちょっと考えてるのはAssemblyScriptを使ってコンパイラを書き直すというパターン。

GitHub - AssemblyScript/assemblyscript: Definitely not a TypeScript to WebAssembly compiler 🚀
Definitely not a TypeScript to WebAssembly compiler 🚀 - AssemblyScript/assemblyscript

2019/2/13 5:00:09

AssemblyScriptって筋のいいプロジェクトだと思ってるんだよね。私。。

2019/2/13 5:14:58

binaryen.jsというのは、binaryenをemsciptenでjs化したもの。

GitHub - WebAssembly/binaryen: Compiler infrastructure and toolchain library for WebAssembly
Compiler infrastructure and toolchain library for WebAssembly - WebAssembly/binaryen

2019/2/13 5:14:58

これをインフラにしてtypescript風のsyntaxを載せたのがAssemblyScriptである。

2019/2/13 5:19:08

これ使って書き直せば、コンパイラ自身もwasm化できるんだよな。でまあ最終的にはセルフ・コンパイルしてAssemblyScriptから卒業するというパターンとかどうかなあとか。

2019/2/13 6:09:56

とりあえずレポジトリをforkしてビルド環境を整えている途中。AssemblyScriptで書き直せるか試してみよう。ん。ちょっとまてよ。。

GitHub - sfpgmr/glsl-simulator: A simulator for OpenGL ES 1.0 Shader Language written in JavaScript.
A simulator for OpenGL ES 1.0 Shader Language written in JavaScript. - sfpgmr/glsl-simulator

2019/2/13 6:09:57

pegjsを使うということはpegjsが吐くコードをAssemblyScript化しないといかんよな。うわぁ。。ちゅうことはpegjsも改造が必要。。ちょっと無理かもな。。

2019/2/13 6:20:21

パーサー部分を手書きすれば回避できるんだけど、どうしようかなあ。。pegjs自体をAssemblyScriptで書き直すという考えもあるけど、そうなるとそれ自体の依存モジュールをAssemblyScript化しないといけなくなるよなあ。。この筋はちょっとあきらめるか。。

2019/2/13 6:20:22

結局ファイルI/Oとか考えるとJSを使わないといけないように思うから、JSをまとめ役として考えて、モジュールレベルでAssmeblyScriptの使用を検討するのがいいよなあ。。使うのなら。

2019/2/13 7:23:20

binaryen.jsで直接wasmを吐く形で当面は進めるかな。。

スナップドラゴン1.3GHz@ドラガリ@Snapdragon_XZ

2019/2/11 14:15:09

パソコンの改造に欠かせない知識
パソコンの分解中にネジ山が潰れてしまった時の緊急的な対処方法。
#パソコン改造 #パソコン分解 https://t.co/R8shDHr8mO

Adam Samson@adamshmamshon

2019/2/11 20:40:49

Wave 3.1 - Made a rotating version to show just how bonkers the shader turned out to be #madewithunity #unity3d #HDRP https://t.co/8WHPjfszxM

S.F.@SFPGMR

2019/2/12 20:52:11

40年近く前だと静止画でもレイトレでレンダリングするのに数日かかってたんですよね。。隔世の感がありますな。。

はのばさんのツイート: "レイトレ動いた〜! #UE4… "

Kumagai, M@kumarobo

2019/2/4 8:45:18

おっかねー(笑
というか、宇宙開発ってコンサバ技術で積み上げる物だとおもっていたのだけど、ここに見えるだけでもアグレッシブ。
> apollo11号のソースコードを読みつつ - aerith7’s blog aerith7.hatenablog.com/entry/2016/12/…

S.F.@SFPGMR

2019/2/12 5:57:43

昔作ったShadertoyで作ったシェーダーで2Dラインを引くコード。なんとも地味なGPUの使い方。。

Shader - Shadertoy BETA

2019/2/12 5:57:43

それを作った時の記録がこれ。「対象ピクセルが線分上にある場合はそこに色を付ける」っていう考えで作ったんだよな。

S.F. Blog:フラグメント・シェーダー(Shadertoy)で2D Line(線分)を描く
フラグメント・シェーダー(Shadertoy)で線分を書いてみようと思った。Shadertoyのフラグメント・シェーダーは描画するピクセルごとにmainImage(out vec4 fragColor, in vec2 fragCoord)が呼ばれる。画面のピクセル個数分このmainImage()が呼ばれるのである。この関数で描画色を決め、fragColorに色をセットする。fragCoordは描...

2019/2/12 5:57:43

でもっと簡単に線を引いている人がいて、衝撃を受けたという。。

下のポストのコメントに書いてあったんだけど。。

Shader - Shadertoy BETA

2019/2/12 5:57:43

引用するとこれなんですが。

float line( in vec2 p, in vec2 a, in vec2 b )
{
vec2 pa = p - a;
vec2 ba = b - a;
float h = clamp( dot(pa,ba)/dot(ba,ba), 0.0, 1.0 );
float d = length( pa - ba*h );
return clamp(((1.0 - d)-0.99)*100.0, 0.0, 1.0);
}

2019/2/12 5:57:44

まあこのコメントの人はiqさんだったのですが。。かの有名な「elevated」という4k intro デモを作った人だったという。。

Youtube - elevated by Rgba & TBC | 4k intro (FullHD 1080p demoscene demo)

2019/2/12 5:59:34

これのwebgl版がこれ。今にすれば「ふつう」なのかもしれないが、当時は衝撃を受けたんだなあ。こういうのに。。

Shader - Shadertoy BETA

2019/2/12 6:01:31

これとかもすごいよねえ。。

Shader - Shadertoy BETA
https://t.co/eCTlmy6HWd

2019/2/12 6:04:48

シェーダーだけで作ったパックマンとかもうどうやってんだ。。

Shader - Shadertoy BETA

2019/2/12 6:07:30

3DCGは数学や物理の知識が役に立つというか、知識があればあるほど生産性向上に繋がる分野だと思うなあ。。

S.F.@SFPGMR

2019/2/12 5:29:52

No Image
GLSL Sandbox Gallery

全手動ドラム式でこぽん@saku2kosaku

2019/2/11 13:51:48

メンがヘラって何もやる気が起きないから、photoshopで金星をたこ焼きにしてる。結構いい感じにできたので才能を感じている。 https://t.co/PgoaMtWCZU

S.F.@SFPGMR

2019/2/11 21:09:25

TLにモジュラー接続の画面が出てきてた。私も昔WebAudioのNodeをモジュラー接続して鳴らすやつ途中まで作ってたのを思い出したな。。

No Image
https://t.co/gmQjDZWuoK

2019/2/11 21:11:38

結構頑張ってたみたいだな。。

S.F. Blog:キーワード「webaudiomodular」 のアーカイブ
キーワード「webaudiomodular」 のアーカイブ


シーケンサーのエディタを作ってる途中で放置したか。。 https://t.co/37h8K7fNwi

2019/2/11 21:12:15

放置してもう3年以上になるのか。。

2019/2/11 21:13:44

WebAudio自体中身変わってるだろうから、実際に音が鳴るかというと怪しい。。が、触ってみたところUIはちゃんと動いたな。。

2019/2/11 21:15:49

ほう。。EGのエディタとかも一応作ってたのか。すっかり忘れとるわ。。 https://t.co/7xPzSwcyDv

2019/2/11 21:17:48

一応使い方はここに書いてあるな。。

S.F. Blog:Web Audio APIのモジュラー接続デモを作ってみる(17) - localStorageを使ってデータ保存・読み込みを作る
コードを改良するたびにテスト用のモジュラー接続を作ったりデータ入力をするのが面倒なのでlocalStorageに保存するようにしてみた。Bugはあるがとりあえず保存・読み込みができるようになった。データ形式はJSONである。例によってChromeのみで動作する。http://sfpgmr.github.io/webaudiomoduler/dist/20151206/使い方だが、マウス操作は以下の...

Masatatsu Nakamura@mattatz

2019/2/11 19:06:32

インプットから複数アウトプットへのデータフロー、コネクションのオーバーライト、Ctrl+Dragで描けるPolylineでコネクションを切るUIを実装した💯 #javascript #svg https://t.co/5dagS38jKK

寺町電人@DentoTeramachi

2019/2/10 1:12:19

おまけ。<VECTOR PILOT(ベクターパイロット)>。ゲーム本体の完成度はもちろん、ほぼ”まんま”のサウンドがたまりません! 5面をクリアすると何かが起こる・・・! #ocyame https://t.co/aEVJcKEBKE

イスラエルエリカちゃん@syuu1228

2019/2/11 8:57:57

カーネル構造にかなり手を加えた「新しいWindows 10」が噂されている、みたいな話なんだけども、そこまで手を入れたものも10って呼ぶの… twitter.com/syuu1228/statu…