テラByteの時代にキロByte

shader又はdemosceneに関係する事

2018-01-01から1年間の記事一覧

SSBOでMeshを作る

ここ何年かvertex shaderでmeshを作っては、挫折しての繰り返し。compute shaderならイケるかなと閃いた。 これから試して行きます。 球のmeshをcompute shaderで作った奴。説明は、もう少し理解したら追記しておきます。とりあえず動いているソースを載せて…

fragmentでノイズのtextureを使わずにSSBOやってみる

3D_textureノイズを作るのをSSBOやってみる事にした。作り始めて気が付いたが、1次元の大量の配列のノイズは、簡単に2次元、3次元、4次元に加工できる。 その時の用途によりけりfragment shaderで加工してもいいかな? リアルタイムでノイズを生成するよりte…

SSBO経由でfragment shader

SSBOをバックバッファとして使いcompute shaderでグラフィックを作り、fragment shaderに渡して描写。 fragment shaderでSSBOからグラフィックを引っ張るのに必要なIDなのだが、 int(gl_FragCoord.x+(gl_FragCoord.y+0.5)*resolution.x) と、謎の0.5が登場す…

SSBOのデータを抜き取る (compute shader)

音楽を作る為にSSBOのデータを抜き取ってみます。 samples = (c_float * SND_NUMSAMPLESC)() glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, 0, sizeof(samples), byref(samples)) この部分です。今回は音楽ですので簡単ですが、numpyとかで抜き取ってデータ…

SSBOの使い方 (compute shader)

やっとSSBOの上手い使い方を見つけた。 今回の例で書いてみる。 vertex shader とCompute Shaderに struct Particle{ vec4 pos; }; layout(std430, binding=7) buffer particles{ Particle par[]; }; これを書く。 compute shaderでは uint id = gl_GlobalIn…

Compute Shaderを書いてみた

pythonを使って、conpute shaderを書いてみた。 compute shaderでtextureを作り、fragment shaderでtextureとして貼り付けてます。とりあえず、変数をどう取り扱うかのテストを兼ねてます。 from OpenGL.GL import * from OpenGL.WGL import * from ctypes i…

mp4 fileを作る

qiita.com

wav fileを作る

qiita.com

gif fileを作る

<工事中>

webGLで同等の事をする。

前回のpythonソースをwebGLに書き直すと、openGL部分は、ほぼ一緒ですが、音楽部分が別物です。 <script id="vs" type="x-shader/x-vertex"> #version 300 es void main() { gl_Position = vec4(ivec2(gl_VertexID&1,gl_VertexID>>1)*2-1,0,1); } </script> <script id="fs" type="x-shader/x-vertex"> #version 300 es precision highp float; uniform ve…

demoのc言語のソースをpythonに移植。

c言語のソースをpythonに移植しました。だいたい似た感じでつくっているので、この2つを見ていけば、python<->c言語は出来るようになると思います。関数の引数とか手順に関して言えば、全く同じです。pythonの場合は、フラグの定数とか、構造体を別途、書か…

C言語でdemoを作る。

demoを作るには、c言語は、避けて通れません。なのでc言語の話から。 c言語を使って作るのですが、c言語のスキルなんて、ほぼいらないです。なんとかなります。 以前iq氏のページを見たのですが、デバック用とリリース用のc言語のソースが載ってました。 考…

差し当たりの方向性

この前、ちょっとしたアイディアを思いついた。 compute shaderの使い道で、モデリングを思いついた。ポリゴンを計算してモデルを作る。8K introなら、いけると思うよ。たぶん・・・。ついでにスキニングだ。— gaz (@gaziya5) December 21, 2018 で、これを…

ブログ始めます。

とりあえず、ブログを始めてみます。 webGLでcompute shaderが使えるようになりました。まだベータ版ですが、新しい可能性が出てきました。しばらくは、これの試行錯誤のことを書いていく予定です。 基本、ボビープログラマーなので、世の中の流れとか関係な…