• [F&Q:How To Learn Computer Graphic]如何学习计算机图形学


    本文开篇第一句话我觉得应该是:如果我有错,还希望各位朋友指证。我既不是图形学教授,也谈不上专业从事CG工作多么的富有经验。我只是一个觉得自己刚刚入门的初学者而已。很多人问我问题,但是很抱歉,你们的许多问题我实在没有时间一个一个的解释,我有自己的学业与工作,一周除了学校的学习还要把其它所有的时间都放在CG的学习上,包括写程序看论文看书,所以到现在,游戏基本上不会玩,连个女朋友都没有呵呵,因为,实在没有时间。

    Q:计算机图形学是什么?

    A:计算机图形学Computer Graphic是一门交叉学科,可以说与娱乐业的兴起有相当大的关联。它的主要目的是在现有计算条件下,根据实际需求进行数字图象的绘制。

    Q:我在学CG前要有哪些基础学科的知识呢?

    A:具体牵涉到的学科,很大程度上与你将来希望从事哪方面的工作,甚至和你想达到的层次息息相关。最基本的应该包括,微积分,数值分析,线性代数,离散数学,几何光学,以及一些绘图艺术知识,比如素描,电影摄影技术等。

    Q:CG究竟包括哪些内容?

    A:归纳起来:架构Architecture、渲染Rendering、物理Physics,而且三者之间交叉的成分很多。做物理的不可能完全不懂得渲染技术,弄渲染技术的不可能不对架构不熟悉。架构主要是软件方面,包括渲染工具、设计工具、游戏引擎的架构设计等。渲染包括光照理论,材质理论,表现手法等。物理包括动力学方面,比如流体模拟,角色动画等等。

    Q:我是个学工科的,为什么要求我学习摄影技术等艺术方面的知识呢?

    A:CG并不完全为了工程模拟,也为了非真实渲染,比如卡通动画等。一味的强调“完全基于物理”是一种偏激与不负责任的做法,因为,我们不仅办不到,也不会按照这个理论走下去。你能说梵高的画比达芬奇的好或者是差么?它们根本就不是一个流派,所以,无法比较。学习艺术知识是为了让你更好的理解技术的意义以及各自适用的范围。

    Q:我是个学艺术的,我害怕数学物理,甚至包括英语,我能学好么?

    A:如果你是个传统画家,那么,计算机对于你来说,很有可能除了看电影、听音乐、玩游戏、逛易趣淘宝、不小心看到我这篇F&Q之外没什么作用。但是如果你从事的是CG行业,并且如果想提高水平,我给你的答案就是:不可能。

    Q:英语很重要么?我很怕,我喜欢用中文的软件,看中文的书籍。

    A:首先我们要知道,中国的CG水平很差,欧美是这个星球上最强的。第二我们要看到,欧洲非英语国家受过良好教育的人群中,英语几乎都很好。相比德语、法语等语言,英语很简单。计算机是美国人发明的,CG的资料差不多几乎都是用英文书写的,包括网页、论坛、讨论组、书籍、论文。英语是这个行业的通用语言,重要性自然不用多提。

    Q:我的英语就是不好,怎么办?

    A:戒骄戒躁,多看多读多记。如果你天天看论文和英文书籍,考四六级的时候什么单词都没有背诵过什么题目都没有做过,一样能够高分通过。

    Q:我应该学编程么?

    A:是的,最少要会除了C++之外的另外一门语言,Python最好。事实上,一个成熟掌握3dsmax、maya等工具的工作人员都会写一些脚本程序;一个精通算法与编程的CG技术人员都会使用3dsmax、maya、blender等工具。你希望自己处处被别人牵着走么?

    Q:我应该从何种建模工具开始学?3dsmax还是maya?

    A:根据行业。3dsmax用于游戏中比较多,比如你把《鬼武者3》打穿后,Credit就会提到3dsmax,同样,还有《翡翠帝国》等。如果你是做CG动画的,那么无可例外的,从Maya开始吧。

    Q:我看到人家做的各种各样很绚丽的效果很羡慕,有什么快速取得成就的方法么?

    A:这要根据你学习和兴趣的侧重点。如果你是思维活跃并且喜欢用软件的话,那么多看教程,多看别人的作品,自己学习,就可以提高了。如果你是思维严谨不喜欢走捷径(比如我),那么最好还是先打消这些念头,先把noise读懂了再说。

    Q:我要看书,看哪些好呢?

    A:可以先找本《Fundamentals of Computer Graphics》或者类似的书籍先了解一下,然后根据你的兴趣,选择接下来的学习内容。

    Q:OpenGL和D3D我学哪个呢?

    A:它们本质上都是GDI的接口。如果想从事游戏行业,那么D3D是不可避免的。如果你想研究图形学本生,那么GL比较方面。当然,两者都掌握最好。

    Q:CG行业中的艺术家和研究人员最大的区别是什么?

    A:区别是,前者用手头的工具创造无限可能,后者用理论以及代码为艺术家提供创造无限可能的工具。

    Q:CG编程中有哪些常用的工具呢?

    A:由于CG编程是一门和性能密切相关的技术,不同于商业软件,所以你必须掌握多线程技术。此外,处理各种图形格式也是家常便饭,所以我们需要FreeImage、CxImage、OpenEXR等库。用C++处理3D模型的话,我们有lib3ds、COLLADA DOM,前者处理经典的3DS场景格式,后者处理COLLADA XML描述文件。

    Q:我想出国学习,我应该去哪里呢?

    A:各种条件都好的话,首选美国。当然,德国法国也不错。欧洲的学者和美国学者联系很密切,很多美国的学者都是德国人。

    Q:最后,有什么我应该时刻记住的么?

    A:抓紧时间,努力学习。

  • 相关阅读:
    minSdkVersion maxSdkVersion targetSdkVersion target 的区别
    C++实现DNS域名解析
    2018-2019-2 《网络对抗技术》Exp9 Web安全基础 20165114
    2019年课程设计本小组第一周——20165114
    2018-2019-2 20165114《网络对抗技术》 Exp 8 Web基础
    2018-2019-2 20165114《网络对抗技术》Exp7 网络欺诈防范
    2018-2019-2 20165114《网络对抗技术》Exp6 信息收集与漏洞扫描
    2018-2019-2 20165114《网络对抗技术》Exp5 MSF基础应用
    2018-2019-2 20165114《网络对抗技术》Exp4 恶意代码分析
    2018-2019-2 20165114《网络对抗技术》Exp3 免杀原理与实践
  • 原文地址:https://www.cnblogs.com/Jedimaster/p/1018525.html
Copyright © 2020-2023  润新知