Featured Posts

8. Bump Mapping in GLSL8. Bump Mapping in GLSL Introduction Bump mapping is essential in todays computer games, and computer graphics in general. Would you like to know the best thing about it? It is extremely simple to implement. Bump mapping works...

Read more

Swiftless GLSL Shader DeveloperSwiftless GLSL Shader Developer Swiftless GLSL Shader Developer   Version 0.1a Currently Swiftless GLSL Shader Developer is in it's first public release, and is currently in alpha status, meaning it is not complete and may contain...

Read more

Wordpress Optimization Wordpress Website Optimizations Introduction Wordpress itself is a fairly wonderful tool. Since switching to it, I find it is a lot quicker to make changes to my website and it is also quicker to get...

Read more

36. OpenGL Framebuffers36. OpenGL Framebuffers Introduction Frame buffers are one of those mythical things that we have all heard of, but many beginner OpenGL developers avoid because there is not much information about them, and they can be confusing...

Read more

1. Terrain Class1. Terrain Class Terrain is one of those things that so far, hasn't been perfectly recreated in computer graphics. But it is almost there! Looking over a beautiful landscape can be one of the most amazing feelings in the...

Read more

  • Prev
  • Next

26. OpenGL Vertex Alphas

Posted on : 25-03-2010 | By : Swiftless | In : OpenGL

Tags: , , , , ,

0

This OpenGL tutorial will show you how to add different alpha values to specific vertices in your shape. It uses the same glColor4f commands but the code is now written just before each vertex.

Vertex alphas are basically the same as vertex colors. They just set the
alpha of selected vertices instead of just setting the whole object to a
selected alpha.

So anyway, I did this with a normal quad
but it does work with any shape you choose
Here it is:
I have started my quad.
I then set the color red for the first vertex, with an alpha of only 0.2.
I then draw that vertex.
The next is green, with an alpha value of 1.
Then blue with an alpha value of 0.2.
And finally white with an alpha value of 1.

glBegin(GL_QUADS);
glColor4f(1,0,0,0.2);
glVertex3f(-0.5, -0.5, 0.0);
glColor4f(0,1,0,1);
glVertex3f(-0.5, 0.5, 0.0);
glColor4f(0,0,1,0.2);
glVertex3f(0.5, 0.5, 0.0);
glColor4f(1,1,1,1);
glVertex3f(0.5, -0.5, 0.0);
glEnd();

Just remember to call each vertex after you call the color
for this to work.

Just email swiftless@gmail.com if you have any questions :-)

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
  //Vertex alphas are basically the same
//as vertex colors. They just set the
//alpha of selected vertices instead of
//just setting the whole object to a
//selected alpha.

//So anyway, I did this with a normal quad
//but it does work with any shape you choose
//Here it is:
//I have started my quad.
//I then set the color red for the first vertex, with an alpha of only 0.2
//I then draw that vertex.
//The next is green, with an alpha value of 1.
//Then blue with an alpha value of 0.2.
//And finally white with an alpha value of 1.

//glBegin(GL_QUADS);
//glColor4f(1,0,0,0.2);
//glVertex3f(-0.5, -0.5, 0.0);
//glColor4f(0,1,0,1);
//glVertex3f(-0.5, 0.5, 0.0);
//glColor4f(0,0,1,0.2);
//glVertex3f(0.5, 0.5, 0.0);
//glColor4f(1,1,1,1);
//glVertex3f(0.5, -0.5, 0.0);
//glEnd();

//Just remember to call each vertex after you call the color
//for this to work.

#include <GL/gl.h>
#include <GL/glut.h>

void square (void) {
    glBegin(GL_QUADS);
    glColor4f(1,0,0,0.2); //red, alpha 0.2
    glVertex3f(-0.5, -0.5, 0.0);
    glColor4f(0,1,0,1); //green, alpha 1
    glVertex3f(-0.5, 0.5, 0.0);
    glColor4f(0,0,1,0.2); //blue, alpha 0.2
    glVertex3f(0.5, 0.5, 0.0);
    glColor4f(1,1,1,1); //white, alpha 1
    glVertex3f(0.5, -0.5, 0.0);
    glEnd();
}

void display (void) {
    glClearColor (0.0,0.0,0.0,1.0);
    glClear (GL_COLOR_BUFFER_BIT);
    glLoadIdentity();
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glTranslatef(0,0,-1);
    square();
    glFlush();
}

void reshape (int w, int h) {
    glViewport (0, 0, (GLsizei)w, (GLsizei)h);
    glMatrixMode (GL_PROJECTION);
    glLoadIdentity ();
    gluPerspective (60, (GLfloat)w / (GLfloat)h, 1.0, 100.0);
    glMatrixMode (GL_MODELVIEW);
}

int main (int argc, char **argv) {
    glutInit (&argc, argv);
    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGBA);
    glutInitWindowSize (500, 500);
    glutInitWindowPosition (100, 100);
    glutCreateWindow (“A basic OpenGL Window);
    glutDisplayFunc (display);
    glutReshapeFunc (reshape);
    glutMainLoop ();
    return 0;
}

VN:F [1.9.3_1094]
Please rate so I know where to improve the site. 1 means needs a lot of improvement, 10 means perfect. If you leave a low rating, please state why. I don't want people just coming to bash the site.
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Related posts:

  1. 25. OpenGL Vertex Coloring
  2. 6. Terrain Vertex Buffer Objects
  3. 5. OpenGL Color (Version 2.0)
  4. 27. OpenGL Basic Shadows
  5. 28. OpenGL Basic Reflection

Write a comment

Improve the web with Nofollow Reciprocity.