如何在OpenGL中绘制一个点的轮廓?
到目前为止,可以使用以下代码绘制点:
// SETUP FOR VERTICES GLfloat points[graph->vertexCount * 6]; for (int i = 0 ; i vertexCount; i++) { points[i*6] = (graph->vertices[i].x / (backingWidth/2) ) - 1; points[i*6+1] = -(graph->vertices[i].y / (backingHeight/2) ) + 1; points[i*6+2] = 1.0; points[i*6+3] = 0.0; points[i*6+4] = 0.0; points[i*6+5] = 1.0; } glEnable(GL_POINT_SMOOTH); glPointSize(DOT_SIZE*scale); glVertexPointer(2, GL_FLOAT, 24, points); glColorPointer(4, GL_FLOAT, 24, &points[2]); glDrawArrays(GL_POINTS, 0, graph->vertexCount);
点用红色渲染,我想在点之外添加白色轮廓。 我怎样才能勾画出这一点?
更好的显示问题
按照@BDL的指示,在红点下添加更大的点作为轮廓,它们看起来很好。
outlinePoints[i*6] = (graph->vertices[i].x / (backingWidth/2) ) - 1; outlinePoints[i*6+1] = -(graph->vertices[i].y / (backingHeight/2) ) + 1; outlinePoints[i*6+2] = 0.9; outlinePoints[i*6+3] = 0.9; outlinePoints[i*6+4] = 0.9; outlinePoints[i*6+5] = 1.0;
但是当一个点与另一个点重叠时,它的轮廓被红色点覆盖,因为轮廓点在所有红点之前呈现。
我认为正确的解决方案是逐个渲染一个轮廓点和红点。 怎么做?
如果要分别渲染每个点的轮廓,则可以先简单地渲染稍大的白点,然后在其上渲染红点。 启用深度测试后,您可能必须在渲染红点时调整多边形偏移,以防止它们隐藏在白色背后。
- Root Info Solutions设计和开发的5种最佳iOS应用
- iPhone连接到附件时有没有办法访问当前播放的曲目?
- 如何使用XCTestCase测试异步代码
- 在Swift中通过TCP发送消息(NULL终止)
- iOS:CALayer的辅助function标签
- APPDelegate中的openURL转换错误NSString – > String(Swift和iOS8)
- RootViewController,AppDelegate和我可能创build的View Controller类有什么区别?
- 是否可以在界面构建器中连接CustomViews的delegate和dataSource?
- 如何获得一年中的所有月份