最全面、最前沿、最专业的游戏研发实战

提供最全面的游戏研发技能分享,让您在最短时间变成高级游戏工程师

查看:0|回复:3

【文档】手游程序员想学习图形学知识,图形学、GL/DX、Shader这些有什么合适的学习顺序吗?

 attach_img

3

帖子

2

回复

4

积分
最后登录:
2025-03-24 19:45
注册时间:
2023-07-18 12:34
楼主
  发表于:2025-03-24 23:07:31|查看用户信息

本人是从事Unity开发的,公司只有我一个客户端。大部分时间都是写gameplay,但是也要做其他所有特效、渲染、物理这些。遇到需要图形学相关的东西(比如光照、卡通渲染、描边、遮挡、顶点动画等等),也只能各种找插件,虽说现在U3D的插件很多,但总是一知半解也是不好的,所以一直想抽时间学习些图形学知识能用到实际开发中。


开始把unity shader的语法大概看了,奈何没任何基础知识,还是没法写自己想要的效果。然后又上知乎看了很多相关问题,了解了很多学习方法,也打算照着Milo Yip 老师的书单去学习。


当时的想法就是 图形学基础知识(补充数学知识) -> OpenGL / DX(补充C++) -> 实时渲染 -> shader/mesh/animation 这样,但以我每天只有一两个小时业余时间来看,学完怎么也要两三年了。。


而且我到现在看基础理论,刚看到 画线、画多边形算法这些,就在想虽然还没了解过GL 或是DX,但这些理论应该早有API实现了吧,我现在从这么基础的学,真的对项目开发有必要吗,而且还要额外补数学知识。虽然基础很重要,但能不能先学实际用得着的,基础以后慢慢补呢。。


然后又想学一个API,又怕中间很多地方不懂还要重回去学基础知识,而且还要补C++,但是我又感觉U3D根本没机会用OpenGL或是DX啊,还是说我应该直接跳过这些,去学渲染相关的知识,就可以写出各种高大上的Shader了? 然后我又发现还有mega fiers这种高大上的插件,还有各种动画插件,衣服头发飘动,水流,各种粒子效果,我去,不说全能做出来吧,至少要理解其中的原理,自定义一些效果,难道还是要回头学图形学基础知识,甚至数学、物理知识?


好吧,我知道我真的水平很挫,又很纠结。我知道只要从头开始,每天一点一滴的学,总有一天有收获。可是我实在是等不了啊,工作中没需求还好,突然要做某个效果的时候,就只能去找插件了,找得到用起来也是各种效率或是其他问题,而且挫败感很强。每天可以学习的时间也不多,如果从基础学起,实在不知道要多少年才能摆脱低级苦力的阶段。。。


希望各位有经验的老师能不吝赐教


4

帖子

1

回复

4

积分
最后登录:
2025-03-24 20:35
注册时间:
2023-03-11 17:03
1 楼
  发表于:2025-03-24 23:08:06|查看用户信息

这个事情不存在顺序。

你学图形,从头写渲染器的周期太长,所以大部分人会从现有图形API入手。也就是说,图形学和DX/GL的学习过程是同一个。对于现代的DX/GL来说,固定流水线已经被抛弃,所以你想画点东西都要靠shader,所以,这学习过程还是同一个。


4

帖子

4

回复

7

积分
最后登录:
2025-03-24 20:46
注册时间:
2023-03-12 12:10
2 楼
  发表于:2025-03-24 23:09:09|查看用户信息

如果是单纯指望一步步是学不完的……像我这种(马上滚蛋毕业)的学生党也发现各种时间不够啊啊啊-。- 但是从我个人经验来看,有一定基础之后看代码会快很多。很多简单的插件大概看下shader/script就知道咋回事了,复杂的东西稍微跟一跟也问题不大。总的来说目前没有碰到过一眼看上去完全不懂的情况……反正很多东西就是tricky的去骗就行了恩恩,我最近正准备有空研究marmoset的东西(这里插一句题外话,其实很多时候你光靠代码还搞不定,需要额外看看美术资源咋弄的...


我是建议题主完整的学一下OpenGL或DX即可,譬如龙书看一遍+动手做做,基础打好之后能够对应到Unity的管线上就差不多啦~ 你直接去学渲染知识,最后落到实现上还是逃不掉API级别的认识的。数学知识什么的,还有物理、动画,有大概认识就行了,等需要的时候再深入。这方面可以看看milo大神翻译的游戏引擎架构,挺适合入门的。。。他的书单很丰富,适合有毅力、有时间慢慢读;但是对于题主这种情况我觉得还是见效快、有及时反馈,才能更加有动力学习下去=w=


ps. 画线、画多边形这个有点过于底层了,让我直接写也完全搞不定……必须查资料,反正大多数我们也不用操心到这个层面。。。虽然说多学点东西不吃亏,但是没必要投入精力,特别是空闲时间不多的情况下


7

帖子

1

回复

6

积分
最后登录:
2025-03-24 19:14
注册时间:
2023-03-12 22:56
3 楼
  发表于:2025-03-24 23:10:33|查看用户信息

推荐学习c++,因为这货支持写dx和gl(C形式写法)

dx难于COM以及各种表面渲染(当时就是因为各种不会com才跳到gl)

gl难于状态机和各种渲染开关。

但就是学习dx只能在微软平台跑,但不担心版本。gl倒是跨平台,但各种分支版本感人。

学了gl或者dx就要到可编程渲染器(shader)了,这货非常重要,能做出一些独特的画面效果,比如镜面反射,hdr,泛光之类的特效。你看那些fps跨时代画面,一半有建模的功劳,一半就是着色器的盒饭→_→。而利用帧缓冲区功能以及gpu并行运算的天生优势,大牛们还能利用着色器进行大量数据运算,比如比特币挖矿,网格小球重力模拟,人物头发碰撞模拟(或者是布料模拟)等等,这些都是cpu比较吃力甚至于无能为力的,而gpu恰好满足需求(除了挖矿(๑• . •๑))。由此可见学习shader是多么的重要。


共 1/1 页

0

帖子

0

回复

0

积分
最后登录:
1970-01-01 08:00
注册时间:
1970-01-01 08:00
会员必须登录才能发布帖子! 点击登录