aqsis renderman で voroni 関数を使用しています。次のポリゴンでこの関数を使用すると、スター フィールドのようなスポットが生成されます。
Polygon "P" [ -70 -70 -1 70 -70 -1 70 70 -1 -70 70 -1]
しかし、このポリゴンは一連の線を生成するだけです:
Polygon "P" [ -700 0 480 700 0 480 700 0 -170 -700 0 -170 ]
ボロニ関数は次のとおりです。
void voronoi_f1_3d (float jitter; float frequency; output float f1)
{
point p=point(s*frequency,t*frequency,0);
point thiscell = point (floor(s*frequency)+0.5,floor(t*frequency)+0.5,0);
f1 = 1000;
uniform float i, j;
for (i = -1; i <= 1; i += 1) {
for (j = -1; j <= 1; j += 1) {
point testcell = thiscell + vector(i,j,0);
point pos = testcell+jitter*(vector cellnoise (testcell) - 0.5);
vector offset = pos - p;
float dist = offset . offset;
if (dist < f1) {
f1 = dist; //pos1 = pos;
}
}
}
f1 = sqrt(f1);
}
そして、これが私がそれを使用する方法です:
voronoi_f1_3d(jidder,gfrq,pointy);
T = Cs*(1-smoothstep(0.1,1,pointy))*Nf;
Ci = T;
違いはポリゴンの向きにあると思いますが、補正方法がわかりません。