In this article I will demonstrate how to implement a basic lighting model using the Cg shader language. If you are unfamiliar with using Cg in your own applications, then please refer to my previous article titled Introduction to Shader Programming with Cg 3.1.
This article is an updated version of the previous article titled Transformation and Lighting in Cg. In this article, I will not use any deprecated features of OpenGL. I will only use the core OpenGL 3.1 API.
In this article I will demonstrate one possible way to generate multi-textured terrain using only the OpenGL rendering pipeline. This demo uses the GL_ARB_multitexture and GL_ARB_texture_env_combine OpenGL extensions to do the multi-textured blending based on the height of the vertex in the terrain. I will also use the GL_ARB_vertex_buffer_object extension to store the terrain’s vertex information in the GPU memory for optimized rendering.
I will not show how to setup an application that uses OpenGL. If you would like to review how to setup an OpenGL application you can refer to my previous article titled “Introduction to OpenGL for Game Programmers“.