Hi,
How can I use unity surface shader (or standard PBR) together with DrawProcedural ?
Are there any examples?
I’m generating geometry with a compute shader and keeping vertices in a buffer _vertBuffer.
Then I do DrawProcedural in OnRenderObject:
void OnRenderObject() {
material.SetPass(0);
material.SetBuffer("_vertBuffer", _vertBuffer );
Graphics.DrawProcedural(MeshTopology.Triangles, fullVertCount );
}
So all the vertices I have in my material shader as an input are coming from _vertBuffer.
When I’m drawing them in my material I’m using this kind of vertex shader
struct Vert{
//...
};
StructuredBuffer<Vert> _vertBuffer;
v2f vert (uint id:SV_VertexID) {
//...
}
Although the examples of the surface shaders I found using different type of vertex shaders input - which is confusing
void vert (inout appdata v) {
//...
}
So , what is the proper way to write vertex shader when have vertex buffer as an input ???