40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
# 指令介绍
|
||
简易 Raymarch 小玩具
|
||
用法:march `[scene]`
|
||
例:march torus(1.0, 0.2).color(1.0, 0.2, 0.2) torus(1.0, 0.2).rot(90, 0, 0).color(0.2, 0.2, 1.0) camera(4.0).pos(4, 0, 0).lookat(0)
|
||
|
||
# 主要语法
|
||
`[scene]` ::= `[scene]` "." `[op]` |`[obj]`
|
||
|
||
`[obj]` ::= `[obj_ty]` | `[obj_ty]` "(" [args] ")"
|
||
|
||
`[op]` ::= `[op_ty]` | `[op_ty]` "(" `[args]` ")"
|
||
|
||
`[args]` ::= `[args]` "," `[arg]` | `[arg]`
|
||
|
||
其中 `obj_ty`、`op_ty` 分别为物体类型(如 `cube`、`sphere`、`torus` 等)与变换类型(如 `pos`、`rot`)。
|
||
|
||
# 支持的物体
|
||
目前支持的物体有(不包含 alias):
|
||
`cube`:可选参数长宽高
|
||
`sphere`:可选参数半径
|
||
`torus`:可选参数半径与粗细
|
||
`cylinder`:可选参数半径与高度
|
||
`capsule`:可选参数高度与半径
|
||
|
||
特殊物体:
|
||
`mix`:混合两个物体
|
||
`bool`:两个物体相交
|
||
`minus`:两个物体相减
|
||
`camera`:相机,可选参数焦距
|
||
|
||
# 支持的变换
|
||
目前支持的变换有
|
||
`pos`:位移
|
||
`rot`:旋转(欧拉角 xyz)
|
||
`color`:基础色
|
||
`lookat`:朝向
|
||
`rounded`:圆角
|
||
|
||
# 特殊说明
|
||
`[op_ty]` 不包含 scale。非正交的变换会破坏 SDF 的性质。 |