Page 1 of 2
Grass
Posted: Tue Jan 22, 2013 8:51 am
by zeitmeister
Did you check out Maxwell grass or Vray grass?
Something similar would perfectly fit for Indigo; making it even more attractive for archviz.
Re: Grass
Posted: Tue Jan 22, 2013 10:32 am
by CTZn
http://support.nextlimit.com/display/maxwelldocs/Grass
I'm not aware of an exporter implementing the Indigo Scatter, it would take this in order to make it user friendly.
See
http://www.indigorenderer.com/forum/vie ... =7&t=12085 and
http://www.indigorenderer.com/forum/vie ... =7&t=11528.
The curve primitive is still... apendingrequest argh too late

I'm noting that the "initial angle" feature is similar to my request of perturbed bump mapping/displacement
For completeness they did a good job.
Re: Grass
Posted: Tue Jan 22, 2013 7:38 pm
by Zom-B
I would suggest a solution using implicit surface for the grass leaves and Indigo scatter to fill the defined area.
CTZ, regarding your your "perturbed bump mapping/displacement" I also thought about usefulness of "multi displacement mapping" (thats how I call it ^^).
Simply allow having Indigo using a Displacement map at first, for general shape adjustment, and then another one for detailed deformations that now use the modified normals of the mesh and breaks free from the simple base mesh structure.
Being able to define subdiv in between these displacement procedures would be an feature for advanced material generation

Re: Grass
Posted: Tue Jan 22, 2013 10:27 pm
by OnoSendai
One of the reasons we added the scatter tool was for grass.
As you can see it already works quite well for scattering plants over a surface:
http://www.indigorenderer.com/forum/dow ... &mode=view
There is the question of how to make it easy to use for the artist. Currently you need to write ISL to specify the distribution of scattered objects, their orientation etc..
One possibility is to make an actual specific grass tool like Maxwell.
Grass
Posted: Tue Jan 22, 2013 11:15 pm
by zeitmeister
Maybe it doesnt have to be that advanced.
Simply geometry generation with an defineable amount of instancing percentage could already do the job with high performace?
Grass
Posted: Tue Jan 22, 2013 11:18 pm
by zeitmeister
A nice simple designed tool in the Indigo GUI (and later in the exporters maybe) would be the best way.
Have a look at the Maxwell interface; it is really simple and clear.
Re: Grass
Posted: Tue Jan 22, 2013 11:24 pm
by Zom-B
OnoSendai wrote:There is the question of how to make it easy to use for the artist. Currently you need to write ISL to specify the distribution of scattered objects, their orientation etc..
One possibility is to make an actual specific grass tool like Maxwell.
Let the Exporters do the ISL translation to Indigo, by creating custome Shaders inside the 3D Programm.
I also realy don't need a Viewport preview of the grass so that the viewport performance breaks down!
define a mesh or a polyselection of a mesh, put on that the "ISL Surface Scatter Shader" and define the mesh(es) to splat inside that shader plus some parameters etc.
Should be a straight forward task to implement for all exporters!
Re: Grass
Posted: Tue Jan 22, 2013 11:26 pm
by OnoSendai
Zom-B: Sounds like a good way of doing it.
I'll discuss this with the exporter writers.
Re: Grass
Posted: Tue Jan 22, 2013 11:34 pm
by Zom-B
Defining a good base shader for scattering is here a important step.
- possibility of multiple Meshes to splat
- Scale control via BW map
- Dense controle via BW map
- control of alignment: normal direction, X, Y , Z
- camera clipping on/off
- intersect splatted meshes on/off
- Albedo color modification set by area, like
here
- ...
these parameters should be "quite easy" to feed by exported variables out of the 3D app.
Grass
Posted: Wed Jan 23, 2013 6:11 am
by zeitmeister
I think that numeric density values would be useful, too. Length also.
So you can change these parameters in Indigo GUI if something doesnt fit.
Maxwell uses a value per square meter...
Re: Grass
Posted: Wed Jan 23, 2013 7:07 am
by CTZn
Length and density metrics can be defined by the respective shaders, that's not an issue in itself.
Having parameters defined as wavelength independent whenever possible. Constant, texture or shader, what else ?
I was thinking of a parametric surface as an hair primitive, dare ? One could define a curve without an actual curve I'm guessing.
Re: Grass
Posted: Thu Jan 24, 2013 4:43 am
by Pibuz
..don't forget the bending parameters to add some modifications to the base mesh!
Grass could be defined as a straight strand, and then bended to get the grass-y feeling; anyway, also useful for fur carpets, at the moment inexistent in the Sketchy world..
Re: Grass
Posted: Thu Jan 24, 2013 5:16 am
by OnoSendai
Pibuz wrote:..don't forget the bending parameters to add some modifications to the base mesh!
Grass could be defined as a straight strand, and then bended to get the grass-y feeling; anyway, also useful for fur carpets, at the moment inexistent in the Sketchy world..
I think this can be done by selecting among a few different strand models.
Re: Grass
Posted: Thu Jan 24, 2013 5:32 am
by Zom-B
Pibuz wrote:..don't forget the bending parameters to add some modifications to the base mesh!
Grass could be defined as a straight strand, and then bended to get the grass-y feeling; anyway, also useful for fur carpets, at the moment inexistent in the Sketchy world..
That is kind of a overkill if you ask me.
I see that shader splat a variation of meshes over a area, not bending each grass leaf

But a batch of premade grass patches into that shader and everything should be fine.
Something I forgot to request above is a possibility to alter the diffuse color of the splatted meshes not by each model, but by area, just like here:
http://www.indigorenderer.com/forum/vie ... 91#p118891
Re: Grass
Posted: Thu Jan 24, 2013 6:44 am
by Pibuz
Sorry..
I always thought to this Indigo shader to be quite similar to 3dsMax's hair and fur modifier, which, I assume, creates the geometry from scratch, starting from a distribution and including some modifiers.
..sort of a modeling package tool, now that I think about it: not too pertinent to a renderer..