跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 最近想写个 2D 游戏的引擎,我有很多问号。请问下如何入门基础 OpenGL, 以及不久的未来是不是 vulkan 会取代 OpenGL,想找个起点,我想明天开始补些知识
未分類
29 8 月 2021

最近想写个 2D 游戏的引擎,我有很多问号。请问下如何入门基础 OpenGL, 以及不久的未来是不是 vulkan 会取代 OpenGL,想找个起点,我想明天开始补些知识

最近想写个 2D 游戏的引擎,我有很多问号。请问下如何入门基础 OpenGL, 以及不久的未来是不是 vulkan 会取代 OpenGL,想找个起点,我想明天开始补些知识

資深大佬 : ChrisFreeMan 8

你们都是我大哥

大佬有話說 (24)

  • 資深大佬 : lcdtyph

    opengl 教程很多啊,零基础的话直接去看 learnopengl-cn.github.io 就好了。
    vulkan 建议对 gpu 硬件架构比较了解之后再学习,它的 api 太底层了,牺牲了便利性换来了自由度和渲染效率

  • 主 資深大佬 : ChrisFreeMan

    @lcdtyph 好的,多谢

  • 主 資深大佬 : ChrisFreeMan

    请问 openGL 未来会消亡吗,我看知乎上说,未来 OpenGL 会被 Vulkan 给取代,以及苹果都呈现放弃的姿态了。学习 OpenGL 对于过度到 Vulkan 有帮助吗,我害怕 49 年入国军

  • 資深大佬 : kokutou

    你先学个容易学的现在资料多的。。。
    流程搞懂了切过去很简单的。。。

  • 資深大佬 : codehz

    2d 游戏引擎的话,现在你用啥都差不多,因为最重要的部分根本不是图形 API,还不如找个简单点的先把框架搭建起来,实在要移植也可以用 ANGLE 凑合用下

  • 資深大佬 : xarthur

    对于引擎来说重要的不是图形 API,主流的商业游戏引擎应该应该都同时支持 Metal 、DirectX 、OpenGL 、Vulkan 吧。

  • 主 資深大佬 : ChrisFreeMan

    多谢各位回复,其实我是纯个人兴趣的,不是想要搞个什么商业引擎,没那么牛逼,就是想进阶一下基础图形知识。。抱歉没说清楚。我觉得我还是先自己探索一番,再来提出更有价值的问题。

  • 資深大佬 : joshua7v

    图形 api 和图形学知识是两码事
    想补理论基础,建议从软件渲染(cpu)开始

  • 資深大佬 : bitdepth

    opengl 是不會過時的,vulkan 其實不適合做繪圖用途,太過複雜,大多數場景沒有意義。
    而 directx3d 支援只是選項而已,懂 opengl 就會 directx3d 而且現代 windows 平台哪個不支援 opengl ?

  • 資深大佬 : typetraits

    基础图形知识从手撸渲染管线开始,再搞个 CPU PBR 渲染就差不多了
    我学图形学的时候根本没用过 OpenGL,一开始接触的就是 Vulkan,然后反向照着 Vulkan 接口实现了 CPU 渲染器
    我个人认为接触一下 Vulkan 是有好处的,虽然繁琐,但 Vulkan 设计上非常接近 GPU 的工作原理,可以让你在学习 API 的同时对 GPU 的工作流程有大致的了解

  • 資深大佬 : Mutoo

    苹果已经明确宣布将从 macOS 上移除对 OpenGL 的支持,所以如果你要做跨平台的游戏的话,支持 Metal 几乎是必须的。如果自己想实现一个简单的游戏引擎的话,可以使用 bgfx 来支持跨平台渲染后端,你只要注重游戏引擎的其它部分,就行了。
    https://github.com/bkaradzic/bgfx

  • 資深大佬 : Mutoo

    另外如果对跨平台渲染有兴趣的话,推荐你这个系列:
    https://marcelbraghetto.github.io/a-simple-triangle/

  • 主 資深大佬 : ChrisFreeMan

    @Mutoo 看起来是干货,必须道个谢

  • 主 資深大佬 : ChrisFreeMan

    多谢各位大哥的回复,我都看了,我目前不知道怎么回复你们,这对于我来说是一个未知的领域,我需要一点点了解

  • 資深大佬 : frankmdong

    跟着 theCherno 写游戏引擎吧,也是先做的 2D 的功能,渲染 API 也封装了一层,一开始用的是 OpenGL,后来他在自己的 develop branch 接了 Vulkan,https://www.youtube.com/playlist?list=PLlrATfBNZ98dC-V-N3m0Go4deliWHPFwT
    这个我也跟了一大半了,跟着封装了不少渲染相关的接口,学跨平台的处理,还用 ImGUI 做了个编辑器。
    渲染流程不太熟悉的话可以先学学 OpenGL,他也有单独的 OpenGL 的系列教程。
    基础牢靠了,之后再在 Vulkan 、DirectX12 、Metal 这些新图形 API 里面挑一个学。

  • 資深大佬 : levelworm

    2D 没什么东西啊,我记得你之前不是用 c#写了一个吗?

  • 主 資深大佬 : ChrisFreeMan

    @levelworm 那玩意用的是别人封装比较高层的框架写的,只是一个简单的关卡编辑器,很多细节的东西还是不是很了解

  • 資深大佬 : levelworm

    @ChrisFreeMan 之前建议用 C++和 sdl2 我觉得可以试试看,相对底层,封装的不是很多。如果真的想要更底层,可以看看 youtube 上有个系列是 c game programming from ground up

  • 資深大佬 : levelworm

    说错了,是这个:
    https://www.youtube.com/playlist?list=PLlaINRtydtNWuRfd4Ra3KeD6L9FP_tDE7

  • 資深大佬 : dtysky

    直接上 WEBGPU,简单的很。

  • 資深大佬 : GeruzoniAnsasu

    ………… CPU 渲染器是什么鬼提案
    他们都被 opengl 吸引了,忘记了这是个 XY Problem
    而且 2D 游戏怎么还能扯到 PBR 的
    其实游戏引擎(尤其是 2D )跟图形 API 关系没那么紧密
    2D 引擎不知道你考虑的功能有哪些,切图、变换、物理、对象管理?
    如果你想写的真的是 2D 引擎,那么考虑问题的顺序应该是 top-down 的,先计划最终能达到什么效果,然后再把每一层的抽象定好,然后在往抽象出来的框架里塞代码。
    比如假设我的目标是,没有引擎 UI,用代码来创建对象,没有 UI 系统,没有预设物理,那么我可能至少需要下面这些东西:
    – 事件循环(渲染和计算至少要异步化对吧)
    – 输入管理器(「游戏操作」和「物理输入」的映射,比如组合键)
    – sprite (对象)管理器(切图、对象关系和变换、shader 或材质、包围盒、碰撞检测……)
    – 动画管理器(图片组、动画混合)
    – 渲染器
    每个组件都有很多工作要做,因此强烈建议参考成熟引擎的代码结构,你能一目了然地从文件名就看出需要做什么:
    https://github.com/cocos2d/cocos2d-x/tree/v4/cocos/2d
    具体到你提到的 opengl/图形 API 上,如果你是自顶而下考虑的,自然会想在渲染器和图形 API 之间抽多一个虚拟层,让引擎本身诸如创建 texture,应用 shader 这些事与具体 API 隔离开。所以具体到图形 API 这一层要考虑的就是
    – 怎么(分别用 opengl/dx/vulkan )画图片
    – 怎么(……)正确混合半透明的图片
    – 怎么( )画文字
    – 怎么变换摄像机
    – ……
    那方向就清晰了,先搞清楚怎么用 opengl 把图画出来,然后就可以开始撸了。如果怕 opengl 要凉,那就用 dx 呗,反正到这一层无论用什么 api 要干的活都是同样的那些而已

  • 主 資深大佬 : ChrisFreeMan

    @levelworm 好家伙,一个小时起步,我挑两集看看

  • 主 資深大佬 : ChrisFreeMan

    @GeruzoniAnsasu 很详细了朋友,有心了

  • 資深大佬 : choiceice

    GAMES101,202 图形学课程

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具