trees and shrubs with instanced branches, leaves etc or just one brick for a city
WendyLuvsCatz
Posts: 38,200
I am digging my own grave suggesting this as I do not render in DAZ studio much and it will something that will ONLY work in D|S.
but
Why not create trees with just a trunk and instance all the branches, leaves, fruit, blossoms etc.
you will only need a few variations.
why stop there
instance whole buildings and towns with the one brick and group like instances.
Post edited by WendyLuvsCatz on
Comments
and so I start building ......
I have hit a brick wall though pardon the pun, I found I cannot instance instances ...
I am used to Carrara and replicators where I can replicate replications though D|S has the advantage of manual placement
so it seems I need to build this .....wait for it ..... one brick at a time ><
These kind of products already exist, look at Stonemason's Fern Lake: http://www.daz3d.com/fern-lake or better Howie Farkes' Harpwood Trail http://www.daz3d.com/the-harpwood-trail-for-daz-studio - all the trees and leaves are instanced to perfection!
And don't think it's not memory intensive, the processing needs a lot of time.
I know and have was just taking the idea down to the more basic level of modeling the models with instancing
The only problem I see with this is that the patterns are too obvious and too repetitive to look believable, not with the building but with the textures when rendered.
I don't know...look at a pallet of modern bricks...there's really only a few variations and that's more because they were intentionally stacked that way when the pallet was being loaded. So instead of a single instanced brick, use five. Instances must use the same surface settings as the 'original', but there's nothing stopping one from having several similar/same items with different materials.
I do wonder how much of a memory saving there would be with that many small instances, not to mention how unwieldy the items would be in preview.
well the game Minecraft does it in realtime for example.
I am not sure I have the patience to test it though.
Since I'm most familiar with Blender...I'll use it as an example.
In Blender you can use arrays and particles to handle instance placement. So what would be unwieldly in Studio is a breeze in Blender. A wall of instanced bricks is very easy to make (set the rows/columns in an array and any offsets and you have a brick wall). Want a hundred leaves...set a particle system, Want more, of a different size...set a second or more particle systems...you can also randomize, to some degree, how the particles are scaled/rotated.
To work in Studio, arrays and particles really would need to be in place to handle instancing at that level.
And yes, it does save a large amount of memory when you are using 5 small mesh leaves and rendering a thousand...in Blender.
as it does with replicating in Carrara which I am familiar with.
I do not have ultrascatter yet and as none of it plays nice with Octane not in a big hurry but am wondering if that would/could with extra scripting have the ability to easily duplicate instances of instances that can then be edited still using the one base cube or 5 variations or indeed tree branches with randomisation between instanced instances so you get a forest of unique trees.
There are some trees software that do this, like speedtree. But t does on the software itself, once you got to export, you lose the ability to randomise.
The only way is if one would write a script or plugin for tree creation in daz, or whatever software you use. With scripting you can do like ultrascatter and do variantions on scale and rotations.
Don't forget we have a wonderful thing called projections.
Used directly, it can turn a simple noise-map/noise-shader into a fast anti-repetition texture.
Used indirectly, since whole bricks need not be used for a "surface" that you can only see one side of... instances of instances can be "projected" onto a surface. Though, that is a little more complicated. Less complicated than converting the "surfaces" into a simplified singular component, to use as an instance of an instance.
Funny, because GL and DX both have specific code to make branches and leaf and wire and stone instances, specific to speeding-up games, with a ton of alteration deformations to make them all look unique.
P.S. I would stick with a "wall structure", not a "brick structure" that is all individual whole 3D bricks. (Brick faces + Grout) Without the tops, insides and bottoms, which wouldn't render in most instances, unless you are building a one-brick thick wall of unstable stones.
I would LOVE dynamic trees that can actually be "programmed", instead of just morphed.
Yes, most trees are just a sloppy fractal. Branches are a repeat of the trunk, with each higher branch being a smaller version with fewer years of branches on them. You can actually measure a whole forests volume and density and trees volume, off just one branch of one tree. (Saw that on a "Discovery" show.) That is sort-of what speed-tree is. However, it can only instance in programs that have programmed instancing. Daz does not instance anything at all. Every individual object on the screen is sent as a unique object, including all the materials that are exactly the same.
Ten "Genesis 3" models with all the same materials will be 10x larger, not just 10x model-data larger + 1x set of images. Maybe soon, but not now. The demand is there. (Even sprite particles are treated as individual objects and whole new textures. Which almost defeats the point of using them, as particles. I assume that is done to get more realisitc "depth" in the render, but nVidia and Radeon were designed to instance. So, eventually it may be done correctly in Daz.)
I still find it funny that people try to make trees "full of leaves", and in reality, they don't have nearly that many. They put leaves through the whole thickness of the tree, down to the trunk. In reality, if you walk up to a tree trunk, you notice two things. The bottom side of a tree has almost no leaves at all, and looking up, the center of a tree is empty. Leaves only grow and live on the outside tips of branches. There are a few that will grow inside, but they usually die, due to light starvation. Yet still, everyone makes trees like an "Afro", and grass with millions of blades pointing "up". Which just makes them look fake.
Forest are the same way. You don't see many "full trees" in a forest, it is one large canvas with sparce branches reaching up high. Just some notes to think about, if you do go that path.
There are also places where you can get procedural textures for Iray.
Free, even.
(cough)
I was about to mention that procedural shaders could be used in place of texture maps to avoid the whole 'repetitive look' problem.
Doing the walls as 'bricks' would allow a dynamics system to 'bust' the wall apart, or have it crumble, etc. Would be best to have a system that allows you to select walls that are either instanced bricks (for destructibilty) or a monolithic single-object wall (with appropriate procedural shaders for each.) Then a script could take some kind of 'floorplan' image to appropriately create buildings from.
Tree algorithms exist, and they can be programmed. So all you really would need are a few 'trunk' objects, a few 'branches' objects, and a 'leaf' object (which can use different shaders/transmaps to simulate different folliage.) Then the script could simply create a 'tree' from a few objects, instanced and moved/scaled/rotated as needed per the algorithm.
But it would get complex. A whole forest COULD be made that way, but since you can't instance other groups of instances, you'd have to make copies instead, or simply rebuild new copies via the scripts.
well I think you can theoretically instance groups of instances if you use all the same root meshes just not in DAZ studio with the current interface, it would need to be scripted somehow.
Carrara replication does it, and has the option to create real mesh too but that is usually unwise!!!
Curve hair to geometry does a form of this too.
It could be added maybe to one of the existing plugins or a standalone one just for trees or one for buildings with a selection of assets.
a Minecraft inspired plugin even.
I have not yet tried examining a duf file using instancing, it might even be editable there!
https://www.daz3d.com/auto-paver
maybe Totte could tackle the brick walls and trees next
the trees still are waiting
Totte make us a tree generator for DS just because
leaves could use anyone's transmaps
and your instance to mesh script that I have could create the model if one wants it!