I want to create grass on terrain. I used following technique using 3drad. But according to me none of them seems to work. Following are the technique i used. 1. created a grass using iObjectScan method which create grass on flat plane. But it has a serious issue. if your number of objects in the screen is increased, the whole game is slowed tremendously and even refuse to run. So not the right method Secondly it fails on slope. So i used iQuaternionLookAt method to view on slops, But this method fails on corners of the terrain as i am using large patch of grass. If i take single strand of grass then it will also cause severe frame drop. 2. I then put the imposters of the grass on several location( precalculated) works well but on slop it fails. 3. I use the small patch of grass. 3drad frames are dropped.
Then i research on google and found geometry shader and the second method i found object instancing which is done by graphic card.
If anybody has any idea or clue then please share how to do that. I wonder How unity and unreal engine handle that. How grass is handled by predecessor games when there is no dx11. Is it can be done by Shader?
i have an idea that if i hide the object and show them using shader according to player position will it be any frame drop issue?
Yes right! but that method create grass imposter all at once which decreases the performance. The drawback is that it draws grass on vertices and does not create in between vertices. i have used that method also forgot to mention that. Is this method can be modified to create a desired meshes.