【游戏引擎之路】登神长阶(十四)——OpenGL教程:士别三日,当刮目相看

news2024/12/30 3:11:10

【游戏引擎之路】登神长阶(十四)——OpenGL教程:士别三日,当刮目相看

2024年 5月20日-6月4日:攻克2D物理引擎。
2024年 6月4日-6月13日:攻克《3D数学基础》。
2024年 6月13日-6月20日:攻克《3D图形教程》。
2024年 6月21日-6月22日:攻克《Raycasting游戏教程》。
2024年 6月23日-7月1日:攻克《Windows游戏编程大师技巧》。
2024年 7月2日-7月6日:攻克《雅达利2600汇编游戏开发》。
2024年 7月7日-7月11日:攻克《x86/x64汇编语言》。
2024年 7月11日-7月22日:学习《3D游戏编程大师技巧》(阶段性)。
2024年 7月14日-7月18日:学习《游戏引擎架构》(完成)。
2024年 7月23日-7月30日:攻克Python语言学习。
2024年 7月31日-8月5日:攻克《3D游戏编程大师技巧》。
2024年 9月10日-9月20日:攻克游戏动画绑定
2024年 10月27日-10月31日:攻克《C++大师教程》
2024年 10月21日-11月02日:攻克《DirectX11教程》
2024年 11月02日-11月06日:攻克《CMake教程》
2024年 11月06日-11月10日:攻克《Vulkan教程》
2024年 11月11日-11月13日:攻克《OpenGL教程》

(一)学习笔记
真是没有想到,20多个小时的《OpenGL教程》,我只花了三天就学完了。
这次的OpenGL教程讲了非常多的内容,比如阴影,我在之前的教程中几乎都没看到过。以前我学Shader的时候,也是使用Unity预置的东西。
果然好教程就是学起来轻松愉快。当然,加上OpenGL的确比其它的引擎更加容易理解。《Vulkan教程》只有5小时教程,但是我学了一周,当然,这个是因为我每天只花半天时间学习的原因。
这段时间因为肩膀受伤,不能继续建模,只能休息一周恢复一下,下周才开始建模。所以有整天的时间来学习《OpenGL》。没想到学得这么快。
我从前也并不是一个学习非常牛逼的人,最好的成绩也只是班里面前十而已。而且是偶尔,不是能够保持。
我记得年轻的时候看很多学霸他们学东西,都觉得非常羡慕,而且觉得不可思议。他们怎么能够学那么多东西的?
后来步入社会,被社会上那些庸俗的理念影响,说什么人35岁之后学习能力就不行了,而且正好那时候我是抑郁症最严重的时期,所以觉得世界一片昏暗。
我觉得我改变思维的方式是从“烧水学习法”开始的。当然这可能有其它名称,或者某个著名的学习法演化过来的,但是我是从“烧水学习法”才开始学习“学习”。
没错,“学习”本身也是一种需要学习的东西。而再也没有什么比“学习”这样技能掌握纯熟之后,给人带来这么大的变化。
“对标”这个概念从那时候起就刻在我的心里面,我任何时候都用对标的思维去思考,去学习。
事情就是这样的:学习在我看来就是这样,如果你用错误的学习方法去学习,你只会得到无限的痛苦。而用正确的方法去学习,你不仅学到了东西,而且也学到了学习。
你的技能和知识体系是相互作用的。你学得越多,你就学得越快。这前面一个学是指你的知识,后面一个学是指你的学习能力。
其实从5月到现在,差不多刚好半年。但我感觉这半年学的东西,比我过去三年加起来还要多。


(二)为什么要学习基础
我现在如痴如狂地学习3D游戏的基础,把一切需要掌握的知识都有教无类地学习(虽然这个成语不是这么用的,但我就觉得好用,把自已的心态转化一下,你选择学什么,其实就是你做为老师,要教给你自已什么,别管你以前是什么人,比如说你是程序员,难倒就不能学建模吗?)。
回忆起我几年前做Unity的时候,的确是一种“眼高手低”的状态。举个例子,我当时做打击系统的时候,还给自已的受击部位做了材质,比如说金属,木材,这些东西被打击的时候,会有不同的反应,音效,很合理,也很牛逼。但是我当时的技术水平并不足以驾驭这些酷炫的东西。
现在我只想做一个普普通通的动作游戏,能打架,能探索,总之就是很普通。但是我却花了很多很多心思来钻研底层的技术,甚至自已去做引擎。自已做引擎倒不一定是得用自已的引擎,只是这个学习的过程对于夯实自已的基础太有用了。
希望我这条路会有它的价值。

(三)不要犯以前的错误了
做Unity的时候我犯下一个大错,导致我的软件工程灾难,这个在我做引擎的时候不能再犯了。
就好比,我们想象这样一个场景,如果我的引擎是要同时支持DirectX12和Vulkan,那么,我在做这个项目的时候,是不是要考虑以后兼容性的问题?所以在一开始的设计之中,我的系统就应该支持,而不是像牛仔一样编程。比如说我会考虑使用中性的glm库,而不是使用DirectXMath库。
如果自已的类过多依附于DirectX,那么以后兼容就会有问题。
但是,要实现这个的前提是,你对于两个系统,以及你做的系统要有充分的了解。
我以前用了十年的Java,我对于我要做的东西都非常清楚,所以我在做Unity的时候,把Java中系统构架的惯性思维都用到了Unity的开发中,给自已构架了一个自以为健壮,当创造之后,就具备工业生产能力的系统。我在和朋友聊天的时候,还吹嘘自已不会像其它独立游戏开发者一样返工,因为我做的系统就是“Productivity Ready”的。
但是我没有想到Unity里面全是坑。如果就是做点小游戏,或者说在Unity的“舒适区”做游戏,也许没什么问题。但是,一但想要做点跳出这个舒适圈的东西,大坑就一个接着一个来。我自以为“无敌”的系统,全部都是破绽。
我想做一个开放世界,真正的,牛逼的开放世界 。
我不是想做一个那种别人一看就是模板的二流游戏,不想让别人说,你这游戏拿XX引擎的素材一拼就能做出来。
所以我痛定思痛,转过身来打自已的基础,甚至自已学建模。我其实最初也没想过自已做引擎的,但是这真的就像是《阿甘正传》里面的故事,你都跑了这么远了,何不跑得更远一点呢?
但是,我不能再犯以前的错误了。以前我在Java中能做的事情,是因为我有10年的Java经验。但是没有经验的领域,就是牛仔编程,或者说好听点,极限编程。系统构架那套行不通,只能步步为营。
真正的系统工程里的确是以架构换时间,但对于新的领域,要以时间换架构!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2240259.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器情绪及抑郁症算法

🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年11月12日17点02分 点击开启你的论文编程之旅https://www.aspiringcode.com/content?id17230869054974 计算机来理解你的情绪&a…

建设展示型网站企业渠道用户递达

展示型网站的主要作用便是作为企业线上门户平台、信息承载形式、拓客咨询窗口、服务/产品宣传订购、其它内容/个人形式呈现等,网站发展多年,现在依然是企业线上发展的主要工具之一且有建设的必要性。 谈及整体价格,自制、定制开发、SAAS系统…

【Jenkins实战】Windows安装服务启动失败

写此篇短文,望告诫后人。 如果你之前装过Jenkins,出于换域账号/本地帐号的原因想重新安装,你大概率会遇上一次Jenkins服务启动失败提示: Jenkins failed to start - Verify that you have sufficient privileges to start system…

vue自定义计算器组件

自定义组件实现以下简单的计算器功能&#xff1a; 创建计算器组件文件calculator.vue&#xff0c;代码如下&#xff1a; <template><div class"calculator"><!-- 当前运算过程显示区域 --><div class"expression">{{ currentExpr…

耗时2个月,我整理出一套牛客网最热门的Java面试题合集!能够轻松应对面试官的“连环炮”

说快也快&#xff0c;说不快也不慢&#xff01; 年前&#xff0c;陆陆续续&#xff0c;好多大厂都在裁员&#xff1b; 年后&#xff0c;又有一大批程序员失业&#xff0c;找不到避风港&#xff1b; 这时候&#xff0c;就有人说了&#xff0c;为什么找工作这么难&#xff1f;…

无人驾驶汽车——AI技术在交通领域的进展与未来展望

文章目录 前言什么是无人驾驶汽车?特斯拉的无人驾驶愿景无人驾驶的技术进程:从DARPA挑战赛到特斯拉中国无人驾驶技术的现状谷歌的加入与优步的竞争深度学习的到来与特斯拉的独特优势无人驾驶的未来:机遇与挑战总结前言 今天,我想通过讲一个故事,帮助大家更好地理解无人驾…

【优选算法篇】化繁为简,见素抱朴:从乱象中重构秩序的艺术

文章目录 分治专题&#xff08;一&#xff09;&#xff1a;快速排序核心思想与应用前言第一章&#xff1a;快速排序的应用与延展1.1 颜色分类&#xff08;medium&#xff09;解法&#xff08;分治思想 - 三指针法实现三分&#xff09;C 代码实现易错点提示时间复杂度和空间复杂…

Python多进程间通讯(包含共享内存方式)

文章目录 1 通过非共享内存配合队列方式2 通过共享内存配合队列方式 注&#xff1a;本博文测试环境为Linux系统。 1 通过非共享内存配合队列方式 下面是一个常见的生产者与消费者的模式示例&#xff0c;这里分别启动了两个子进程&#xff0c;一个为生产者&#xff08;producer…

平台整合是网络安全成功的关键

如今&#xff0c;组织面临着日益复杂、动态的网络威胁环境&#xff0c;随着恶意行为者采用越来越阴险的技术来破坏环境&#xff0c;攻击的数量和有效性也在不断上升。我们最近的 Cyber​​Ark 身份威胁形势报告&#xff08;2024 年 5 月&#xff09;发现&#xff0c;去年 99% 的…

冒泡选择法(c基础)

适合对象c语言初学者。 冒泡选择法 作用对一个数组进行排序。&#xff08;介绍一下数组(c基础)(详细版)-CSDN博客&#xff09; 核心要点 1: 数组元素个数 sz 2: 比较后的交换。 核心思路 进行&#xff08;sz - 1&#xff09;趟&#xff0c;每一趟把最大数的放到末尾。其…

ubuntu[无桌面]——使用FileZilla连接本地和虚拟机实现文件共享

在虚拟机上跑命令的时候&#xff0c;有时候需要使用到一些在本机上的文件&#xff0c;但是由于安装的Ubuntu是无桌面的&#xff0c;那么怎么去实现将本地文件拖放到虚拟机上捏&#xff0c;这里记录一下 FileZilla的操作&#xff0c;以及一些问题的解决。 &#xff08;1&#xf…

openGauss常见问题与故障处理(四)

4.数据库故障定位手段&#xff1a; 数据库故障定位手段通常有如下三种类&#xff1a; 提到“种类”&#xff0c;这里给大家举一个模拟场景中肖荏盖反向的小故事 对于初学者入门的学习&#xff0c;一些理论不容易理解或记住&#xff0c;所以本节课程【创新】采用了【正、反对比…

无法启动此程序,因为计算机中丢失 msvcr100.dll”。五种有效方法分享

msvcr100.dll 是 Microsoft Visual C 2010 Redistributable Package 的一部分&#xff0c;这是一个动态链接库&#xff08;DLL&#xff09;文件&#xff0c;对于运行基于 Windows 操作系统的许多应用程序至关重要。它内含 C 运行时库&#xff0c;提供多种常用函数与类&#xff…

【React】状态管理之Redux

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 状态管理之Redux引言1. Redux 的核心概念1.1 单一数据源&#xff08;Single Sou…

数字IC后端实现之Innovus specifyCellEdgeSpacing和ICC2 set_placement_spacing_rule的应用

昨天帮助社区IC训练营学员远程协助解决一个Calibre DRC案例。通过这个DRC Violation向大家分享下Innovus和ICC2中如何批量约束cell的spacing rule。 数字IC后端手把手实战教程 | Innovus verify_drc VIA1 DRC Violation解析及脚本自动化修复方案 下图所示为T12nm A55项目的Ca…

LLM - 计算 多模态大语言模型 的参数量(Qwen2-VL、Llama-3.1) 教程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/143749468 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 影响 (…

一图胜千言,一张图深入读懂大模型应用是如何工作的

在科技飞速发展的今天&#xff0c;人工智能&#xff08;AI&#xff09;早已不再是遥不可及的科幻概念&#xff0c;而是融入了我们生活的方方面面。其中&#xff0c;大模型作为AI领域的重要分支&#xff0c;以其卓越的表现力和广泛的应用前景&#xff0c;吸引了无数人的目光。但…

Spring AI Alibaba - 快速开发生成式Java Al应用

大家好&#xff0c;我是袁庭新。 今天我们不谈ServerlessAI、AI可观测性、云消息队列演进与AI赋能以及AI原生应用架构等&#xff0c;这些都是近年最火热的技术方向。但是如果你想在未来成为一名合格且具备前瞻视野的软件开发工程师&#xff0c;这些新兴且热门的技术领域都是需…

简易入手《SOM神经网络》的本质与原理

原创文章&#xff0c;转载请说明来自《老饼讲解神经网络》:www.bbbdata.com 关于《老饼讲解神经网络》&#xff1a; 本网结构化讲解神经网络的知识&#xff0c;原理和代码。 重现matlab神经网络工具箱的算法&#xff0c;是学习神经网络的好助手。 目录 一、入门原理解说 01.…

大模型经典著作《大语言模型基础与前沿》

介绍 **《大语言模型基础与前沿》是由美国明尼苏达大学双城分校电子与计算机工程博士熊涛所著。**熊博士曾在多家中美知名高科技公司担任高级管理职位和首席科学家&#xff0c;在人工智能的多个领域&#xff0c;包括大语言模型、图神经网络等从事研发和管理工作多年。 本书深…