Flak opened this issue on Mar 14, 2005 ยท 30 posts
madmax_br5 posted Tue, 15 March 2005 at 6:27 AM
The concept is simple in that it is using randomized instancing based on a grayscale map. Think of it as a terrain editor with reasoning. Steepness (rate of change between two areas on the grayscale image) is taken into account to provide A: presence or absence of certain objects and B: presence or absence of certain materials. (If it's flat, give it grass and add trees, if it's really steep, don't add trees and use a cliff rock material) Vue's solidgrowth randomizing technology is merely an automated tweaking system for the plant generator. You set the variance, which acts as the boundary as to the degree of difference from the first set of settings. Then all it does is apply a set of random constants which at the time of render are used to calculate the slight variations. The actual "new" part of the whole deal is the instancing aspect. The trees do not actually exist as mesh objects until they are rendered. In the preview window they are just placeholder bounding boxes for meshes and plant objects. When rendered, if a ray of the render engine intersects their bounding box, the mesh is drawn and rendered. But because the mesh is only displayed as a ray hits it, it is possible to have millions of them rendered with the memory drain of only a light scene. The infinite aspect of the whole thing is a simple fractal algorithm that holds the places of the representative bounding boxes. This is an industry standard technique and could easily be incorperated into any software package where it would prove useful. Instancing made it's role clear in the lord of the rings films with their epic battlefields. They do not have tens of thousands of individually animated guys, they have one guy who has a set of rules telling him how to behave when he's near another guy, and another set that alters his movement and materials, and so when these sets of rules interact they form the battle scene. But only upon render are the meshes produced and the materials applied. I just don't want people to go around thinking this is some kind of vue-doo (haha) magic. It is hardly a new technology and hardly unique. If anything it is a good example for bryce to follow. There are many precedents and bryce already has almost all of the neccessary components. (Raytrace render engine, grayscale image manipulation, editable trees and plants, highly advanced fractal support, and excellent procedural materials). The hardest and most technologically advanced issue involved is in fact the display of the scene in the workspace. This is an optimization issue which has a distance-based polygon reducing algorithm designed to work interactively. Coding-wise, this would be the hardest to implement.