Boxshot supports two types of software box shapes: a simple one and the sliding one. The difference is that the sliding box doesn't have top side and has an inner plastic container instead. It can be moved out, if necessary.
Simple Software Box
You control width, height and length of the box, also the edges - how hard or curved are they. This is a "standard" software box, nothing special:
The right box has hard edges, while the left one has soft. This is controlled by the Radius parameter of the shape. You may fit the shape to the loaded images by clicking the Fit to images button.
Rounded box is almost the same as a simple one, except for the customizable edges rounding. You can define custom radiuses for all the vertical edges and for top and bottom edges, as well. Useful for simulating plastic wraps.
Note that there are limitations for radiuses, as for some radiuses combinations it is impossible to make a box. Boxshot detects such cases and automatically adjusts radiuses.
Sliding Software Box
You again control width, height and length of the box, edges are fixed, but you can choose between rounded and square top right corner of the box. You also control how much is the inside container is moved out:
Again, you can adjust the box dimensions according to the loaded images by clicking the Fit to images button.
Here's how to create and control a simple software box:
var m = scene.root.addMesh("Software Box", "generator.Boxes.Box"); var g = m.generator; g.width = 10; g.height = 20; g.length = 2; g.radius = 0.1; g.fitToImages();
Here's the script for a rounded box:
var m = scene.root.addMesh("Rounded Box", "generator.Boxes.RoundedBox"); var g = m.generator; g.width = 10; g.height = 20; g.length = 2; g.radiusV1 = 0.8; g.radiusV2 = 0.7; g.radiusV3 = 0.6; g.radiusV4 = 0.5; g.radiusTop = 0.3; g.radiusBottom = 0.2; g.fitToImages();
Sliding boxes are pretty much the same:
var m = scene.root.addMesh("Sliding Box", "generator.Boxes.SlidingBox"); var g = m.generator; g.width = 10; g.height = 20; g.length = 2; g.roundCorner = false; g.innerBox = 0.2; g.fitToImages();