# Thread: Using a shader to calculate colour from y value

1. ## Using a shader to calculate colour from y value

I'm generating surfaces that plot the distribution of data, each data point has an x and y value and my surface plots the number of times a particular combination of a x and y have been received - see the attached screen grab. To help visualise the vertical frequency axis I'm also applying a colour map to the z axis. The surface is drawn using triangles. calculation of the vertices colour is calculated before the data is sent to the graphics card [working on using VBOs, at the mo I specify each triangle vertex by vertex]

My question is, can I use a shader [which I assume are compiled and loaded onto the GPU] to calculate the colour from the vertex y axis value? Can I preload a colour map into the GPU that the GPU can use to look up the y value and get the RGB value of the vertex?

The graph has to update regularly as it will be monitoring a live steam of data. Is there any speed advantage in getting the GPU to do the colour calculation?

2. Originally Posted by kevindoig
My question is, can I use a shader to calculate the colour from the vertex y axis value?
Sure. In the vertex shader, take the y component of the position before applying perspectvie projection and do whatever computation on it. The generated variable is an out parameter/varying of the vertex shader, and the interpolated result is used by the fragment shader as fragment color.[/QUOTE]

Originally Posted by kevindoig
Can I preload a colour map into the GPU that the GPU can use to look up the y value and get the RGB value of the vertex?
Write the color map into a 1D texture, use the value computed in the vertex shader to fetch the coresponding color from the texture

Originally Posted by kevindoig
The graph has to update regularly as it will be monitoring a live steam of data. Is there any speed advantage in getting the GPU to do the colour calculation?
Massively parallel? On the CPU, you would caclulate the color sequentially for each vertex. Depends on how involved the computation is and how many vertices you have.

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•