Hi,
I am almost complete in writing my 3D text system based on a single surface.
Image to download is here:
Download...
or right click on this image and save as "letters2.bmp"

Now, the problem is, this works fine when working with the camera at 0,0,0.
But, as soon as I move the camera, the letter dissapear.
In fact, even if i entityparent it, still it dissapears.
It is something to do with TForming the CAMERA and subtracting the vertexcoards from it, but my head hurts.
PLEASE SOLVE THIS FOR ME !!! ;-)
Many thanks
I am almost complete in writing my 3D text system based on a single surface.
Image to download is here:
Download...
or right click on this image and save as "letters2.bmp"

Now, the problem is, this works fine when working with the camera at 0,0,0.
But, as soon as I move the camera, the letter dissapear.
In fact, even if i entityparent it, still it dissapears.
It is something to do with TForming the CAMERA and subtracting the vertexcoards from it, but my head hurts.
PLEASE SOLVE THIS FOR ME !!! ;-)
Many thanks
; Standard, used for 3D Calculations Type vector Field x# Field y# Field z# End Type ; Mesh (or emitter) for lettersprites Type text3D_lettermesh Field mesh% Field surface% end type ; Sprites Type text3D_lettersprite field index% field pos.vector end type ; 640x480 global nScale#=.005 Graphics3D 640,480,32,3 SetBuffer BackBuffer() camera=CreateCamera() cameraclscolor camera,255,0,0 CameraRange camera, 0.1, 1000 mylettermesh.text3D_lettermesh = Text3D_CreateLetterMesh("letters2.bmp") scalemesh mylettermesh\mesh,.005,.005,1 PositionEntity mylettermesh\mesh,0,0,.1 ;positionentity camera,0,0,-5 restore robdata read x$ n%=0 for z%=1 to len(x$) if mid$(x$,z%,1) <> " " for b%=0 to 23 myletter.text3D_lettersprite = Text3D_AddLetter(mylettermesh,n%,b%,0,rnd(0,255),rnd(0,255),rnd(0,255)) Text3D_SetLetter(mylettermesh,myletter,asc(mid$(x$,z%,1))) Text3D_PositionLetter mylettermesh,myletter,rnd(0,39),rnd(0,24) next end if n% = n% + 1 next cube=createcube() positionentity cube,0,0,3 While Not KeyHit(1) ;TurnEntity mylettermesh\mesh,0,0,.3 nStart%=millisecs() ;if keyhit(57) nCount%=0 for o.text3D_lettersprite = each text3D_letterSprite nCount%=nCount%+1 r%=r%+1 if r>255 then r=0 Text3D_ColorLetter mylettermesh,o,rnd(0,255),rnd(0,255),rnd(0,255) Text3D_PositionLetter mylettermesh,o,rnd(0,39),rnd(0,23) next ;end if nStart%=millisecs()=nStart% turnentity cube,0,1,1 UpdateWorld RenderWorld text 0,0,nCount% Flip Wend End function Text3D_SetLetter(mylettermesh.text3D_lettermesh,myletter.text3D_lettersprite,nAsc%) nAsc% = nAsc% - 33 ny% = nAsc%/8 nx% = nAsc% - (ny%*8) u# = nx% * .125 v# = ny% * .125 VertexTexCoords(mylettermesh\surface,myletter\index,u#,v#) VertexTexCoords(mylettermesh\surface,myletter\index+1,u#+.125,v#) VertexTexCoords(mylettermesh\surface,myletter\index+2,u#+.125,v#+.125) VertexTexCoords(mylettermesh\surface,myletter\index+3,u#,v#+.125) end function function Text3D_CreateLetterMesh.text3d_lettermesh(strTexture$) t.text3D_lettermesh = new text3D_lettermesh t\mesh = createmesh() t\surface = createsurface(t\mesh) Tex=LoadTexture(strTexture$,4) brush=CreateBrush() BrushFX brush,3 BrushTexture brush,tex PaintMesh t\mesh,brush freebrush brush freetexture tex return t end function function Text3D_AddLetter.text3D_lettersprite(t.text3D_lettermesh,x#,y#,z#,r%=255,g%=255,b%=255) ;nOffset#=.5 mytempletter.text3D_lettersprite = new text3D_lettersprite ;X# = X# - 20 ;Y#=(14-(Y#*1.25)) i%=AddVertex(t\surface,x#-1+nOffset#,y#+1+nOffset#,0, 0,0) AddVertex t\surface,x#+1+nOffset#,y#+1+nOffset#,0, .125,0 AddVertex t\surface,x#+1+nOffset#,y#-1+nOffset#,0, .125,.125 AddVertex t\surface,x#-1+nOffset#,y#-1+nOffset#,0, 0,.125 AddTriangle t\surface,i%+0,i%+1,i%+2 AddTriangle t\surface,i%+0,i%+2,i%+3 UpdateNormals t\mesh mytempletter\index = i% Text3D_ColorLetter(t,mytempletter,r,g,b) mytempletter\pos = new vector Text3D_PositionLetter(t,mytempletter,rnd(0,39),rnd(0,24)) return mytempletter end function function Text3D_ColorLetter(t.text3D_lettermesh,l.text3D_lettersprite,r%,g%,b%,gradient%=false) vertexcolor t\surface,l\index,255,255,255 vertexcolor t\surface,l\index+1,255,255,255 vertexcolor t\surface,l\index+2,r%,g%,b% vertexcolor t\surface,l\index+3,r%,g%,b% end function Function Text3D_PositionLetter (t.text3D_lettermesh,l.text3D_lettersprite, x#,y#) l\pos\x = x# l\pos\y = y# l\pos\z = 0 nOffset#=.5*nScale X# = X# - 20 Y#=(14-(Y#*1.25)) x#=x#*nScale y#=y#*nScale nInc#=nScale VertexCoords t\surface,l\index,x-nInc+nOffset,y+nInc+nOffset, 0 VertexCoords t\surface,l\index+1,x+nInc+nOffset,y+nInc+nOffset, 0 VertexCoords t\surface,l\index+2,x+nInc+nOffset,y-nInc+nOffset, 0 VertexCoords t\surface,l\index+3,x-nInc+nOffset,y-nInc+nOffset, 0 End Function .robdata data "0123456789012345678901234567890123456789"