# OpenGL how to draw ribbons and pipes & planks in OpenGL

## Recommended Posts

i m working on the molecular visualization application. can any body tell me about any molecular graphics libaray that supports the ribbon and pipes & planks representation of molecules. or can any body tell me how these complex 3d images are drawn so that i can make it myself.

##### Share on other sites
I'd love to know that myself :)

I know that the popular VMD (http://www.ks.uiuc.edu/Research/vmd/) package is open source. I used that to write a PDB loader. I didn't have time to look in to the ribbon stuff and only draw atoms as spheres but it should be in there as well. If you're developing a commercial product, their license might be a bit restrictive but you could always just use it for 'inspiration' (just keep your fingers from the CTRL and C keys :).

Anyway, if you or someone else finds out how this mapping from atoms to ribbons/planks actually works, I'd like to know as well.

Tom

##### Share on other sites
First check out the Visualization Toolkit (VTK). It is a common tool for scientific visualization. I don't know if it natively supports these visualizations, or if standard extensions for it exist. I do know I've seen ribbons used with VTK (as well as a dozen other visualization types)*.

Then; isn't a ribbon just like a line but with an orientation in the tangential direction? You could draw them similarly, from point to point, using a plane oriented along the normal vector.

Greetz,

Illco

*) Might it be that VTK calls ribbons streamlines?

##### Share on other sites
Although I agree that VTK should in most cases be the first place to look for a scientific visualization problem (it seems this thread is a bit off topic for a gamedev forum, but let's continue anyway). However, in this case I'm not sure that VTK contains the required functionality as built in blocks. Which means that the question "how to draw ribbons in OpenGL?" becomes "how to draw ribbons in VTK". I would opt for VMD (or rasmol, pymol or whatever) first as they are existing solutions to the question "how to draw ribbons in OpenGL?".

Tom

## Create an account

Register a new account

• ## Partner Spotlight

• ### Forum Statistics

• Total Topics
627689
• Total Posts
2978656
• ### Similar Content

• Both functions are available since 3.0, and I'm currently using glMapBuffer(), which works fine.
But, I was wondering if anyone has experienced advantage in using glMapBufferRange(), which allows to specify the range of the mapped buffer. Could this be only a safety measure or does it improve performance?
Note: I'm not asking about glBufferSubData()/glBufferData. Those two are irrelevant in this case.
• By xhcao
Before using void glBindImageTexture(    GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format), does need to make sure that texture is completeness.
• By cebugdev
hi guys,
are there any books, link online or any other resources that discusses on how to build special effects such as magic, lightning, etc. in OpenGL? i mean, yeah most of them are using particles but im looking for resources specifically on how to manipulate the particles to look like an effect that can be use for games,. i did fire particle before, and I want to learn how to do the other 'magic' as well.
Like are there one book or link(cant find in google) that atleast featured how to make different particle effects in OpenGL (or DirectX)? If there is no one stop shop for it, maybe ill just look for some tips on how to make a particle engine that is flexible enough to enable me to design different effects/magic
let me know if you guys have recommendations.
• By dud3
How do we rotate the camera around x axis 360 degrees, without having the strange effect as in my video below?
Mine behaves exactly the same way spherical coordinates would, I'm using euler angles.
Tried googling, but couldn't find a proper answer, guessing I don't know what exactly to google for, googled 'rotate 360 around x axis', got no proper answers.

References:
Code: https://pastebin.com/Hcshj3FQ
The video shows the difference between blender and my rotation:

• By Defend
I've had a Google around for this but haven't yet found some solid advice. There is a lot of "it depends", but I'm not sure on what.
My question is what's a good rule of thumb to follow when it comes to creating/using VBOs & VAOs? As in, when should I use multiple or when should I not? My understanding so far is that if I need a new VBO, then I need a new VAO. So when it comes to rendering multiple objects I can either:
* make lots of VAO/VBO pairs and flip through them to render different objects, or
* make one big VBO and jump around its memory to render different objects.
I also understand that if I need to render objects with different vertex attributes, then a new VAO is necessary in this case.
If that "it depends" really is quite variable, what's best for a beginner with OpenGL, assuming that better approaches can be learnt later with better understanding?

• 16
• 14
• 12
• 10
• 12