I’m trying to understand this code below and it has me confused (Attempting to convert Volumetric lines to Java). 6 triangles are used for each line (8 vertex).
What I don’t get is that the first 4 vertexs are p1 and the second 4 vertexs are p2. How is this working? When I try to duplicate this, I don’t get anything even when I remove everything but the vertexs and attempt to just draw the triangles.
Here is the loop.
glColor3f(1.0,1.0,1.0);
for(int vl=0;vl<nbVLine;vl++)
{VolumeLineRenderer::getInstance().renderLine(vline[vl*2],vline[vl*2+1]);
}
void VolumeLineRenderer::renderLine(float *p1, float *p2)
{
glBegin(GL_TRIANGLE_STRIP);
glNormal3fv(vline_vertexOffset[0]);
glTexCoord2fv(vline_texCoord[0]);
glVertexAttrib4f(this->gpuProgVolumeLine_other, p2[0], p2[1], p2[2], 1.0f);
glVertex3fv(p1);
glNormal3fv(vline_vertexOffset[1]);
glTexCoord2fv(vline_texCoord[1]);
glVertexAttrib4f(this->gpuProgVolumeLine_other, p2[0], p2[1], p2[2], 1.0f);
glVertex3fv(p1);
glNormal3fv(vline_vertexOffset[2]);
glTexCoord2fv(vline_texCoord[2]);
glVertexAttrib4f(this->gpuProgVolumeLine_other, p2[0], p2[1], p2[2], 1.0f);
glVertex3fv(p1);
glNormal3fv(vline_vertexOffset[3]);
glTexCoord2fv(vline_texCoord[3]);
glVertexAttrib4f(this->gpuProgVolumeLine_other, p2[0], p2[1], p2[2], 1.0f);
glVertex3fv(p1);
glNormal3fv(vline_vertexOffset[4]); glTexCoord2fv(vline_texCoord[4]); glVertexAttrib4f(this->gpuProgVolumeLine_other, p1[0], p1[1], p1[2], 1.0f); glVertex3fv(p2); glNormal3fv(vline_vertexOffset[5]); glTexCoord2fv(vline_texCoord[5]); glVertexAttrib4f(this->gpuProgVolumeLine_other, p1[0], p1[1], p1[2], 1.0f); glVertex3fv(p2); glNormal3fv(vline_vertexOffset[6]); glTexCoord2fv(vline_texCoord[6]); glVertexAttrib4f(this->gpuProgVolumeLine_other, p1[0], p1[1], p1[2], 1.0f); glVertex3fv(p2); glNormal3fv(vline_vertexOffset[7]); glTexCoord2fv(vline_texCoord[7]); glVertexAttrib4f(this->gpuProgVolumeLine_other, p1[0], p1[1], p1[2], 1.0f); glVertex3fv(p2);
glEnd();
}
float vline[][3] =
{
{0.0f, 0.0f, 0.0f}, {10.0f, 0.0f, 0.0f},
{0.0f, 0.0f, 0.0f}, {0.0f, 10.0f, 0.0f},
{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 10.0f},
{15.0f, 0.0f, 0.0f}, {25.0f, 0.0f, 0.0f},
{15.0f, 0.0f, 0.0f}, {15.0f, 10.0f, 0.0f},
{15.0f, 0.0f, 0.0f}, {15.0f, 0.0f, 10.0f},
{10.0f, 0.0f, 20.0f}, {20.0f, 5.0f, 25.0f},
{20.0f, 5.0f, 25.0f}, {30.0f, -1.0f, 22.0f},
{30.0f, -1.0f, 22.0f}, {35.0f, 2.0f, 20.0f},
{-6.0f, 10.0f, 3.0f}, {-5.0f, 0.0f, 2.0f},
{-6.0f, 0.0f, 2.0f}, {-3.0f, 15.0f, -2.0f},
{-2.0f, 11.0f, -1.0f}, {-6.0f, 3.0f, 0.5f}
};