V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
tioover
V2EX  ›  iDev

在 OS X 下怎么写新版本的 OpenGL?

  •  
  •   tioover ·
    tioover · 2015-04-21 14:14:29 +08:00 · 4200 次点击
    这是一个创建于 3489 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我要疯了……整整两天,我就想问问,苹果能不能用 OpenGL 3 或以上写代码?苹果说自己可以……但是……如果有的话请让我看看……

    网上的教程几乎不能画出三角形,固定管线(glBegin())可以,但是过时了。

    OpenGL Step by Step 这个教程,第一步让画点,点能画出来,但是到下一张简单的替换成三角形就画不出来了,函数调用什么的都一样,理论上来说点能画出来为什么三角形就画不出来……表现为一个黑黑的窗口什么都没有。

    这个教程 Learn OpenGL 提供的代码 https://raw.githubusercontent.com/JoeyDeVries/LearnOpenGL/master/src/1.getting_started/2.hello_triangle/hellotriangle2.cpp 不能编译,因为没有 glGenVertexArrays 这一系列函数,Stackoverflow 上搜,说加一个 OpenGL/gl3.h 头就有了,加上的确编译过了。但 GLFW 窗口创建失败,窗口指针为空。

    这个教程 OpenGL基础知识 上面说 OS X 只支持 OpenGL 2 ,然后提供了一些 OpenGL 2 的移植代码,但是苹果说新版本的已经能支持了OS X 10.9 Core Profile OpenGL Information。我希望还是用新版本的,心想可能教程过时了。

    这个教程网页上的代码和下载下来的代码不一样,网页上的代码是用 glGenBuffers 等一系列函数操作缓冲区的。可以编译通过,GLSL也能编译链接,但是就不给我显示三角形啊!!!和第一个教程一样!!!!!

    下载下来的代码是用 glGenVertexArrays,同样找不到这个函数,然后加上 gl3.h, 给出的例子也编译过了,依然是 GLFW 窗口创建失败,和第二个教程一样!!!!!!

    搜索了一下,说这是正确的行为,不允许创建窗口……WTF http://stackoverflow.com/questions/22213874/creating-opengl-3-3-context-with-glfw-in-mac-os-x-10-9 什么鬼,说要声明为 core 什么的,设置了没有用啊……

    然后又去 stackoverflow 找了一下,找到别人的解决方法 c++ - http://stackoverflow.com/questions/17602130/cant-draw-triangle-using-opengl 给了两段代码,OpenGL 3 版本的运行错误,GLSL 没办法编译,错误信息不支持这个版本,OpenGL 2 能够运行…

    我要死了……要被搞死了

    第 1 条附言  ·  2015-04-21 15:12:37 +08:00
    11 条回复    2015-04-21 15:08:38 +08:00
    kiritoalex
        1
    kiritoalex  
       2015-04-21 14:16:36 +08:00 via Android
    头像好萌>3<
    darkfall
        2
    darkfall  
       2015-04-21 14:36:25 +08:00
    头像好萌>3<
    bombless
        3
    bombless  
       2015-04-21 14:43:53 +08:00
    我晕,昨天晚上给你那个教程呢,你没试?
    tioover
        4
    tioover  
    OP
       2015-04-21 14:49:49 +08:00
    @bombless 你给我的教程在文章里面啊,也没用……
    不过有人给我一个方法了,我试试
    tioover
        5
    tioover  
    OP
       2015-04-21 14:50:10 +08:00
    @bombless 我提到的第二个就是你给的……
    bombless
        6
    bombless  
       2015-04-21 14:51:41 +08:00
    @tioover 哈哈,的确是的,对不起啊
    learnshare
        7
    learnshare  
       2015-04-21 14:53:04 +08:00
    tioover
        8
    tioover  
    OP
       2015-04-21 14:54:33 +08:00
    @learnshare 谢谢,不过 QT 太大了……

    有人给了我一个方法,我缓一缓心情再去试试……
    learnshare
        9
    learnshare  
       2015-04-21 14:56:03 +08:00
    @tioover Qt 只是让你玩 OpenGL 的途径之一,或许折腾的少一点
    bombless
        10
    bombless  
       2015-04-21 15:00:36 +08:00
    不过你可以直接试试 Rust 项目嘛。
    推荐这里面的例子:
    https://github.com/alexandercampbell/simple
    https://github.com/PistonDevelopers/piston-examples

    我 Windows 下不用配置, cargo run 就直接跑起来了
    tioover
        11
    tioover  
    OP
       2015-04-21 15:08:38 +08:00
    @bombless 嗯……这些在 OS X 下多多少少有点问题……我也是打算用 Rust 写,不过还是要懂(
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   914 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:45 · PVG 05:45 · LAX 13:45 · JFK 16:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.