Abstract
In real-time rendering, objects are represented using polygons or triangles. Triangles are easy to render and graphics hardware is highly optimized for rendering of triangles. Initially, the shading computations were carried out by dedicated hardwired algorithms for each vertex and then interpolated by the rasterizer. Todays graphics hardware contains vertex and pixel shaders which can be reprogrammed by the user. Vertex and pixel shaders allow almost arbitrary computations per vertex respectively per pixel. We have developed a system to evolve such programs. The system runs on a variety of graphics hardware due to the use of NVIDIA’s high level Cg shader language. Fitness of the shaders is determined by user interaction. Both fixed length and variable length genomes are supported. The system is highly customizable. Each individual consists of a series of meta commands. The resulting Cg program is translated into the low level commands which are required for the particular graphics hardware.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Akenine-Möller, T., Haines, E.: Real-Time Rendering, 2nd edn. A K Peters, Natick (2002)
Banzhaf, W., Nordin, P., Keller, R.E., Francone, F.D.: Genetic Programming - An Introduction: On The Automatic Evolution of Computer Programs and Its Applications. Morgan Kaufmann Publishers, San Francisco (1998)
NVIDIA Corporation. Nvidia nfinitefx engine: Programmable vertex shaders
Dawkins, R.: The Blind Watchmaker. W. W. Norton & Company, New York (1996)
Eiben, A.E., Nabuurs, R., Booij, I.: The Escher evolver: Evolution to the people. In: Bentley, P.J., Corne, D.W. (eds.) Creative Evolutionary Systems, pp. 425–439. Morgan Kaufmann Publishers, San Francisco (2001)
Foley, J.D., van Dam, A., Feiner, S.K., Hughes, J.F.: Computer Graphics: Principles and Practice, 2nd edn. in C. Addison-Wesley Publishing Company, Reading (1996)
Koza, J.R.: Genetic Programming. On the Programming of Computers by Means of Natural Selection. The MIT Press, Cambridge (1992)
Koza, J.R.: Genetic Programming II. Automatic Discovery of Reusable Programs. The MIT Press, Cambridge (1994)
Loviscach, J., Meyer-Spradow, J.: Genetic programming of vertex shaders. In: Proc. of EuroMedia 2003, pp. 29–31 (2003)
Maughan, C., Wloka, M.: Vertex shader introduction. Technical report, NVIDIA Corporation (2001)
Meyer-Spradow, J., Loviscach, J.: Evolutionary design of BRDFs. In: Chover, M., Hagen, H., Tost, D. (eds.) Eurographics 2003 Short Paper Proceedings, pp. 301–306 (2003)
Kenton Musgrave, F.: Genetic textures. In: Ebert, D.S., Kenton Musgrave, F., Peachey, D., Perlin, K., Worley, S. (eds.) Texturing and Modeling: A Procedural Approach, 2nd edn., Cambridge, pp. 373–385. AP Professional (1998)
Nordin, P.: A compiling genetic programming system that directly manipulates the machine code. In: Kinnear Jr., K.E. (ed.) Advances in Genetic Programming, pp. 311–331. The MIT Press, Cambridge (1994)
Nordin, P., Banzhaf, W.: An on-line method to evolve behavior and to control a miniature robot in real time with genetic programming. Adaptive Behaviour 5(2), 107–140 (1997)
NVIDIA. Cg toolkit. user’s manual. a developer’s guide to programmable graphics. Technical report, NVIDIA Corporation, Santa Clara, CA (2002)
Perlin, K., Hoffert, E.M.: Hypertexture. In: SIGGRAPH 1989 Conference Proceedings, Computer Graphics, Boston, MA, vol. 23(3), pp. 253–262 (1989)
Reinhardt, M.: Evolution von Pixel- und Vertex-Shader Programmen. Projektpraktikum, Universität Würzburg, Institut für Informatik, Lehrstuhl für Informatik II (July 2004)
Rooke, S.: Eons of genetically evolved algorithmic images. In: Bentley, P.J., Corne, D.W. (eds.) Creative Evolutionary Systems, pp. 339–365. Morgan Kaufmann Publishers, San Francisco (2001)
Rowbottom, A.: Evolutionary art and form. In: Bentley, P.J. (ed.) Evolutionary Design by Computers, pp. 261–277. Morgan Kaufmann, San Francisco (1999)
Sims, K.: Artificial evolution for computer graphics. Computer Graphics 25(4), 319–328 (1991)
Sims, K.: Interactive evolution of dynamical systems. In: Varela, F.J., Bourgine, P. (eds.) Toward a practice of autonomous systems: Proc. of the 1st Europ. Conf. on Artificial Life, pp. 171–178. The MIT Press, Cambridge (1992)
Todd, S., Latham, W.: The mutation and growth of art by computers. In: Bentley, P.J. (ed.) Evolutionary Design by Computers, pp. 221–250. Morgan Kaufmann, San Francisco (1999)
Wall, M.: GAlib: A C++ Library of Genetic Algorithm Components, Version 2.4. Mechanical Engineering Department, Massachusetts Institute of Technology (1996)
Watt, A.: 3D Computer Graphics. Addison-Wesley, Harlow (2000)
Witbrock, M., Neil-Reilly, S.: Evolving genetic art. In: Bentley, P.J. (ed.) Evolutionary Design by Computers, pp. 251–259. Morgan Kaufmann, San Francisco (1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ebner, M., Reinhardt, M., Albert, J. (2005). Evolution of Vertex and Pixel Shaders. In: Keijzer, M., Tettamanzi, A., Collet, P., van Hemert, J., Tomassini, M. (eds) Genetic Programming. EuroGP 2005. Lecture Notes in Computer Science, vol 3447. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-31989-4_23
Download citation
DOI: https://doi.org/10.1007/978-3-540-31989-4_23
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25436-2
Online ISBN: 978-3-540-31989-4
eBook Packages: Computer ScienceComputer Science (R0)