UNPKG

@thi.ng/shader-ast-stdlib

Version:

Function collection for modular GPGPU / shader programming with @thi.ng/shader-ast

13 lines (12 loc) 487 B
import { F, V3 } from "@thi.ng/shader-ast/api/types"; import { defn, ret } from "@thi.ng/shader-ast/ast/function"; import { vec2 } from "@thi.ng/shader-ast/ast/lit"; import { sub } from "@thi.ng/shader-ast/ast/ops"; import { $, $y } from "@thi.ng/shader-ast/ast/swizzle"; import { length } from "@thi.ng/shader-ast/builtin/math"; const sdfTorus = defn(F, "sdTorus", [V3, F, F], (p, r1, r2) => [ ret(sub(length(vec2(sub(length($(p, "xz")), r2), $y(p))), r1)) ]); export { sdfTorus };