站内搜索

搜索

手游源码-游戏源码-棋牌源码资源网-亲测源码-游戏搭建-破解游戏-网站源码-qq技术

100金币/天 购买
100金币/天 购买
100金币/天 购买

计算机图形学为何学习C++编程语言?(一)

13

主题

16

帖子

2

金币

红钻会员

Rank: 2

积分
86
发表于 2022-1-8 13:04:35 | 显示全部楼层 |阅读模式
一、动机(为什么)

1. 为什么要学习 C++ 编程语言?

编程语言有很多种,越来越多的编程语言(如Java、JS、GO等)越来越好学。作为一种可以直接与硬件打交道的编程语言,C/C++在某些领域(如计算机图形学、GPU编程、游戏开发等)仍然是必须学习和使用的编程语言。

2. 同时学习计算机图形学和C++面向对象编程

计算机图形学应用范围广泛,潜力无限(参见作者撰写的科普文章《什么是计算机图形学?》)。作者一直从事并热爱计算机图形学的教学和研究工作。大部分与计算机图形相关的工作都需要使用C++语言进行算法实现和研发(当然也有其他语言或科研工作)。笔者在长期的教学和科研过程中,在学习《计算机图形学》的过程中,找到了一套同时学习和掌握C++面向对象编程的有效方法。这是一个用一块石头杀死两只鸟的过程。

3. 你能学到什么?

上面提到的“一石二鸟”的学习方法自学编程做游戏,可以通过学习作者所教的内容来实现。

2020年中国科学技术大学“计算机图形学”本科课程

意识到。通过学习本课程,您可以快速学习和掌握 C++ 面向对象的编程思想和计算机图形学基础知识,包括:

(1)C++面向对象的编程思想(封装、继承、多态)和方法;

(2)VS编程环境,cmake编程配置,QT图形编程;

(3)图像编程,入门;

(4)计算机图形学的基本内容和算法实现(包括最小曲面、曲面参数化、布料模拟、GPU编程、光路追踪渲染等)。

4. 需要什么样的基础?

本课程的学生多为数学系本科生,也有不少非数学系(如计算机、信息、物理、工程等)的学生,比较适合。

有的同学学过C语言;有的连C语言都没学过,直接学C++。只要对编程感兴趣(至少不反感),愿意实践和思考,1-2个月内就能掌握C++面向编程的思维。

只要学习方法正确,学习之路就不远了。

二、方法(HOW)

1.学习方法

任何编程语言都一样,学起来并不难,关键是要有方法。“方法不对,努力是白费的。” 如果学习方法到位,学习的效率和速度会快很多。

最有效的学习方法是“任务导向学习”。因此,作者在《计算机图形学》课程中,将图形学的一些基础知识点和技术点精心设计成几个“功课”,由简单到复杂,循序渐进。每个作业都可以让你通过完成作业来学习和掌握一些基本的知识点和技能。后一个作业在前一个作业的基础上增加了一些新的任务,这样你就可以通过努力“达到”而不会越过太多而变得沮丧和失去信心。通过这一系列的功课,你可以不断的让你掌握越来越多的知识点和技术点。

2. 学习过程

简而言之,学习方法是“任务导向学习”。然后就是简单的学习过程:练习、练习、练习……只要你通过自己的努力(思考、探索、练习)一个一个完成这些作业的任务,解决这些作业中出现的问题任务,您将能够掌握 C++ 编程。以及计算机图形学的基本知识和技能。

如果不自己尝试和实践,任何知识和方法都无法成为自己的技能和能力。因此天外神坛,您必须一一完成课程作业。对于每一个作业,不要先看参考代码或优秀的代码,而是通过自己的独立思考和实践来完成。如果遇到困难,可以先通过查书、上网等方式自行解决。或者请教周围有经验的同学或助教等,他们的“建议”可以让你意识到自己深受困扰。

当你通过自己的努力不断解决这些任务和困难时,你就会有持续不断的成就感和“顺风顺水”,你会不断地有自信,你就能清楚地看到自己的成长和进步。

许多学生通过自学、观看课程视频和完成作业,学习了计算机图形学并掌握了C++面向对象编程。他们在 2-3 个月内迅速提高了编程技能。浓厚的兴趣。无数案例证明了这一点!他们可以做到,你也可以!

3. 学习错误

编程可以看作是一种技能,比学习数学要容易得多。就像学游泳一样,你必须跳入水中折腾、思考、练习才能学习。如果你只学习理论知识而不下水练习,你永远学不会游泳。

因此,您绝不能啃编程教科书或书籍。在敢于编程之前,必须把每一个语法点和知识点都学透。这与学习数学不同。一定要边做边学,找不懂的教材或资料,及时解决问题。围绕作业目标,学习和思考相关知识点。暂时不需要的知识点不需要花太多时间学习(可能会涉及到后面的功课,以后做功课的时候可以去深造和工作。深思)。随着您从事更多的家庭作业或其他项目,您将学到越来越多的知识和技能。

三、动作(什么)

1.C++ 基础(1-2 周)

先找一本合适的教材(不多,就一本经典教材),把C++的基本语法通读一遍,或者做少量的练习,不要深挖语法。这样就可以对它有一个宏观的认识,知道教材的哪些章节有哪些知识点,记住这些“知识指针”。

2.类打包和STL(1-2周)

完成“C++ 课前热身练习”,该练习由 5-6 个小练习组成。一定要独立一一练习,然后和参考代码对比。

这些练习的逻辑是:

(1)首先通过封装对象数组,掌握动态内存分配与管理、类构造与析构、运算符重载等;

(2)改进之前的数组对象,不改接口,改进接口的实现方式,提高效率,明白对象是用户通过接口使用的,用户可以不关心实现接口,但不同的实现会影响用户体验;

(3)把数组对象改成类,掌握模板编程;深入理解STL中的实现机制;

(4)掌握STL和list、map等容器的使用;

(5)静态链接库lib和动态链接库dll的原理和使用初探。

3.基于QT的GUI编程:类继承与多态(1周)

通过作业1(绘图小程序),学习基于QT的GUI(图形界面界面)编程(窗口、鼠标交互、GDI绘图等),初步学习类继承和多态。

通过本次作业,您对对象的三个特性(封装、继承、多态)有了初步的了解。

4.图像变形:固化类继承和多态(1 周)

通过job 2(Image),实现了2种图像变形的方法。需要理解的是,这两种方法是一个图像变形任务的两种实现方式,实现多个类的继承和多态的关系是合理的。

通过这项工作,进一步巩固了对类继承和多态的深入理解和使用,未来可以主动进行类的封装和设计。

5.图像编辑:使用数学库 Eigen(1 周)

通过作业3(图像),实现了扫描线算法、稀疏方程的求解等。针对不同的方法,需要积极设计类的继承性和多态性,进一步巩固类的三个特性。

此外,学习使用现有代码和库(Eigen 等),而不必“重新发明轮子”,并学习集成和使用其他人的代码。

在练习和理解了前面的作业之后,您现在应该已经完全掌握了 C++ 面向对象编程。前几项任务是必须跨越的“障碍”!如果你通过了,接下来的作业就不会有太大的难度了,可以专注于学习计算机图形学。

6.计算机图形学基础

计算机图形学后期编程的基本方法是:在面向对象思想的基础上,先学会使用已有的框架,实现编程和图形算法,培养对编程和图形的兴趣,对它们有很好的理解. 控制心理学;随着你做的更多,你不会害怕编程和图形。以后随着经验的增加,比如对C++的高级语法、设计模式,或者渲染管线的好奇,我会主动通过自学来了解其中的原理。前期功课的“关卡”培养了你自学的方法和能力,主动学习新事物也不是难事。

作业4和作业5是关于几何建模的;作业6和作业7是关于物理模拟的;作业 8 和作业 9 是关于真实感渲染的。

7.学习计算机图形学的误区

许多学生(也是传统的计算机图形学教学方法)从非常基本的图形算法(例如使用框架构建、光栅化、变换、消隐等)或从底层编写渲染框架开始。这种学习方式往往不容易上手,学习曲线比较长,容易走弯路或失去耐心。因此,从作者多年培养学生的经验来看,这是一种效率较低的学习方法和学习曲线。

在现成的框架上,先围绕任务解决问题自学编程做游戏,一旦有了掌握知识和算法的心理,就不会感到害怕了。有了这些经验和能力后,回到过去搭建基础架构就不难了。

【后记】这里推荐的学习方法非常适合初学者,无数的实践也证明了它的有效性。当然,没有单一的学习方法。比如闫令奇老师的GAMES 101课程(课程主页,B站视频)也是自学计算机图形学的很好的课程。这里提供的方法仅供参考,希望对您有用!并享受图形和编程的乐趣!!来吧!!!

刘立刚

中国科学技术大学图形与几何计算实验室()

个人主页:~lgliu

电子邮件:

2020 年 7 月 14 日
【天外神坛】免责声明及帮助
1.重要:如果遇到隐藏内容回复后显示为代码状态,直接刷新一下页面即可解决此问题。
2.本文部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
3.若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4.如果本站有侵犯、不妥之处的资源,请在网站右边客服联系我们。将会第一时间解决!
5.本站所有内容均由互联网收集整理、网友上传,仅供大家参考、学习,不存在任何商业目的与商业用途。
6.本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

老群被封加此新群不迷路。
上个主题 下个主题 快速回复 返回列表 客服中心 搜索 QQ加群
上个主题 下个主题 快速回复 返回列表 客服中心 搜索 QQ加群

QQ|Archiver|小黑屋|天外神坛

湘ICP备2021015333号

Powered by 天外神坛 X3.4 © 2020-2022 天外神坛