2019-05-12から1日間の記事一覧
今回の奴は最近みつけたスキルです。 ネーミング的にはゴーストなんて呼ぶのが良いかななんて思ってます。 使用例として www.shadertoy.com vec3 col=vec3(0); for(i=1.0;i>0.0;i-=1./30.0) { t+=d=map(p)*(0.2*sin(iTime)+0.6); if(d<0.001) { if(uv.y>0.0)…
raymarchingでmod()を使わないで大量モデル描写する。TDFのデモで使った手法だけど、誰もとってくれないので、自分で解説する事にしました。 一個一個をバウンディングして範囲に入っていたら、z値を比較し、手前なら描写という手法。GPUによるがGeForce GTX…
オブジェクトをある点に向かすには、mat3()を使います。lookat行列と同じ作り方をします。 違うのは、かける順番。 本当は逆行列を使うのでしょうけど、GLSLの場合は、かける順番を後にすると逆行列扱いになるようです。 // point at vec3 w=normalize(ta-q)…
Inigo Quilez :: fractals, computer graphics, mathematics, shaders, demoscene and more ここにある sdCapsule の距離関数 float sdCapsule( vec3 p, vec3 a, vec3 b, float r ) { vec3 pa = p - a, ba = b - a; float h = clamp( dot(pa,ba)/dot(ba,ba),…
立面と側面の距離関数を使って3次元の距離関数作る方法。 2次元の距離関数取得 -> 2次元の距離関数取得 で3次元の距離関数になる。 2次元の距離関数を用意します。 float lengthN(vec2 v, float n) { vec2 tmp = pow(abs(v), vec2(n)); return pow(tmp.x…
raycastをraymarchigに同居させて文字を描くことをやってみます。 細かい説明は、そのうちに追記します。何故なら、すっかりアルゴリズムを忘れてました。 raycastはエフェクトに使える可能性があるので、又、取り上げてみます。 shaderの中に文字が出るのは…