SHOWCASE · 原生 ESM
镜头剖视与光圈Cutaway camera lens
黑镜筒剖开一半,里面是三组镜片、七片光阑和一道穿过镜组的光束。光圈会呼吸开合。
旗舰完整演示
可交互场景(拖拽旋转;部分演示支持键盘)。下方提示词用于让 Agent 生成同级成品。
预期产出 · Returns
单页:默认切开镜筒;按 C 在剖视与完整镜筒之间切换;光圈持续开合;玻璃有透射。
适合用在哪
需要提示词里写清剖视、材质分层和持续运动,让生成结果像一件光学仪器而不是几个圆柱。
容易踩的坑
- 忘了 renderer.localClippingEnabled,裁剪平面不会生效。
- 只裁外壳、不裁镜片,剖视会穿帮。
- 玻璃开了 transmission 但没有 scene.environment,镜片会发灰。
提示词 · Prompt
用单个 HTML + Three.js 做一支横放的专业变焦镜头剖视,全部程序化,不要照片贴图。
外形:镜筒是近黑金属,前后各有一圈滚花环,中间一圈细红线。镜筒用 CylinderGeometry,侧壁开放或足够薄,方便看到内部。
内部:沿光轴放三片压扁的玻璃球,MeshPhysicalMaterial,transmission 为 1,roughness 接近 0,颜色略偏冷。中间是 7 片光阑,绕轴均匀分布,用一个 0 到 1 的开合量让叶片转开、合拢,并让这个量随时间缓慢呼吸,不要停在一个角度。
剖视:renderer.localClippingEnabled = true。用一个过光轴的裁剪平面切掉靠近相机的一半镜筒和内部零件。按 C 切换「剖视 / 完整」,切换时同一批材质的 clippingPlanes 一起换,不要只藏外壳。
光束:一条半透明锥体穿过镜组,表示成像光线,depthWrite 关闭,不要挡住玻璃。
光线与相机:影棚环境贴图 + ACES,镜头横躺在画面中央,轨道相机可绕着它转,默认角度要能看见切口。左下角说明当前是剖视还是完整。
注释用中文。不要做相机机身,不要做对焦环上的数字。
Single HTML procedural camera lens on its side. Black metal barrel, knurled rings, one red stripe, three transmissive glass elements, seven aperture blades that breathe open and closed, a faint light cone through the stack. A clipping plane cuts the near half; key C toggles cutaway vs complete on every clipped material. Studio env map, ACES, orbit camera aimed at the cut. No camera body, no numeral textures. Chinese comments.