skip to main content
research-article

Genetic programming for shader simplification

Published:12 December 2011Publication History
Skip Abstract Section

Abstract

We present a framework based on Genetic Programming (GP) for automatically simplifying procedural shaders. Our approach computes a series of increasingly simplified shaders that expose the inherent trade-off between speed and accuracy. Compared to existing automatic methods for pixel shader simplification [Olano et al. 2003; Pellacini 2005], our approach considers a wider space of code transformations and produces faster and more faithful results. We further demonstrate how our cost function can be rapidly evaluated using graphics hardware, which allows tens of thousands of shader variants to be considered during the optimization process. Our approach is also applicable to multi-pass shaders and perceptual-based error metrics.

Skip Supplemental Material Section

Supplemental Material

References

  1. Blinn, J. F. 1977. Models of light reflection for computer synthesized pictures. In Computer Graphics (Proceedings of ACM SIGGRAPH), pages 192--198. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Cook, R. L. 1984. Shade trees. In Computer Graphics (Proceedings of ACM SIGGRAPH). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Cook, R. L. and Torrance, K. E. 1981. A reflectance model for computer graphics. Computer Graphics (Proceedings of SIGGRAPH), pages 7--24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Deb, K., Pratap, A., Agarwal, S., and Meyarivan, T. 2002. A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans. Evolutionary Computation, 6(2):182--197. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Deering, M., Winner, S., Schediwy, B., Duffy, C., and Hunt, N. 1988. The triangle processor and normal vector shader: a VLSI system for high performance graphics. In Computer Graphics (Proceedings of ACM SIGGRAPH), pages 21--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. d'Eon, E., Luebke, D., and Enderton, E. 2007. Efficient rendering of human skin. In Proceedings of the Eurographics Symposium on Rendering (EGSR). Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Hasselgren, J. and Akenine-Moller, T. 2006. An efficient multi-view rasterization architecture. In Proceedings of the Eurographics Symposium on Rendering (EGSR). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Koza, J. R. 1992. Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Miller, B. L. and Goldberg, D. E. 1996. Genetic algorithms, selection schemes, and the varying effects of noise. Journ. of Evolutionary Computation, 4(2):113--131. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Mitchell, M., Holland, J. H., and Forrest, S. 1993. When will a genetic algorithm outperform hill climbing. In Advances in Neural Information Processing Systems, pages 51--58.Google ScholarGoogle Scholar
  11. Muchnick, S. S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann. ISBN 1-55860-320-4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Necula, G. C., McPeak, S., Rahul, S. P., and Weimer, W. 2002. Cil: An infrastructure for C program analysis and transformation. In International Conference on Compiler Construction, pages 213--228. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Nehab, D., Sander, P. V., Lawrence, J., Tatarchuk, N., and Isidoro, J. R. 2007. Accelerating real-time shading with reverse reprojection caching. In Graphics Hardware. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Olano, M., Kuehne, B., and Simmons, M. 2003. Automatic shader level of detail. In HWWS '03: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Pellacini, F. 2005. User-configurable automatic shader simplification. ACM Transacations on Graphics (Proc. SIGGRAPH). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Perlin, K. 1985. An image synthesizer. In Computer Graphics (Proceedings of ACM SIGGRAPH). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Scherzer, D., Jeschke, S., and Wimmer, M. 2007. Pixel-correct shadow maps with temporal reprojection and shadow test confidence. In Proceedings of the Eurographics Symposium on Rendering (EGSR). Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Sitthi-amorn, P., Lawrence, J., Yang, L., Sander, P., Nehab, D., and Xi, J. 2008. Automated reprojection-based pixel shader optimization. ACM Transactions on Graphics (Proc. SIGGRAPH Asia), 27(5):127. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Wang, Z., Bovik, A. C., Sheikh, H. R., and Simoncelli, E. P. 2004. Image quality assessment: From error visibility to structural similarity. IEEE Transactions on Image Processing, 13(4). Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Weimer, W., Forrest, S., Le Goues, C., and Nguyen, T. 2010. Automatic program repair with evolutionary computation. Communications of the ACM, 53(5):109--116. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Weimer, W., Nguyen, T. V., Le Goues, C., and Forrest, S. 2009. Automatically finding patches using genetic programming. In Proceedings of the International Conference on Software Engineering (ICSE), pages 364--374. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Genetic programming for shader simplification

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader