OpenGl学习笔记(一)--环境搭建
本节内容
OpenGl简要介绍
创建第一个窗口
OpenGl简要介绍什么是OpenGlOpenGl是一个规范,虽然一般被认为是一个API,但其本身并不负责实现.
OpenGl严格规定每个函数如何执行以及输出值,内部具体实现则由OpenGl库开发者完成.而其开发者一般为显卡厂商.
核心模式 && 立即渲染模式立即渲染模式被时代抛弃
核心模式更自由,是主流
扩展(Extension)为了开发者不必等待新的规范发布,通过检查显卡是否支持某些功能,来实现更好的优化和别的特性
状态机OpenGL本身是一个大状态机,根据自身的状态来执行操作
对象对象是一个结构体
Hello World,创建第一个窗口首先需要:
创建OpenGl上下文
创建窗口
由于这两个步骤在不同平台上都不一样,并且OpenGL有意将其抽象出去,所以需要我们自己进行处理.当然,这一步已经有许多成熟的开源库为我们处理好了.
GLFWGLFW是一个c语言库,它可以创建OpenGL上下文,定义窗口,处理输入
GLAD由于OpenGL只是一个规范,具体实现需要驱动开发者根据显卡进行实现,导致OpenGL驱动版本众多 ...
【TroubleShooting】git提示文件过大
问题描述在使用git提交代码时,提示文件过大,无法提交。
问题原因git的默认配置下,文件大小限制为100MB。如果文件超过100MB,则无法提交。如果某次commit中包含大文件,即使在后续的commit中删除了大文件,也需要上传大文件,导致commit失败。
解决方法1. 忽略大文件在项目根目录下创建一个.gitignore文件,并添加需要忽略的文件或目录,如:
*.log*.zip
2. 在commit中删除大文件
使用git log 命令查看提交记录,找到超过大小的文件所在的提交
使用git reset 命令回退到指定提交
重新提交
上传
3. 使用git-lfsgit-lfs是一个开源的Git扩展,可以跟踪大文件,并将它们存储在Git的对象数据库中,而不是像Git本身一样直接跟踪它们。
安装git-lfs:
sudo apt-get install git-lfs
安装git-lfs后,在项目根目录下执行:
git lfs install
使用git lfs track命令将需要跟踪的文件添加到.gitattributes文件中:
*.log filter=lf ...
【PathTracer系列】系列概述
概述这是一个计算机图形学作业
系列目标
制作一个软PathTracer
技术目标
PBR实现
重要性采样
纹理支持
反走样(MSAA)
支持obj文件导入
加速结构(BVH)
展望
发展为一个小型路径追踪渲染器
参考资料
Games101
PBRT
Games202
Games104
OneWeekRayTracingSeries
Fundamentals of Computer Graphics
Whitted Ray Tracing
Ray and Path Tracing
The Cherno - Ray Tracing Series
CodingAdvanture-RayTracing
Wikipedia - Path tracing
ZhiHu-Mao
ZhiHu-tkstar
ZhiHu-Wang
Reference