“Automatic shader simplification using surface signal approximation” by Wang, Yang, Yuan, Chen, Bala, et al. …
Conference:
Type(s):
Title:
- Automatic shader simplification using surface signal approximation
Session/Category Title: Vectors and Shaders
Presenter(s)/Author(s):
Abstract:
In this paper, we present a new automatic shader simplification method using surface signal approximation. We regard the entire multi-stage rendering pipeline as a process that generates signals on surfaces, and we formulate the simplification of the fragment shader as a global simplification problem across multi-shader stages. Three new shader simplification rules are proposed to solve the problem. First, the code transformation rule transforms fragment shader code to other shader stages in order to redistribute computations on pixels up to the level of geometry primitives. Second, the surface-wise approximation rule uses high-order polynomial basis functions on surfaces to approximate pixel-wise computations in the fragment shader. These approximations are pre-cached and simplify computations at runtime. Third, the surface subdivision rule tessellates surfaces into smaller patches. It combines with the previous two rules to approximate pixel-wise signals at different levels of tessellations with different computation times and visual errors. To evaluate simplified shaders using these simplification rules, we introduce a new cost model that includes the visual quality, rendering time and memory consumption. With these simplification rules and the cost model, we present an integrated shader simplification algorithm that is capable of automatically generating variants of simplified shaders and selecting a sequence of preferable shaders. Results show that the sequence of selected simplified shaders balance performance, accuracy and memory consumption well.
References:
1. Akenine-Möller, T., Haines, E., and Hoffman, N. 2008. Real-Time Rendering 3rd Edition. A. K. Peters, Ltd., Natick, MA, USA.
2. Bæentzen, J., Nielsen, S., Gjøl, M., and Larsen, B. 2008. Shader-based wireframe drawing. Computer Graphics and Geometry 10, 2, 66–79. Invited paper. Extended version of previous conference paper.
3. Colbert, M., and Krivánek, J. 2007. Gpu-based importance sampling. GPU Gems 3, 459–476.
4. Deb, K., Pratap, A., Agarwal, S., and Meyarivan, T. 2002. A fast and elitist multiobjective genetic algorithm: Nsgaii. Trans. Evol. Comp 6, 2 (Apr.), 182–197.
5. Ferrante, J., Ottenstein, K. J., and Warren, J. D. 1987. The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst. 9, 3 (July), 319–349.
6. Foley, T., and Hanrahan, P. 2011. Spark: Modular, composable shaders for graphics hardware. ACM Trans. Graph. 30, 4 (July), 107:1–107:12.
7. Guennebaud, G., Jacob, B., et al., 2010. Eigen v3. http://eigen.tuxfamily.org.
8. Guenter, B., Knoblock, T. B., and Ruf, E. 1995. Specializing shaders. In Proceedings of the 22Nd Annual Conference on Computer Graphics and Interactive Techniques, ACM, New York, NY, USA, SIGGRAPH ’95, 343–350.
9. Hanrahan, P., Salzman, D., and Aupperle, L. 1991. A rapid hierarchical radiosity algorithm. SIGGRAPH Comput. Graph. 25, 4 (July), 197–206.
10. Hoppe, H. 1996. Progressive meshes. In Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques, ACM, New York, NY, USA, SIGGRAPH ’96, 99–108.
11. Kavan, L., Bargteil, A. W., and Sloan, P.-P. 2011. Least squares vertex baking. In Proceedings of Eurographics Conference on Rendering, 1319–1326.
12. Kessenich, J., Baldwin, D., and Rost, R. 2013. OpenGL Shading Language Specification. http://www.opengl.org/documentation/glsl/.
13. Lehtinen, J., Zwicker, M., Turquin, E., Kontkanen, J., Durand, F., Sillion, F. X., and Aila, T. 2008. A meshless hierarchical representation for light transport. ACM Trans. Graph. 27, 3 (Aug.), 1–9.
14. Microsoft. 2013. Direct3D 11 reference. http://msdn.microsoft.com.
15. Microsoft. 2013. Shader model 5 (DirectX HLSL). http://msdn.microsoft.com.
16. Mitchell, J. L., Francke, M., and Eng, D. 2007. Illustrative rendering in team fortress 2. In ACM SIGGRAPH 2007 Courses, ACM, New York, NY, USA, SIGGRAPH ’07, 19–32.
17. Muchnick, S. S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann.
18. Nehab, D., Sander, P. V., Lawrence, J., Tatarchuk, N., and Isidoro, J. R. 2007. Accelerating real-time shading with reverse reprojection caching. In Proceedings of ACM SIGGRAPH/EUROGRAPHICS Symposium on Graphics Hardware.
19. Olano, M., Kuehne, B., and Simmons, M. 2003. Automatic shader level of detail. In Proceedings of Graphics Hardware, 7–14.
20. Pellacini, F. 2005. User-configurable automatic shader simplification. ACM Trans. Graph. 24, 3, 445–452.
21. Perlin, K. 1985. An image synthesizer. In Proceedings of ACM SIGGRAPH, 287–296.
22. Phong, B. T. 1975. Illumination for computer generated pictures. Commun. ACM 18, 6 (June), 311–317.
23. Segal, M., Akeley, K., Frazier, C., Leech, J., and Brown, P. 2013. The OpenGL Graphics System: A Specification (Version 4.4 (Core Profile) – October 18, 2013). http://www.opengl.org/registry/doc/glspec44.core.pdf.
24. Sitthi-amorn, P., Lawrence, J., Yang, L., Sander, P. V., Nehab, D., and Xi, J. 2008. Automated reprojection-based pixel shader optimization. ACM Trans. Graph. 27, 5 (Dec.), 127:1–127:11.
25. Sitthi-Amorn, P., Modly, N., Weimer, W., and Lawrence, J. 2011. Genetic programming for shader simplification. ACM Trans. Graph. 30, 6, 1–12.
26. Sloan, P.-P., Hall, J., Hart, J., and Snyder, J. 2003. Clustered principal components for precomputed radiance transfer. ACM Trans. Graph. 22, 3 (July), 382–391.
27. Tip, F. 1995. A survey of program slicing techniques. Journal of programming languages 3, 3, 121–189.
28. Weiser, M. 1984. Program slicing. IEEE Transactions on Software Engineering 10, 4, 352–357.
29. Zatz, H. R. 1993. Galerkin radiosity: A higher order solution method for global illumination. In Proceedings of the 20th Annual Conference on Computer Graphics and Interactive Techniques, ACM, New York, NY, USA, SIGGRAPH ’93, 213–220.


