【问题标题】:What is the simplest way to render a 3D cube with a single lighting source?使用单个光源渲染 3D 立方体的最简单方法是什么?
【发布时间】:2014-04-18 00:24:08
【问题描述】:

下图是一个糟糕的 Photoshop 三维立方体模型。

这是我的参数:解决方案必须...

  • ...在我的小巧但忠实的 Macbook Air 上编译和运行不使用 Windows 模拟器,如 wine
  • ...运行时生成一个看起来与上述模型相当接近的窗口
  • ...只使用免费工具(“免费”如“演讲”和“啤酒”)
  • ...使用 C(不是 C++ 或 C#)
  • ...能够渲染从编译时定义的不同角度观察的立方体,可能使用预处理器宏
  • ...利用 GPU

喂!

潜在资源:

【问题讨论】:

  • 地球上几乎所有的 OpenGL 教程都涵盖了这一点...google.com/search?q=opengl+tutorial
  • @DietrichEpp - 感谢您的意见!但是,如果谷歌搜索“opengl 教程”足以让我立即开始看到结果,我就不会费心发布这个问题了。
  • 我得到的第一个链接是 NeHe,旧版教程将引导您在第 5 课之前完成制作立方体。而且他们提供了 OS X 代码。
  • 我之前确实偶然发现了这些教程;请参阅 Mark Stevens 的回答中的评论主题,了解结果如何......
  • 那么使用 Cocoa 是不能接受的?然后使用 SDL 或 GLUT。两者都可以在 OS X 上正常工作。NeHe 仍然提供源代码,但您可能需要调整 OS X 的构建系统。(为什么 Cocoa 不可接受?)

标签: c opengl graphics 3d


【解决方案1】:

我会去 Nehe 教程,1-5。到 #5 时,您将在 OpenGL 中渲染上述立方体。

这些教程是纯 C 语言,但它们在页面底部提供了指向您可能想要使用的几乎所有语言的端口的链接。

Nehe OpenGL

【讨论】:

  • 谢谢,看起来这可能是完美的。我一直看到人们到处谈论“nehe”,但我忽略了教程链接,因为它们将它们放在“Legacy”标题下。我想我应该更冒险!
  • 嗯...看起来本教程假设您在 Windows 上使用 Visual C++,这意味着它可能无法满足我的问题的参数。我会继续阅读,看看当使用 OS X 和 C 时,兔子洞会走多远。
  • 是的,它们是遗留,因为它们不使用现代着色器技术。但它们仍然可以正常工作并满足您的要求。在“立方体”之后,您可能想看看着色器,但无论如何您都需要一个完整的 OpenGL C 程序来托管着色器。
  • 本教程将引导您了解 VC++,但在底部有指向几乎所有其他编译器/操作系统的端口的链接 - 包括 2 个不同的 MAC 版本。
  • 啊,对不起。我想也许这就是他们真正所说的“遗产”的意思。
【解决方案2】:

您将要从 OpenGL 开始。这是唯一完全符合该法案的东西。话虽如此,如果您以前从未编写过 C 代码……这将是一个沉重的开始。

我会先访问This site 并学习 C,然后再使用 OpenGL 和图形。

【讨论】:

  • 对不起,我的问题应该更清楚:我已经知道 C,事实上我以前使用过 SDL。我将这个问题添加到 StackOverflow 是因为我在这里没有看到一个好的现有示例;即使最佳答案只是指向一个非常可靠的教程的链接,SO 以这种方式涵盖更多内容也会很好。
【解决方案3】:

NeHe 教程已过时且无法编译,因此我写了this gist 以使用符合我问题所有参数的工作 sn-p 来回答我自己的问题。

它可以像这样在 OS X 10.9.2 上编译:

$ gcc -Wall -framework OpenGL -framework GLUT -o my3dcube my3dcube.c

它大量改编自 this gist 中的代码以及 Mark Stevens 回答中链接的 NeHe 教程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多