Learning OpenGL based on C++
The Cherno的OpenGL系列教程
欢迎来到OpenGLOpenGL(Open Graphic Libraries)是什么?一种图形API,并且允许我们访问GPU,本质是一种规范,并没有统一的实现,具体的函数实现在你使用的操作系统的显卡驱动上。本系列只是集中于OpenGL本身的代码,以便让你明白OpenGL是如何运行的,并掌握使用OpenGL开发游戏引擎的作用。其他的类似API:Direct3D,Vulcan,Metal
OpenGL功能图:
下面介绍GLFW、GLEW、GLAD:
GLFW就是提供一个初始化、管理OpenGL窗口的库,因为OpenGL本质上不提供这些功能。GLFW (Graphics Library Framework) is a lightweight utility library for use with OpenGL. It provides programmers with the ability to create and manage windows and OpenGL contexts, as well as handle joystick, ...
Operating System
操作系统概述背景回顾:大家已经有多年的操作系统使用经验,也知道 “操作系统” 是一门很重要的课程,但却无法回答 “操作系统到底是什么”、“为什么重要” 这样的问题。我们将在一学期的时间里回答这些问题,并建立操作系统相关的基本概念、思想方法和编程技巧。
本讲内容:个人/课程简介、操作系统的发展历史,回答三个问题:
(Why): 为什么要学操作系统?(What): 到底什么是操作系统?(How): 怎么学操作系统?
Take-away Messages操作系统没有传说中那么复杂 (程序视角:对象 + API,硬件视角:一个 C 程序)
为什么要学操作系统:解锁 “实现一切” 的系统编程能力什么是操作系统:应用视角 (一组对象 + API)、机器视角 (一个程序)怎么学操作系统:答案就在代码中
应用视角的操作系统本讲内容:指令序列和高级语言的状态机模型;回答以下问题:
什么是软件 (程序)?解决问题
如何在操作系统上构造最小/一般/图形界面应用程序?不写终止状态的main函数(一个死循环程序减小背后的链接)操作系统是一个状态机可以通过syscall接管程序,从而改变程序的状态,包括“关闭”
...
C++
Introduction本篇博客的内容是C++学习过程的记录,主要参考资料和帮助工具包括:
IDE:Microsoft Visual Studio 2017 / Apple Xcode
MSVC / GCC
C++ Primer Plus
Linker、Loader and Library
YouTube The Cherno’s C++ Series
CPP Reference
GitHub imgui
GitHub SimpleNES
OpenAI ChatGPT
Bjarne Stroustrup’s Blog
阅读需求:需要一定的C语言基础和编程常识。阅读提示:章节排序和举例内容大多参照Cherno‘s Video代码示例风格:
每条语句独占一行
每个函数都有一个开始和结束的花括号,并且独占一行
函数中的语句都相当于花括号缩进
与函数名相关的花括号周围没有空格
C++ 起源上世纪八十年代贝尔实验室的Bjarne Stroustrup对C语言进行了扩充,最早叫C with Classes,名称C++来自C语言中的自增自减符++,名称C++即表明它是C的扩充版本。随着C+ ...
MIT:" The missing-semesters "
动机本文搬运自Mit课程The missing semester of your CS education,并在原文的基础上有些改动,意在帮你解决下述问题,教会你使用Shell、Vim、Git等等工具,弥补一些课程体系中缺失的重要工具和概念教学。
作为计算机科学家,我们都知道计算机最擅长帮助我们完成重复性的工作。 但是我们却常常忘记这一点也适用于我们使用计算机的方式,而不仅仅是利用计算机程序去帮我们求解问题。 在从事与计算机相关的工作时,我们有很多触手可及的工具可以帮助我们更高效的解决问题。 但是我们中的大多数人实际上只利用了这些工具中的很少一部分,我们常常只是死记硬背一些如咒语般的命令, 或是当我们卡住的时候,盲目地从网上复制粘贴一些命令。
我们希望教会您如何挖掘现有工具的潜力,并向您介绍一些新的工具。也许我们还可以促使您想要去探索(甚至是去开发)更多的工具。 我们认为这是大多数计算机科学相关课程中缺少的重要一环。
课程结构本课程包含 11 个时长在一小时左右的讲座,每一个讲座都会关注一个 特定的主题。尽管这些讲座之间基本上是各自独立的,但随着课程的进行,我们会假定您已经掌握了之 ...