posted here as a response to this thread:
Works on a folder full of images with alpha channels. Keeps the proportion. Makes all the billboards the same height...
Works on a folder full of images with alpha channels. Keeps the proportion. Makes all the billboards the same height...
Code:
-- simple Scripted Billboard creator. Operates on a folder full of images. Will add an interface and variables, saved paths etc later. Suggestions welcome jonahhawk at hotmail.com. files = getFiles "\\\\server\\path\\*.tif" --edit this to match the path to your images. ( for f = 1 to files.count do ( theMap = openBitMap files[f] theMap.filename = files[f] -- Get the ratio of the bitmap and set the length and width acordingly local planeRatio = (theMap.width as float)/(theMap.height as float) ( local theLength = 68 --This is the height of the billboards... all of them. will add randomness maybe... local theWidth = theLength*PlaneRatio ) --Set naming local refPlaneName = (getFilenameFile theMap.filename) --build material local matName = (getFilenameFile theMap.filename) local theMaterial = VRayMtl() theMaterial.name = refPlaneName theMaterial.texmap_diffuse = Bitmaptexture fileName:theMap.filename theMaterial.texmap_diffuse.name = (refPlaneName + "_Diffuse") theMaterial.texmap_diffuse.coords.blur = 0.01 theMaterial.texmap_opacity = Bitmaptexture fileName:theMap.filename theMaterial.texmap_opacity.name = (refPlaneName + "_Opacity") theMaterial.texmap_opacity.rgboutput = 1 theMaterial.texmap_opacity.monooutput = 1 theMaterial.texmap_opacity.coords.blur = 0.01 showTextureMap theMaterial theMaterial.texmap_diffuse off --build plane local refPlane = plane name:refPlaneName length:theLength width:theWidth lsegs:1 wsegs:1 mapCoords:true refplane.material = theMaterial refplane.realWorldMapSize = off refplane.lengthsegs = 1 refplane.widthsegs = 1 --position the plane in coordsys (transmatrix refplane.transform.pos) refplane.rotation = (eulerangles -90 0 0) ResetXForm refplane ; CollapseStack refplane refplane.pivot = [(refplane.max.x+refplane.min.x)/2, refplane.min.y, refplane.min.z] refplane.pos = [0,0,0] ) --clean up freescenebitmaps() gc() )