
F(x,y,z) = sqrt(x*x + y*y + 9z*z) - 1
float X, Y, Zconst float t_0const = 1.0float t_1MUL = X*Xfloat t_2MUL = Y*Yfloat t_3MUL = Z*Zfloat t_4MUL = 9*t_3MULfloat t_5ADD = t_1MUL + t_2MULfloat t_6ADD = t_5ADD + t_4MULfloat t_7SQRT = sqrt(t_6ADD)float t_8SUB = t_7SQRT - t_0constreturn t_8SUB
每行代码是一个简单的赋值语句,右侧包含一个数学运算。其覆盖的运算包括:
1. 算术运算(加、减、乘、除)
2. 三角函数、指数函数和双曲函数
3. 其他常见功能如sqrt、abs、min、max、mod
4. 比较(等于、大于、小于等)和条件句(三元)
5. 引用几何,将其解释为SDF
6. 调用外部函数,如噪声函数
7. 调用特定应用函数,如采样数据的平滑或径向基函数
公众号作者:梁裕卿 (广联达技术中心) GSolid - Geometry Kernel from Glodon