; Extended mode. A finite vertical mirror reflects the moving marker. Graphics3D 800,600,0,2 SetBuffer BackBuffer() camera=CreateCamera():PositionEntity camera,3,2.7,-7 light=CreateLight():RotateEntity light,35,-25,0 AmbientLight 65,65,65 plane=CreatePivot():PositionEntity plane,0,1.8,3:RotateEntity plane,-90,0,0 PointEntity camera,plane mirror=CreateMesh():surface=CreateSurface(mirror) AddVertex surface,-2,0,-1.5,0,0:AddVertex surface,2,0,-1.5,1,0 AddVertex surface,2,0,1.5,1,1:AddVertex surface,-2,0,1.5,0,1 AddTriangle surface,0,3,1:AddTriangle surface,1,3,2:UpdateNormals mirror PositionEntity mirror,0,1.8,3:RotateEntity mirror,-90,0,0 material=LoadShader("builtin:planar-reflection") ShaderColor material,"FallbackColor",35,65,80 EntityShader mirror,material reflection=CreatePlanarReflection(camera,plane) EntityPlanarReflection mirror,reflection marker=CreateCone(16):ScaleEntity marker,.55,1.2,.55:PositionEntity marker,-1.4,1,-4 EntityColor marker,240,160,35 arm=CreateCylinder(12,True,marker):ScaleEntity arm,.12,.9,.12 RotateEntity arm,0,0,90:PositionEntity arm,.7,.4,0:EntityColor arm,50,170,190 floor=CreatePlane():PositionEntity floor,0,-.3,0:EntityColor floor,40,50,65 active=True:scale#=.5 While Not KeyHit(1) TurnEntity marker,0,.4,0 If KeyHit(57) If reflection FreePlanarReflection reflection:reflection=0 Else reflection=CreatePlanarReflection(camera,plane) EntityPlanarReflection mirror,reflection EndIf EndIf RenderWorld Text 12,12,"Space frees/recreates the reflection handle; Esc exits" Flip Wend FreePlanarReflection reflection FreeShader material ClearWorld End