Siggraph2023:渲染向论文导读

A Realistic Surface-based Cloth Rendering Model

Paper

fiber 纤维,股的组成部分 ply 股(织线的组成) yarn 纺线,n-ply yarn,n股纺线 - ply level 由ply不同的数量、缠绕的方式造成的yarn的不同外观 woven cloth 梭织 - warp-weft 经-纬 knitted cloth 针织 Pasted image 20230805124031.webp - knittet coth 会由于缠绕方式的不同产生体积/阴影遮挡效果,这个层级被称为pattern level

BSDF

输入

阅读更多

北邮大数据专业大三上课程总结

首先指路BUPT 计科大三上生存指北 by xqmmcqs,感谢这篇文章给我大三上的课程复习带来了很大的帮助。

碎碎念:为什么会有这篇博客呢?因为我在网上找遍了资料,找到的博客或者复习指南基本都是北邮计科的,这对于小专业的学生来说太不友好了,因此萌生了写一篇和上面提到的文章一样的总结并且希望把这个作为一个习惯传下去(要是懒了就算了罢)。今天是2023年1月8日,正值最后一门成绩出完,因此在这里分享数据科学与大数据技术专业大三上的一些课程的主观感受。

操作系统

难度中上,需要背很多东西,基本是把操作系统的架构底朝天讲了个遍,遗憾或者说庆幸的是每一个内容的深度都不足。xz老师人还不错,今年期中由于封控政策延期了导致最后变成了全是大题,还想得起来的题型有线程调度、信号量之类的;期末则是常规的填空选择大题,复习的话推荐看一遍王道然后刷PPT(注意一些小的知识点,比如今年考了一个文件的访问方式我就写错了orz),大题题型最后都是很常规的PPT例题(今年PV题也不难),把PPT搞懂然后刷往年题就行。

课程附赠一个实验,不过不是单独算的,今年要求2-6人组队,由于已经给出了实验指导书并且书上有源码,本质cv。

阅读更多

程序化生成:Perlin噪声和Simplex噪声

首先摘抄一段wiki上对于Perlin噪声的介绍:

Perlin噪声(Perlin noise)指由Ken Perlin发明的自然噪声生成算法。由于Perlin本人的失误,Perlin噪声这个名词现在被同时用于指代两种有一定联系的的噪声生成算法。这两种算法都广泛地应用于计算机图形学,因此人们对这两种算法的称呼存在一定误解。下文中的Simplex噪声和分形噪声都曾在严肃学术论文中被单独的称作Perlin噪声。

接下来,我将围绕生成一张2D噪声纹理为目标展开对于几种噪声生成方法的介绍。

Why

为什么我们需要这两种新的噪声生成方法?对于噪声的生成方法,最为平凡的办法当然是对于每个点取一个均匀分布的随机数,如,生成一个\([0,1]\)的uniform随机数,然后直接将其作为灰度值使用:

阅读更多

C++:奇异递归模板模式(CRTP)

奇异递归模板(Curiously Recurring Template Pattern,CRTP)正如其名,是一种递归式利用c++模板的设计模式,更一般地被称作F-bound polymorphism,是我最近在开发数学库的时候听闻的一种惯用法。

What is CRTP?

CRTP的代码很简单,可以用如下的代码演示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template <typename Child> struct Base {
void interface() { static_cast<Child *>(this)->implementation(); }
};

struct Derived : Base<Derived> {
void implementation() { cerr << "Derived implementation\n"; }
};

template <typename ChildType> struct VectorBase {
ChildType &underlying() { return static_cast<ChildType &>(*this); }
inline ChildType &operator+=(const ChildType &rhs) {
this->underlying() = this->underlying() + rhs;
return this->underlying();
}
};

父类接收一个子类作为模板参数,子类在实现的时候将自身传入(递归),父类利用这个模板参数将自身静态转换为子类的引用后调用子类的函数。

阅读更多
番剧点评:在2022年观看《凉宫春日》系列是怎样一种体验

番剧点评:在2022年观看《凉宫春日》系列是怎样一种体验

这是甲醛新开的一个坑,以后会不时更新当然也有可能因为想当懒狗/没有时间不再更新对自己最近在看/在追的番剧的点评以及感想。

前言

众所周知,我其实一开始并不是宅文化的受害者众之一before:二刺猿有什么好看的,但是自从上次看完京阿尼的《Clannad》之后,便一发不可收地上网开始寻找京都动画的其他优秀作品。毫无疑问的,所有的答案都指向这一部《凉宫春日的忧郁》下文简称为《忧郁》,于是我便在2022年开启了这场迟到了13年的追番。

小插曲:我本来一开始很想从06版开始看,但是经过多方查证之后发现06和09的差别仅仅在于顺序和09额外制作的几集,再加上现在网上流传(u2&byrpt)的版本大多都是09版的,于是一口气把09版全部下了下来。

赏析

阅读更多
PBR论文简读:Better BSSRDF Models(1)

PBR论文简读:Better BSSRDF Models(1)

导语

在上一篇简读论文:PBR论文简读:A Practical Model for Subsurface Light Transport(后文将以Basic BSSRDF模型来指代本文提出的模型)提出BSSRDF模型后,人们陆陆续续发现了模型中的很多不足与需要改进的地方,因此接下来几篇blog将会简读几篇关于Basic BSSRDF模型的改进方法相关的论文。

Light Diffusion in Multi-Layered Translucent Materials, Donner'05

这篇论文主要指出了Basic BSSRDF中没有考虑到薄介质多层粗糙接触面的非理想情形下的问题,提出了多层(Multi-Layered)的BSSRDF模型。

薄介质散射

阅读更多
PBR论文简读:A Practical Model for Subsurface Light Transport

PBR论文简读:A Practical Model for Subsurface Light Transport

导语

离线环境下进行真实感渲染的时候,会有各种散射材质,比如人类皮肤、硅胶等。从外观上看,这类材质的通性在于都有一种“透光”的感觉,简单的使用brdf创造出来的材质往往显得很生硬,因此Jensen'01的这篇论文给出了一个实际的次表面散射(subsurface scattering)bxdf来实现这种材质。

理论

BRDF理论假设材质光的进入和离开的起、终点一致,本质上是对BSSRDF的一种近似\(x_o = x_i\),并且给出的积分公式也是简单地在半球面上进行积分,BSSRDF则考虑的是出、入射点不同时,对于区域\(A\)内所有入射光线的radiance的半球面积分:

\[L_o = \int_A\int_{2\pi}S\cdot L_i\cdot (\vec n\cdot \vec {\omega_i})d\omega_i dA(x_i)\]

阅读更多

实时渲染:屏幕空间反射SSR

从上次面试之后,就寻思着用Unity做一些实时的渲染效果,这个时候就想起了GAMES202作业中的实时屏幕空间反射。

屏幕空间反射效果可以产生微妙的反射,模拟潮湿的地板表面或水坑。这种技术产生的反射质量低于使用反射探针或平面反射(后者可以产生完美平滑的反射)。屏幕空间反射是用于限制镜面反射光泄漏量的理想效果。

屏幕空间反射的本质是利用GBuffer中的Normal, Albedo, Depth几个分量进行屏幕空间(以及view space)的RayMarching,简单的做法是,从摄像机发射一条光线到每个Shader fragment,再根据fragment的法线计算出reflect方向,这样就相当于得到了一条ray的origin和dir。这个时候我们再将步进的射线的z深度与depth texture的值进行比较,即可得到是否intersect,进而进行反射颜色的计算。

实现

首先给Unity的摄像机加上一个material和shader,用类似于opengl的blit方法将渲染目标更改为一个texture传输给shader,这里因为Unity好像没有提供WorldToView矩阵,我们需要自己传给Shader,同时由于需要使用GBuffer中的信息,需要将渲染模式改为deferred(其实也不是必须的,但是使用前向渲染模式需要自己手动额外渲染所需的信息,会造成资源的浪费)。

阅读更多

面试:腾讯IEG光子游戏客户端开发

注:博主目前仅进行到一面,后续没有出结果,疑似凉经

2月份的时候估计回不了学校,考虑到下半年可能回不到学校,于是预计会在本地实习一段时间,第一个投递的岗位是腾讯IEG,找了一个学长->同学内推,本来一开始想的是在成都天美就地实习,但是貌似天美不太看得上我的简历(泪);后面听学长说我的简历被深圳光子捞了,问我能不能去,想了想大概暑假是可以过去实习的,于是跳过了笔试,在3月8日进行了第一场面试,由于这是人生中第一场面试,所以在这里记录一下。

一面

一面面试官应该是一个做客户端渲染方面的腾讯员工,态度非常好(我的第一次面试,好评),主要是负责面试我图形和引擎方面的问题。首先根据我的工作意向提出了以下的问题:

  • 考虑来深圳工作吗?实习之后考虑转正吗?
    • 可以暑假实习;实习之后会考虑转正。
阅读更多