How to make custom lines?

Started by
9 comments, last by i04055 15 years, 11 months ago
Hi guys.... I'm a beginner here, and i need some help. I need to make a custom lines using openGL in 2D graphics. All that i want is to make every lines I create (using GL_LINE) is looked like I draw it using crayon or chalk just like I used to see in Crayon Physics game. I've been searching for a while and I didn't find a way. Is there someone here who can give me some advises or tricks? thx before.
Advertisement
Render polygons and apply a texture?
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
how could I render polygons on lines?

could you make it clearer? since i'm a beginner... sorry...

I need to apply a texture on the outline of polygons not inside the polygons area...

but thx for the advise...
Do not render a polygon on your line.
Render a polygon, rectangular shape and apply the texture you want.

Quote:I need to apply a texture on the outline of polygons not inside the polygons area...

Make your texture format RGBA and the center parts, make the Alpha=0 and enable transparency
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
Could I apply a texture to a line segment?
Just a line segment not the outline of any shape....
Because I need it applied even before it become a complete polygons...

thx for the advises....
Yes, you can apply a texture to anything (point, line, polygons, glDrawPixels) although the results you get might not be what you want. For lines, you can apply a 1D texture. Yuo can apply a 2D texture to but I don't know how exactly it interpolates the texcoords on a line.
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
i04055, I believe that what is being suggested is that, instead of rendering lines, you render polygons.

For example:

(I'm using immediate mode here for the sake of simplicity)

Instead of this :

glBegin(GL_LINES); //Two glVertex calls hereglEnd();


Which should give something like this:

                /               /              /             /


Try something like this:

glBegin(GL_QUADS); //Four glVertex calls here, informed by your desired start- and end- pointsglEnd();


Which should allow you to create something like this:

           ____          /   /         /   /        /   /       /   /      ----


With a nice crayon or chalk texture applied to it. Naturally, this is a relatively basic implementation; in order to create a better chalk or crayon effect, a little more creativity with your quads might be called for. ;)

MWAHAHAHAHAHAHA!!!

My Twitter Account: @EbornIan

owh... i see....

This is a bit different from what I imagine. But it should help me out of this problem.

What I really want to make is another version of Crayon Physics game for my final project. But I uses openGL instead of DirectX as my graphics library....

So... If I use polygons instead of line, I have to do something about it's collision detection too...

thx for the advises, I really appreciate that....
I've seen Crayon Physics and that's what they do. It's all textured polygons.
For physics, any 3D engine will do as long as you restrict one of the axis to have a 2D effect. Newton, ODE, Bullet come to mind.
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
IIRC Crayon Physics doesn't use extended/widened rectangles for the lines, they're instead made of lots of circular crayon sprites drawn at regular intervals along the line. There's a post by the author in the Image Of The Day thread where he gives details about it.

This topic is closed to new replies.

Advertisement