【问题标题】:Why does the function 'CGAL::draw' draw a black triangle instead of a polygon in the latest version of CGAL?为什么在最新版本的CGAL中函数\'CGAL::draw\'绘制的是黑色三角形而不是多边形?
【发布时间】:2022-08-16 12:31:08
【问题描述】:

我已将我的 CGAL 安装升级到最新版本 (5.4.1),我不能再使用函数 CGAL::draw - 它绘制一个黑色三角形而不是我需要的所有内容。这在我的代码中不是问题——即使是 CGAL 发行版中的标准示例也是如此。下面的脚本解压缩 CGAL tar 文件,然后从该 tar 文件构建并运行 draw_polygon 示例。

#!/bin/bash

VERSION=CGAL-5.4.1

tar xJvf ${VERSION}.tar.xz && cd ${VERSION}

mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DWITH_examples=ON ..
make

cd examples/Polygon
make draw_polygon
./draw_polygon&

结果如下:

如果将上面脚本中的VERSION 变量设置为值CGAL-5.2.4 - 那么绘图将是正确的。这里有什么问题?

  • 操作系统:Ubuntu 20.04.4 LTS
  • 编译器:g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0

更新.我在 CGAL 错误跟踪器上打开了issue

  • 适用于 5.4.1 和 master 分支。你试过CGAL 5.3吗?有输出吗?您应该在 github 上打开一个问题。
  • @sloriot - 我试过 5.3.2 - 同样的黑色三角形
  • 可能是 OpenGL 着色器的问题。 2021年关于兼容性着色器模式有一些变化,这可能是相关的。我确认基本查看器适用于 CGAL 5.4。
  • @gdamiand - 我可以尝试调试这个问题,但我不知道如何。你能建议吗?
  • @gdamiand - 至于 OpenGL 着色器 - 请看我的另一个问题:stackoverflow.com/questions/68916854/…

标签: c++ qt5 visualization cgal


【解决方案1】:

我在回答我自己的问题。

这里的问题是,从 5.3 版开始,基于 CGAL 库 Qt5 的可视化子系统不支持旧的图形硬件 - 至少在 Linux 机器上(不知道 Windows 或 Mac 世界)。

看起来 Linux 上的 OpenGL 实现(称为 Mesa)在运行时检查图形硬件并创建与此硬件相对应的图形上下文。因此,要使 CGAL 可视化正常工作,此上下文必须至少为 OpenGL 3.2,并且相应的着色语言必须至少为 GLSL 1.50。

有关这些版本等的更多信息,请参阅here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多