Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGL catmull rom样条循环着色 我在C++中有一个CasMull ROM样条循环。我可以做样条曲线,我有曲线点,但当我试图用GL_三角形_扇填充边界区域时,我得到了太多的直线。我的问题是,如何有效地用颜色填充样条曲线循环区域_C++_Opengl_Colors_Shader_Spline - Fatal编程技术网

OpenGL catmull rom样条循环着色 我在C++中有一个CasMull ROM样条循环。我可以做样条曲线,我有曲线点,但当我试图用GL_三角形_扇填充边界区域时,我得到了太多的直线。我的问题是,如何有效地用颜色填充样条曲线循环区域

OpenGL catmull rom样条循环着色 我在C++中有一个CasMull ROM样条循环。我可以做样条曲线,我有曲线点,但当我试图用GL_三角形_扇填充边界区域时,我得到了太多的直线。我的问题是,如何有效地用颜色填充样条曲线循环区域,c++,opengl,colors,shader,spline,C++,Opengl,Colors,Shader,Spline,以下是绘制样条线的方式: glBindVertexArray(vao); unsigned int vbo; glGenBuffers(1, &vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferData(GL_ARRAY_BUFFER, sizeof(lines) * sizeof(float), lines, GL_STATIC_DRAW); glEnableVertexAttribArray(0); glVertexAttribPoi

以下是绘制样条线的方式:

glBindVertexArray(vao);
unsigned int vbo;
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(lines) * sizeof(float), lines, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, 0);
glDrawArrays(GL_LINE_STRIP, 0, vecLinePoints.size());
编辑: 这是我如何尝试填补我的空白:

 glClear(GL_DEPTH_BUFFER_BIT);
    glDisable(GL_STENCIL_TEST);
    glStencilMask(0xFF);
    glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
    glStencilOp(GL_INVERT, GL_INVERT, GL_INVERT);
    glClear(GL_STENCIL_BUFFER_BIT);  

    glBindVertexArray(vao);
    unsigned int vbo;
    glGenBuffers(1, &vbo);
    glBindBuffer(GL_ARRAY_BUFFER, vbo);
    glBufferData(GL_ARRAY_BUFFER, sizeof(polyPoints) * sizeof(float), polyPoints, GL_STATIC_DRAW);
    glEnableVertexAttribArray(0);
    glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, 0);
    glBindVertexArray(vao);
    glDrawArrays(GL_TRIANGLE_FAN, 0, vecPoints.size());

    glStencilMask(0x00);
    glStencilFunc(GL_NOTEQUAL, 0, 0xFF);
    glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
    glDisable(GL_STENCIL_TEST);

这是闭合多边形吗?它是凸的还是凹的?是的,它看起来像这样:。但是它可以是凸的也可以是凹的,因为如果我点击某个地方,样条曲线就会改变。原语必须是凸的。如果我想制作一个凹多边形?
填充样条曲线循环的颜色效率
要解析这个短语,我必须将其转换为使用颜色效率填充样条曲线循环区域。