Tessellation multi-light

Jun 8, 2013 at 2:36 AM

I want to know wich is the method to render a tessellated geometry and apply multi light.

I want to know this because if i want to create a shader to support N number of lights, and actually i only know how to link pre-created lights. If i use render passes in the first pass i tessellate the geometry but in the second pass the geometry is not tessellated, these mean i must tessellate the geometry on each pass?

Thanks a lot...
Jun 8, 2013 at 2:51 PM

The traditional way to solve this issue would be to stream out the tessellated meshes to buffers on the first pass, while simultaneously filling any G-buffers or depth buffers that you need for the other rendering passes. Then you could use the streamed buffers in any subsequent passes, making them available in tessellated form without the expense of tessellation.

This of course increases the vertex bandwidth used, but if you balance your pipeline stages accordingly it should work out ok.

One small problem is that I don't currently support the stream output stage in Hieroglyph 3... I can work on getting that added in for the next release, as I have been thinking about a stream output sample anyways.

I hope that helps!
Jul 4, 2013 at 6:19 PM
Hello jzink,

Thanks for your answer, basically i search and found this is done with stream out. stream the tessellated geometry to the next pass. The problem is i can't find any example on the web, doing that, just found something with particles and geometry shaders. May you point me to any example to implement it? I really need this future as far as possible :( ....

Jul 19, 2013 at 3:51 PM
Unfortunately I don't know of any sample programs that do this. I am currently taking a look at adding support for the stream output in Hieroglyph 3 as part of an extension to allow D3D11.1 and D3D11.2 usage. If I can manage to get that working, then it should be possible to add a sample that does what you are looking for.