#include "octane-oslintrin.h" vector zx(vector v) { return vector(v[2], v[0], 0); } float displace(float d1,vector p, vector noise) { float d2 = noise[0]; return d1 + d2; } float sphereSDF(vector p, float r) { return length(p) -r; } float boxSDF(vector p, float size) { return length(max(abs(p)- vector(size),0.0)); } float repeat_sphere(vector p, vector c) { vector q = mod(p,c) - 0.5*c; return boxSDF(q, 7.0); } float smin(float a, float b, float k) { float res = exp(-k*a) + exp(-k*b); return -log(res)/k; } /* float sceneSDF(vector p, vector noise) { float terrain = displace(planeSDF(p), p, noise); return terrain; }*/ shader Displace( _sdf input1 = _SDFDEF, color noiseTex = color(1,1,1), float noiseScale = 0.1, float quality = 0.9, output _sdf c = _SDFDEF) { c.dist = (1-quality) * displace(input1.dist, P, -1*noiseTex * noiseScale); }