【Unityちゃん】らくらくシェーダコーディング! mrubyで実装するGLSLジェネレータ #RubyKaigi #RubyKaigiB

Play with GLSL on OpenFrameworks @elct9620 http://rubykaigi.org/2016/presentations/elct9620.html "Learning GLSL (OpenGL Shader Language) is a little harder to me, but if I can create shader like Unreal Engine 4's material design tool? Let's play with Shader on OpenFrameworks. I using mruby and OpenFrameworks to create a scriptable GLSL generator to create shader. By the power of Ruby DSL, the shader generate becomes very fun and simplely."
1
蒼時弦也 @aotoki@ruby.social @elct9620

A programming skill missionary, seeker. My favorite language is Ruby. #vim #ruby #mruby #typescript #golang

https://t.co/0CnO6VsURl


Tsuyoshi MAEHANA @sandinist

.@elct9620 さんの 講演 rubykaigi.org/2016/presentat… 台湾の方。OpenFrameworksとGLSLについての説明とmrubyでのShader Generator, Using mruby in C++ #rubykaigi #rubykaigiB

2016-09-08 14:25:07
Tsuyoshi MAEHANA @sandinist

3Dオブジェクトを回して、照明によって見え方が変わるデモ。Unityちゃんも出てきた! #rubykaigi #rubykaigiB

2016-09-08 14:28:00
ぎのしん @ginoshinkuu

#rubykaigi #rubykaigiB シェーディングってグラフィック系のだったのか pic.twitter.com/sWzngcIHn3

2016-09-08 14:28:44
拡大
拡大
khirayama @kotaro_hirayama

まさかrubykaigiにきてOFを触りたくなる事案に出会うとは思わなんだ... #rubykaigi #rubykaigiB

2016-09-08 14:29:49
Tsuyoshi MAEHANA @sandinist

OpenFrameworks demo. メディアアートの例。次に Shader について、Vertex Shder と Flagment Shder。座標や色を指定できる。GLSLはOpenGLが提供しているCライクな言語 #rubykaigi #rubykaigiB

2016-09-08 14:33:11
Tsuyoshi MAEHANA @sandinist

DSLでRubyからGLSLを生成する。その方法と限界を示す。 lightIntensity(is(Vec4(vec4(1,1,1,1)))) というDSLをどのように定義しているかの解説 #rubykaigi #rubykaigiB

2016-09-08 14:39:42
Tsuyoshi MAEHANA @sandinist

次は lightIntensity(is(clamp(lightIntensity.x, 0, 1))) lightIntensity.x などの Method Missing なものはそのまま文字列へ #rubykaigi #rubykaigiB

2016-09-08 14:44:25
Tsuyoshi MAEHANA @sandinist

Limitation なぜ = を使わないのか? [at]variable で代入するとcaptureされる variable に代入ではcaptureされない。 Assign Method Call では結果が変わってしまう #rubykaigi #rubykaigiB

2016-09-08 14:46:44
Tsuyoshi MAEHANA @sandinist

Arithmetic Problem もある。計算順序が変わってしまうこともあった、という話かな? #rubykaigi #rubykaigiB

2016-09-08 14:49:14
ripM8QhdYbs6Whn @ripM8QhdYbs6Whn

これmrubyだからリアルタイムでシェーダー変わるんか...? #rubykaigiB

2016-09-08 14:54:06
Tsuyoshi MAEHANA @sandinist

どのように mrubyのクラスを C++ で定義するかの説明。次にデータ保存、structを使ってメモリ確保と開放。コードは github.com/elct9620/MRuby…github.com/elct9620/mruby… #rubykaigi #rubykaigiB

2016-09-08 14:55:00
じゅりあん @MITLicense

Rubyで3DCGコード書いてるのすごいわらう #rubykaigiB

2016-09-08 14:57:29