Vertex color material and shaders
The Cube
component needs a Material
to render it on the display. Our Cube
has separate colors for each face, defined as separate vertex colors. We'll define a VertexColorMaterial
instance and the corresponding shaders.
Vertex color shaders
At a minimum, the OpenGL pipeline requires that we define a vertex shader, which transforms vertices from 3D space to 2D, and a fragment shader, which calculates the pixel color values for a raster segment. Similar to the simple shaders that we created in Chapter 3, Cardboard Box, we'll create two files, vertex_color_vertex.shader
and vertex_color_fragment.shader
. Unless you have done so already, create a new Android resource directory with the raw
type and name it raw
. Then, for each file, right-click on the directory, and go to New | File. Use the following code for each of the two files. The code for the vertex shader is as follows:
// File:res/raw/vertex_color_vertex.shader uniform mat4 u_Model; uniform mat4 u_MVP; attribute...