获得徽章 0
opengl是一系列在cpu上调动gpu的api,opgl用什么语言写是没有关系。
opengl可以跨平台。
- 缺点
1. 版本过于碎片化
2. c风格语言,不是很好用
3. 几年前不好debug,现在方便很多
OpenGL就像画油画
1. 物体摆好
2. 画架放哪
3. 画画要摆好画布
4. 在画布画画
5. 画好一张换张画布可以继续画
6. 画新的画要参考之前的画
语言改动顶点着色器和像素着色器。
展开
评论
NERF——可微渲染——其使用的技术在运算部分可以进行微分;求导
(可微渲染还可以使用体素 网格等其他技术)

输入:已知姿态的图像——训练——渲染出未出现视角的图片
输入数据:五维向量 xyz theta phi (表示所在视角光线方向)
输出:四维向量 RGB delta(该点体积密度)

对一条光线上许多点四维向量进行合成——得到该光线在输出图像上的像素值
该像素值与真实图像像素进行计算 得到loss
使用均方误差计算——以此为依据对网络进行更新
深度学习(20):nerf论文翻译与学习_小言_互联网的博客_wya1
核心内容:
- 体渲染
- MLP神经网络
- Position encoding 位置编码
- Hierarchical sampling 分层采样
展开
评论
day16
周日,今天是放松的一天,希望下周能有更好的状态
评论
day15,
周末下雨,宅起来看比赛,复习下图形学
评论
day14
光栅化下对全局光线传输、阴影的处理十分麻烦
步骤:
- Pass 1: Render from Light
- Depth image from light source → shadow map不进行着色,仅存储光源看得见的点的深度值,这张深度图即为shadow map
- Pass 2A: Render from Eye
- Standard image (with depth) from eye
- Pass 2B: Project to light
- Project visible points in eye view back to light source
- visible to light source → color
- blocked → shadow
展开
评论
day13
Accelerating Ray-Surface Intersection
原始:每根光线和每个三角形求交(太慢!)
加速:包围盒kdtree
Bounding Volumes 包围盒
- bound complex object with a simple volume
- 碰不到包围盒,就肯定碰不到里面的物体
We often use an Axis-Aligned Bounding Box (AABB)
- 三对面形成的交集 xmin, xmax, ymin, ymax, zmin, zmax
- 判断求交:光线与三对面的交点:三组(tmin,tmax) 如果有交集(即有同时在三对面内的时间),则与盒子有交
- 原理:The ray enters the box only when it enters all pairs of slabs The ray exits the box as long as it exits any pair of slabs
- If t enter < t exit , we know the ray stays a while in the box (so they must intersect!)
- 需要检查各个t是否为正
- tenter = max{tmin}, texit = min{tmax}
- ray and AABB intersect iff (t enter< t exit && t exit >= 0)
- 垂直时计算更简单:每个t只需要一个-和一个/
How to use AABB to accelerate ray tracing?
- Uniform grids 均一网格
- Spatial partitions 空间划分
展开
评论
day12
Photon Mapping 光子映射
是一种有偏估计,非常适合于Specular-Diffuse-Specular(SDS)路径以及caustic现象
[图片]
第一步:光子追踪,从光源处投射出一定数量的光子,在场景中进行相应的折射和反射,打到diffuse面的时候停止,并在diffuse面上记录这些光子的位置信息。

第二步:光子收集,从摄像机投射subpath,进行折射和反射,当打到diffuse面上时停止,并计算碰撞点周围一定面积的光子密度,密度越高,就越亮。
- Calculation — local density estimation 局部光子密度估计
- Idea: areas with more photons should be brighter
- For each shading point, find the nearest N photons (通过树状结构实现算法,N是固定的). Take the surface area they over 面积计算,然后光子密度=光子数量/面积
- 光子数量少:面积大,噪声大;光子数量大:模糊
- 模糊是因为有偏
展开
评论
day11
Dynamic resolution and upscaling methods 动态分辨率与放大效果方法
Unity 中的动态分辨率是用于内置渲染管线、URP 及 HDRP 的摄像机设置,它是倍受欢迎的游戏性能优化选项。当应用程序的帧率即将因 CPU 密集型而下降时,分辨率会缩小比例以维持稳定的帧率。也可通过脚本手动触发此机制。
利用 HDRP 发挥更高级的比例放大方法优势,比如仅限支持的 NVIDIA GPU 的 NVIDIA 深度学习超采样技术(DLSS)、AMD FidelityFX™ 超级分辨率(FSR)以及时间性抗锯齿(TAA)放大。URP 也支持 AMD FSR。
Unity 2021 LTS 及较新版本中的 HDRP 本来就支持 NVIDIA DLSS。它利用高级 AI 渲染技术呈现可与原始分辨率媲美的图像质量,同时依照惯例仅渲染部分像素。利用实时光线追踪和 NVIDIA DLSS 可创建精美的游戏世界,依托 NVIDIA RTX GPU 以更高的帧率和分辨率运行。DLSS 还能大幅提升传统栅格化图形的性能。如需了解详情,请访问 NVIDIA 的 Unity 开发人员专页和博客,并参阅我们的文档。
展开
评论
day10
MSAA 多样本抗锯齿(Multi Sample Antialiasing)
MSAA在一个像素点设置多个采样点,通过这多个采样点去近似计算一个像素内在三角形内部的比例。
所以MSAA并没有提高分辨率,实际上做的是采样前进行模糊的那一部分工作。
注意和SSAA区别,SSAA在每一个像素内部采样点维护了深度和色值,这个像素色值就是内部采样点的加权平均,等于是一个像素四次shading
而MSAA像素内部只维护深度值,并依据像素内采样点在三角形的比例对像素色值加权,只做一次shading
FXAA只是一个后处理技术,对原图绘制完成后,通过算法识别边缘,然后以像素级别进行混合;
展开
评论
day9
Uniform grids方法
有了AABB怎么加速光线,可以使用均匀网格划分的方法。

- 先找出场景的包围盒
- 将其划分成统一的网格
- 储存网格与物体表面相交的信息
假定光线与网格求交远比与物体求交快,当光线进入包围盒后,先求光线与网格的交点并判定这个网格内是否有物体表面,有的话再进行光线与物体表面的求交。
这里判断光线与哪些网格相交的算法类似于直线的光栅化。
展开
评论
下一页
个人成就
文章被阅读 587
掘力值 93
收藏集
1
关注标签
37
加入于