Hi everyone, just wondering if anyone knows of a way to render part of a mesh? The reason being I need an entity to appear through a semi-transparent surface without being visible behind the surface, ala stargate etc.
Thanks.
Thanks.
Graphics3D 800,600,0,2 SetBuffer BackBuffer() cam=CreateCamera() : CameraClsColor cam,150,150,230 : CameraRange cam,.1,100 gateSurface=CreateSprite() SpriteViewMode gateSurface,2 EntityAlpha gateSurface,.25 ScaleSprite gateSurface,2,2 Oval 0,0,64,64 If FileType("gateSurfaceImage.bmp")=0 gateSurfaceImage=CreateImage(64,64) CopyRect 0,0,64,64,0,0,BackBuffer(),ImageBuffer(gateSurfaceImage) SaveBuffer (ImageBuffer(gateSurfaceImage),"gateSurfaceImage.bmp") FreeImage gateSurfaceImage EndIf If FileType("gateSurfaceImage.bmp")=2 RuntimeError "Expected file but found directory :/" Else gateSurfaceTex=LoadTexture("gateSurfaceImage.bmp",4) SetBuffer TextureBuffer(gateSurfaceTex) EntityTexture gateSurface,gateSurfaceTex EndIf groundPlane=CreatePlane() PositionEntity groundPlane,0,-4,0 SetBuffer BackBuffer() Color 200,200,100 Rect 0,0,64,64,True Color 100,100,50 For i=0 To 255 Plot Rand(0,63),Rand(0,63) Next groundPlaneTex=CreateTexture(64,64) ScaleTexture groundPlaneTex,2,2 CopyRect 0,0,64,64,0,0,BackBuffer(),TextureBuffer(groundPlaneTex) EntityTexture groundPlane,groundPlaneTex farClipPlane=CreatePlane() EntityFX farClipPlane,1 EntityColor farClipPlane,0,0,0 RotateEntity farClipPlane,-90,0,0 traveller=CreateCube() ScaleEntity traveller,1,1,10 Color 255,255,255 Rect 0,0,64,64 Color 0,0,0 Line 0,0,63,0 Line 0,0,0,63 travellerTex=CreateTexture(64,64) CopyRect 0,0,64,64,0,0,BackBuffer(),TextureBuffer(travellerTex) EntityTexture traveller,travellerTex ScaleTexture travellerTex,.01,.2 PositionEntity traveller,0,0,20 clippedBuffer=CreateImage(800,600) While Not KeyHit(1) camX=camX+1 PositionEntity cam,Cos(camX)*4,1.5,-10 PointEntity cam,gateSurface MoveEntity traveller,0,0,-.1 If EntityZ(traveller)<-20 Then PositionEntity traveller,0,0,20 ;RENDERING ;1: create clipped object pic ;(a) Hide all but clip-plane and object to be clipped HideEntity groundPlane HideEntity gateSurface ShowEntity traveller ShowEntity farClipPlane ;(b) Render and copy RenderWorld CopyRect 0,0,800,600,0,0,BackBuffer(),ImageBuffer(clippedBuffer) ;2: Create final scene ready for compositing ; Show all regular scene items and hide clip-plane and object to be clipped ShowEntity groundPlane ShowEntity gateSurface HideEntity traveller HideEntity farClipPlane RenderWorld ;3: Composite final image and show it DrawImage clippedBuffer,0,0 Flip Wend