Sign in to follow this  
i04055

OpenGL How to make custom lines?

Recommended Posts

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.

Share this post


Link to post
Share on other sites
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...

Share this post


Link to post
Share on other sites
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);

Share this post


Link to post
Share on other sites
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....

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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 here
glEnd();


Which should give something like this:

                /
/
/
/


Try something like this:

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


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. ;)

Share this post


Link to post
Share on other sites
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....

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
I've used Box2D v1.4 as it's physics engine, the newer version of physics engine that Petri Purho used in Crayon Physics.
This physics engine is design for 2D graphics, so it is easier to implemented.

I've read that Crayon Physics used DirectX as its graphics library. But I don't really know weather it can be apllied in openGL too...

@OrangyTang
Could you give me a link to that thread, I can't found it...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this