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

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

查看:0|回复:10

【环境】计算机图形学为什么这么难学?

 attach_img

2

帖子

5

回复

6

积分
最后登录:
2025-04-04 16:29
注册时间:
2023-03-12 23:24
楼主
  发表于:2025-04-04 20:38:18|查看用户信息

计算机图形学为什么这么难学?

我最近在看涉及图形的旋转,错切 都涉及到矩阵之类的,看得我云里雾里。


3

帖子

8

回复

10

积分
最后登录:
2025-04-04 20:17
注册时间:
2024-07-11 15:29
1 楼
  发表于:2025-04-04 20:40:15|查看用户信息

我最初学图形相关的东西时,不要说矢量、矩阵,连三角函数都不没学过,所有东西都只是当作黑盒,只知道这样算能做到什么事情。图形学有一个好处是,很容易看到结果,甚至是能实时互动地检查结果。后来我上中学才慢慢了解到相关的数学,就好像掀开了黑盒看到里面,慢慢知其所以然。如果有足够的时间,不是赶着考试或面试,这种漫长的过程其实也没有太多问题。


另外,对一个事情的了解可能随着学习更多知识,以至于在更多应用当中,会逐步更深入了解个中的方方面面。例如学习了抽象代数,就会把矩阵和其乘法考虑成非交换群,以至于可以考虑不用矩阵而是其他更局限的群来表示几何变换,也了解到旋转矩阵的冗余及非正交等问题。之后还可用几何代数等方法更直观地表示一些几何关系。


1

帖子

5

回复

6

积分
最后登录:
2025-04-04 17:01
注册时间:
2023-03-12 11:23
2 楼
  发表于:2025-04-04 20:41:40|查看用户信息

你说“涉及图形的旋转,错切都涉及到矩阵之类的,看得你云里雾里。

我就问你,你一个星期看一个旋转矩阵,一个星期看缩放矩阵,一个星期看平移矩阵…….,看不懂的网上各种查,以此类推,什么啃不下。

我打赌按照这种方式,你倒着把各种矩阵写出来都可以。

一般的知识都熬不过时间的软磨硬泡,啃不下的是你想短时间内掌握全部。


4

帖子

8

回复

10

积分
最后登录:
2025-04-04 18:57
注册时间:
2023-05-19 10:16
3 楼
  发表于:2025-04-04 20:43:35|查看用户信息

不难学,是老师不够好。

我上过三次图形学。

第一次本科学校,上完就忘。

第二次研究生学校,成功在graphics坑底躺平。

第三次博士生学校,作为TA,我想说,原来老师是嚼烂了知识喂给我们使得我们可以直接消化,然而嚼烂这个过程需要很多年的沉淀。

所以自学是可以,知识嚼烂消化需要时间,而反复自我拷问和思考解答是你理解问题的唯一工具。嚼硬骨头这个过程怎么可能不硌牙呢?

至于要有突破,你得看很多raw material,知道怎么把它们用到graphics这个问题空间内,要如此熟练地倒换,就需要有深度分阅读,拷问,和思索。实验,失败,总结再实验,最后,或许你会有一点突破。


4

帖子

5

回复

8

积分
最后登录:
2025-04-04 17:20
注册时间:
2024-06-15 22:06
4 楼
  发表于:2025-04-04 20:45:50|查看用户信息

个人经验就是有耐心,因为CG的系统教育在我国非常稀缺,我依稀记得二十年前,本科你不可能接触到CG,另外那时候做CG基本是图像处理…当然也可能我见识不足(侧面印证当时CG有多冷门)。

缺乏基础环境 => 一切要自学

相比播猫上网的年代,目前搜资料其实方便了几个数量级。

M.V.P 几个变换,我当时也看了许久。

就是到近几年,AI CG兴起,也一样要自学了解这些前沿知识,这大概就是CG的魅力,有点像挖宝藏,挖到东西之前,都是体力活,但是挖到的那一刻,都值了。

数学只是一方面,另一方面是CG其实往往要求工程技术也要跟得上,这个就真的是只看书绝对不行的了,这方面的补足没有捷径,唯有耐心,慢慢刚吧……


5

帖子

5

回复

9

积分
最后登录:
2025-04-04 20:09
注册时间:
2023-03-12 21:55
5 楼
  发表于:2025-04-04 20:46:51|查看用户信息

图形学入门很多人死在了数学上。

真正学好图形学,理解透彻这种,数学是第一道卡。

怎么才算是学好这门课呢?

图形学基本明白它数学原理,大概知道怎么推导,是真正的理解它。

举个例子:

比如,知道一个点是怎么被转到屏幕上,里面涉及到的数学原理。

比如,怎么采样的,背后数学是什么,

再比如,阴影,各类贴图的处理,背后是怎么推导的。

当然图形学内容太多了,举的比较简单,深学数字非常必要,很多人为什么入门难,是真的死在c++上了吗?

不是,都在数学上。

为什么数学系的同学入门图形学很轻松

外行,转行过来的,非计算机专业的的同学学起来痛苦,也是这个原因。

好好学习数学,图形学将变得容易入门。


3

帖子

6

回复

8

积分
最后登录:
2025-04-04 20:38
注册时间:
2023-03-12 21:47
6 楼
  发表于:2025-04-04 21:08:43|查看用户信息

本人本科学习给水排水专业,研究学习水工结构专业,毕业后自己学习图形学,然后进入这个行业十几年了。


当年是因为我的研究生论文是做一个程序,也是误打误撞进入图形学这个行业,目前看来结果还不错,当然我入门的过程也是克服了不少的困难,也曾经碰到问题不会解决,在网上到处找好心人求助,真是一把心酸泪,下面说说的我看法。


个人感觉对于初学者来说可能有一定难度,但实际上只要入门了其实并不难,下面咱们说道说道。


首先整个图形学用到的数学知识并不困难,很多人看到一些图形学上的论文,感觉上面有很复杂的积分推导,但我们在工作中,其实只是使用,我们并不需要真正的理解,只要大致懂了,然后直接使用其中的代码就行了。

我们用的数学知识也就是一些矩阵变换,坐标变换,刚开始可以会有点困惑,其实看得多了自然就理解了,没有什么难道,把大学学的线性代数的部分内容学会就行了。

至于更高深的数学知识,其实没有,微积分什么的基本上不需要。


第二,就是C++,这个其实并不难,多编程自然就会了。


第三,如果当主力程序员,可能需要懂一些设计模式。


其实也就这些东西,至于一些图形学的观念,多做几个项目也就慢慢懂了。


总得来说,你只要大专毕业,只要坚持学习,都能学会,没什么难度大的。


你觉得难度大,可能问题并不在图形学本身上,可能不懂一些调试技术,在工作中碰到问题没有人带你,也没人教你,实际上这些问题要有人教,都不难。


当然了提出观点不算什么,主要是能帮助大家解决问题,我觉得不论你是学生,还是刚毕业的职场人,学习程序,或者做项目都需要一个高手带入门。


4

帖子

8

回复

11

积分
最后登录:
2025-04-04 19:07
注册时间:
2023-02-26 14:02
7 楼
  发表于:2025-04-04 21:10:36|查看用户信息

让我想起了20年前学习图形学的时刻。

现在回忆一下, 一个可能是最佳的学习路线我认为如下:

第一步,找个3d软件(3dsmax,blender,c4d这种)折腾一下,不想折腾,看看他的建模、动画视频教材也可以。培养一下3d图形的感觉。

第二步,找一个opengl或d3d的入门教程,一步步写一下,先不要管那些数学概念,因为比较抽象。你应该先建立基本的视觉认知,把不懂的概念当成是黑盒子就好了。

第三步,开始写一些自己想到的功能或效果(譬如动画,阴影啥的),你自然就会慢慢学习并应用到那些数学概念,但这个时候你已经有足够的认知来帮助你理解了。


2

帖子

3

回复

5

积分
最后登录:
2025-04-04 19:25
注册时间:
2023-07-20 08:45
8 楼
  发表于:2025-04-04 21:13:27|查看用户信息

当你拿着NS玩塞尔达的时候,当你抱着Pad疯狂飙车的时候,甚至你看新海诚动漫觉得每一帧都是壁纸的时候,你想想这些画面效果,背后可都有计算机图形学。

另外你再想想,学习其他计算机学科,大部分可都是直面黑色的控制台,但图形学可以让你的代码化身各种炫酷特效。

言归正传,图形学之所以难,是因为对前置学科的要求比较高。

首先就是数学这块得过关,图形学主要玩的就是算法,对数学要求很高,主要有:

线性代数:基本建模,栅格化,照明,碰撞检测等,基本都在线代范畴;

空间分区结构:四叉树,KD树,BVH等。实时渲染系统中,基本都使用到这些结构来进行渲染量优化。此外光子映射,碰撞检测等也会用到。

样条线:主要是在3D建模中,创建外观更自然的表面等;

信号处理:典型的案例就是抗锯齿。另外小波变换等其他应用程序中也有涉及。

蒙特卡洛积分:解决全局照明问题;

微积分:模拟任何自然现象,例如流体,人群,火灾等,都需要求解控制这些现象的微分方程;

其次是开发能力,光懂数学、懂算法肯定是不够的,还得把算法转化为编码来实现想法,这部分有其他答案介绍了,就不展开细说了。

最后,掌握以上部分后,就要开始痛苦地实践了,但这方面工作的门槛比较高,目前题主应该还处于早期的阶段,可以先去找一些资料进行学习,OpenCV这种开源的库,也可以了解一下,先做到可以使用的程度,之后进步了,再去看看内部代码,会有更多的帮助。


3

帖子

9

回复

11

积分
最后登录:
2025-04-04 18:57
注册时间:
2024-07-11 15:29
9 楼
  发表于:2025-04-04 21:15:32|查看用户信息

如果你不是搞图形学研究的

你记住:数学也只是工具

你不需要搞懂数学原理

你只需要知道怎么用就行了

比如旋转,你别管旋转矩阵的数学原理是咩

你只需要知道,旋转时候,apply进去的变换矩阵是啥就行了

剩下的证明,管它那么多

就是在数学系,很多数学家搞科研的时候,也是如此

你不可能在每次用公式定理的时候都去证一遍,没那个时间和精力

你大学学高数是怎么学的,现在就可以怎么搞

一样的

3

帖子

5

回复

6

积分
最后登录:
2025-04-04 19:13
注册时间:
2023-02-26 14:02
10 楼
  发表于:2025-04-04 21:17:33|查看用户信息

计算机的图形学涉及很多的内容,有基础的原理,包括一些算法,以及宏观上的图形处理的pipeline,所有的一切汇集到一起就是GPU的体系结构。现在学习计算机图形学最好的上手材料就是OpenGL(一个工业标准的API,对于每一个图形显卡的vendor来说,他们的显卡对于同样的输入必须给出同样的输出,但是具体的内部实现每个公司有自己的实现)。


如果想要清晰的了解图形学的原理就要看书,但是课本上的理论如何转换成一个个GPU的产品的,我个人认为必须到公司里面去学习。

你可以自学OpenGL,渲染一个三角形,但是每一个的primitive在GPU内部如何做位置转换?

为了能够精细的展示一些细节,GPU如何实现tessellation?

在所有的点的位置在屏幕上确定之后又如何的做rasterization?

在做每一个 shader 的处理的时候如何生成线程?

线程如何封装成warp在GPU上调度执行?

很多的pixel又是如何做的interpolation?

NVIDIA, AMD, Samsung, apple, Qualcomm, ARM都会有自己不同的architecture design,这些内容都是一个公司自己的财产,不可能在学校学到,只有在这些公司工作,才能对计算机图形学有一个清晰的概念。


共 1/1 页

0

帖子

0

回复

0

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