Lingqi Yan

Forum Replies Created

Viewing 20 posts - 1 through 20 (of 20 total)
  • Author
    Posts
  • Lingqi Yan
    Keymaster
    26 pts

    实时渲染部分按说是都可以,但是记得即使引擎里面有相关代码也应该自己写。

    This post has received 1 vote up.
    in reply to: 关于渲染方程递归定义的疑问 #6034 Score: 1
    Lingqi Yan
    Keymaster
    26 pts

    这里应该把 L 理解成一个向量,它的每个元素代表一个不同位置发出/接收的光。同样道理 E 也是一个向量,K 是一个矩阵。这样的话比如我就看 L[i] = E[i] + K[i, :] L[:] 就可以看明白,从一个点辐射出的光,等于这个点自己发的光,加上所有点发的光在这个点反射出去的光。这个课上没有提,有兴趣的同学帮我在 B 站发个弹幕说一下就好。

    This post has received 1 vote up.
    Lingqi Yan
    Keymaster
    26 pts

    我印象中“推测法线”与“推测深度”这两者并没有先后关系,而是独立的问题,当然也有些论文在一起解决。

    这个问题是图形学和视觉结合的方向,正好我师弟徐泽祥(https://cseweb.ucsd.edu/~zex014/)是这个领域的专家,你可以看看他的研究,应该正好能够解决你的问题。

    in reply to: 为什么延迟着色不支持msaa #5814 Score: 0
    Lingqi Yan
    Keymaster
    26 pts

    因为延迟着色需要着色之前的一趟渲染来提供逐像素信息,但是 MSAA 会破坏像素内的信息。

    一个直观的理解就是想一想我要渲染我看到的场景中每个像素的法线,原本物体边缘有锯齿,但是每个像素的法线都是对的。但是经过了抗锯齿之后,这个像素里面的法线就不再有任何正确意义。

    不过话又说回来,很早之前就有人研究怎么让 deferred shading 支持 aa。这个在某个版本的 DirectX SDK 里面就有,好像是 10。

    in reply to: illumination, shading, rendering的区别 #5461 Score: 2
    Lingqi Yan
    Keymaster
    26 pts

    现在的游戏引擎都在尝试引入光线追踪。我这边实验用过 UE4,它一定是有光线追踪的。

    只是实时光线追踪才刚刚开始,还需要配合光栅化一起用。而且即便如此它的应用也还没普及。所以还需要很久之后实时光线追踪才能独立出来,或者说取代光栅化。

    This post has received 2 votes up.
    in reply to: 关于着色空间选择的问题 #5460 Score: 0
    Lingqi Yan
    Keymaster
    26 pts

    我猜你是想说 world coordinate 和 local coordinate 的事情。理论上来说完全是一回事。效率上来说 world space 省去了投影是更好算些,但是在计算入射方向 cosine 之类的问题上其实又省不了。而渲染器的主要开销在光线追踪和复杂的着色过程上,所以其实多数实现都是 local coordinate。

    in reply to: 作业 7 直接光照过暗 #5459 Score: 1
    Lingqi Yan
    Keymaster
    26 pts

    这里有一点我说明一下,用再小的 SPP 得到的结果都应该是无偏的,也就是说亮度不会变低。你看到的亮度变低是因为显示器,有很多亮度大于1(颜色值大于255)的都被截掉了,所以看上去才会暗。
    这就是为什么我们需要用 HDR(High Dynamic Range)的结果以及显示器。之后的课程内容我也许会提一下。

    This post has received 1 vote up.
    in reply to: 关于一种光线追踪算法是否可行 #5458 Score: 0
    Lingqi Yan
    Keymaster
    26 pts

    如果是一个面到一个面的光线传播,这个方法之前叫做 radiosity(辐射度)算法。你可以查一查相关资料。它有两个问题,一是只能做漫反射表面的互反射(虽然后来有人改进但是效果并不好),二是面和面之前的可见性不好解决。

    不过你说的这个方法到底在解什么呢?相互可见性都知道,那么所有的路径你就都知道,直接积分起来不就行了吗?

    in reply to: illumination, shading, rendering的区别 #5258 Score: 0
    Lingqi Yan
    Keymaster
    26 pts

    Illumination 理解成光照的情况,是输入的量;
    Shading 是着色,计算一个点在光照之后看上去长什么样;
    Rendering 是整个渲染过程,包括解 light transport 用到的各种光线追踪,也包括之后的着色过程。

    in reply to: MSAA和SSAA是同一个东西吗? #4669 Score: 4
    Lingqi Yan
    Keymaster
    26 pts

    SSAA 可以理解为真正提高分辨率去渲染,然后再降采样。和 MSAA 的相似之处是都用了更多的采样点,在光栅化阶段非常类似。然而 SSAA 和 MSAA 的最大差别在于 SSAA 对每个采样点都要着色,而 MSAA 仍然是每个三角形覆盖的每个像素计算一次。

    上面这个知乎回答得非常清楚。多说一句,这位回答者“文刀秋二”同学是我的合作伙伴,当年险些成为我师弟,并且是 NVIDIA 的 RTRT 和 DLSS 的主要技术研发人员,超级大神。他写的文章非常建议大家一看。

    This post has received 4 votes up.
    in reply to: 关于shadow mapping我有个疑问 #4634 Score: 0
    Lingqi Yan
    Keymaster
    26 pts

    并没有,两者是独立的。

    in reply to: Blinn-Phong反射模型中的环境光与环境光贴图 #4594 Score: 0
    Lingqi Yan
    Keymaster
    26 pts

    好问题!这两者虽然描述的都是来自环境四面八方的光照情况,但是 Blinn-Phong 模型里面提到的环境光是一种极大的简化,认为它是常量。如果把这个环境光换成 Environment map,确实可以让渲染结果变好,但是代价也是显而易见的:你需要把各个不同方向的光照都考虑进去。所以计算量会增加很多。

    in reply to: 课件PDF能否在课前提前给出 #4593 Score: 2
    Lingqi Yan
    Keymaster
    26 pts

    可以,第十二讲的课上说了,现在已经开放第一次作业补提交,之后每一周开放一个作业。

    This post has received 2 votes up.
    in reply to: 关于MSAA的问题 #4572 Score: 3
    Lingqi Yan
    Keymaster
    26 pts

    这里的随机不是指每次你遇到同一个像素都要随机取不同的采样点,而是一个像素内你预先选定一系列不同的位置,可以排步在更细的格子上(所谓 regular),可以按一定的图案分布(patterned),也可以随机选(stochastic/random),但是选好了之后要定下来,之后遇到同一个像素就都用这些之前确定了的位置。

    This post has received 3 votes up.
    in reply to: 作业四得到这样的结果是否满足要求? #4571 Score: 1
    Lingqi Yan
    Keymaster
    26 pts

    两个结果都不错。第一个里面有一个地方存在断裂现象是为什么?t不够密集吗?

    This post has received 1 vote up.
    in reply to: 请教老师一个问题,关于重心坐标 #4414 Score: 0
    Lingqi Yan
    Keymaster
    26 pts

    对,只有在平面内且在三角形内,面积和才是等于1的。

    in reply to: 请教老师一个问题,关于重心坐标 #4389 Score: 1
    Lingqi Yan
    Keymaster
    26 pts

    我明白你今天课上提的问题了!是这么回事,你可以想象一个三棱锥,有一个三角形的底面,和一个不在这个平面内的点。那么这个点所连接的三个面的面积加起来肯定要大于这个底面三角形的面积(想想面积的投影就明白了)。这就是为什么说用重心坐标的前提是OAB,OBC,OCA面积加起来等于ABC面积,因为只有这个条件满足,才能说明O在三角形所在平面上(当然也是三角形内)。

    This post has received 1 vote up.
    Lingqi Yan
    Keymaster
    26 pts

    我补充一下两位同学的回答。
    关于问题1,我确实是规定了近远平面在 frustum->cuboid 这个挤压操作前后 z 值不变,这样限制了只有一种挤压的方法。
    关于问题2,由于相对运动的存在,相机和所有物体都同时移动就等于都没有移动。把相机放在规定位置是为了后面做投影变换方便。而在 OpenGL 等等 API 里面也确实是这样做的,只是隐藏在 OpenGL 自己的实现内部你没有发现而已。如果你自己写 vertex shader 就会发现需要对顶点应用 MVP 矩阵。这个 V 就是视图变换。
    关于问题3,“model上加上一些颜色值” 我们会花好几节课来讲解怎么加。这个确实和上面这位同学回答的第五步一样简单 🙂

    in reply to: 请问View Transformation为什么要旋转g x t? #3008 Score: 4
    Lingqi Yan
    Keymaster
    26 pts

    这是个好问题!这里你觉得当 g 和 t 都分别旋转到位了的时候,g x t 就自然也和 x 轴重合,其实隐藏了一个前提,就是旋转之后的 g 与旋转之后的 t 求叉积。但其实我们说 g x t 是旋转之前的 g 和 t 的叉积,如果我们定义这个旋转前的叉积为向量 p = g x t,那么我们可以把我们要做的旋转操作描述为:
    如何把 g, t, p 三个向量分别旋转到 -Z, Y 和 X,并且使得它们仍然还是两两垂直。
    那么当然应该是三个向量都各自旋转到对应的目标方向上去。
    总结一下就是这里你会提出这个问题其实是因为我懒了,应该给旋转前的 g x t 起个名字,这样就不会出问题了。

    This post has received 4 votes up.
    in reply to: 询问 #2763 Score: 1
    Lingqi Yan
    Keymaster
    26 pts

    嗯,我这里说的不规范,你这里说的是对的

    This post has received 1 vote up.
Viewing 20 posts - 1 through 20 (of 20 total)