【问题标题】:How to set up mac for graphics programming to use openGL?如何设置mac进行图形编程以使用openGL?
【发布时间】:2019-05-10 15:53:24
【问题描述】:

我是编程新手,也是这个平台的新手,如果出现以下情况,我深表歉意 我的问题不正确或看起来很愚蠢,但我需要帮助。没有一个 互联网上的资源对我很有用。如果可能,请 提供逐步说明为图形设置 mac 编程。提前谢谢你。

我是编程新手,我正在尝试学习图形编程。直到现在我在文本编辑器中编写 c/c++ 代码并编译并执行它们以查看 shell 中的输出。我在网上搜索为 opengl 项目设置 mac,但没有一个能解决我的疑虑。以下是疑问/问题:

我的电脑:macOS-Mojave :macbook pro mid 2012 (intel hd graphics 4000) 根据苹果网站支持 openGL 4.1

1。我必须下载一些文件才能使用 openGL 吗?或者它只是一个由计算机硬件制造商实现的api(在我的例子中是苹果)。

2。根据最近的消息,苹果弃用了 openGL。而且我不知道我的 macbook 上有哪个版本的 openGL。有没有办法找出答案?列出的答案都不适合我。

3.我可以像我一直在做的那样通过终端编译openGL代码还是必须使用xcode?​​p>

【问题讨论】:

    标签: c++ macos opengl 3d


    【解决方案1】:

    1。我必须下载一些文件才能使用 openGL 吗?

    到目前为止,还没有。默认情况下,所需的一切都随编译器一起提供。您只需将 -framework OpenGL 添加到编译器调用中即可。

    2。根据最近的消息,苹果弃用了 OpenGL。而且我不知道我的macbook 上有哪个版本的openGL。有没有办法找出来?列出的答案都不适合我。

    您在这里混合了两个不同的概念:

    • 在 macOS 平台中弃用 OpenGL 意味着,无论实际支持什么 OpenGL 版本,OpenGL 都将从该操作系统中完全消失。最终,您将不得不迁移到 Metal,或者使用诸如 MoltenGL(在 Metal 之上实现 OpenGL)或 MoltenVK (which implements Vulkan on top of Metal) 之类的包装器。

    • 对于 macOS,支持的最高 OpenGL 版本完全取决于安装的 macOS 版本。这与其他操作系统不同,在其他操作系统中,只要安装的图形硬件满足更高 OpenGL 版本的要求,只需更新驱动程序即可为您提供更高的 OpenGL 版本。

    3。我可以像现在一样通过终端编译openGL代码还是必须使用xcode?​​p>

    是的。从命令行编译和通过 Xcode 编译没有区别,因为 Xcode 只是在执行与通过终端执行相同的命令调用。

    【讨论】:

    • 感谢@datenwolf 抽出时间回答我的问题。如果我想学习图形编程,那么如果 openGL 将被删除,你能告诉我应该怎么做吗?因为 metal 只支持目标 c 和 swift 。谢谢。
    • @MADARAMINOSHI:如果你想留在 macOS 上,为了长期生存,你可以硬着头皮使用 Metal ,从而将自己锁定在那个环境中,并且只有那个生态系统在控制之下 或者您可以自己使用 MoltenVK,它是免费和开源的,并将其用作专有 API 和您针对跨平台、行业标准(即 Vulkan)编写的代码之间的层. Vulkan 不是最友好的学习 API,但它看起来很多,就像它在未来几年将拥有所有 API 中最好的支持一样。
    • @MADARAMINOSHI:您仍然可以学习 OpenGL,但要注意涉及固定功能管道的旧教程。如果您想开始学习 OpenGL(这不是一件坏事),请将自己完全限制在核心配置文件中。
    • 自上个月以来我一直在练习 C++,目标是使用套接字制作一个简单的文件共享应用程序。还在读它。想学习图形编程,因为我也是一名艺术家,也喜欢视觉的东西,所以看起来很有趣。避免金属,仅适用于苹果。感谢您对 vulkan 的建议。已经开始搜索设置它的教程。如果您可以提供更多建议,因为您似乎真的很有经验,那么我会非常高兴。非常感谢您消除了我的疑虑。节省了我很多时间。谢谢。
    • @MADARAMINOSHI:如果你想通过图形编程来沾沾自喜,我推荐 ShaderToy:shadertoy.com - 如果你正在寻找“稳定”的图形编程环境,这不会被弃用并且对初学者友好,看看 WebGL。 WebGL 源自 OpenGL-ES。就着色器而言,OpenGL(桌面)、OpenGL-ES(嵌入式、移动)和 WebGL 之间只有很小的区别。所以你在 ShaderToy 上学到的东西可以立即应用到相关的 API 上。
    猜你喜欢
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多