![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机图形学
文章平均质量分 85
shadow_lr
Game Developer
展开
-
Microfacet模型采样下的brdf
本文前言在学习图形学(games101 from bilibili)的时候,也遇到了像这样的问题,Cook-Torrance模型无法实现粗糙度为0时,物体微表面呈现绝对镜面的效果(呈现出一面镜子),为了搜寻解决办法,因此看到了这篇博客,因为是全英文,所以就花了一点时间翻译了一下,方便日后重新观看,红色字对原博客的补充说明前言最近我正在为我的渲染器开发microfacet brdf模型,我注意到为microfacet brdf提供一个单独的采样方法是非常必要的,而不是使用默认的方法,因为默认的方法通常用原创 2021-09-27 14:09:54 · 482 阅读 · 0 评论 -
低差异序列 (low-discrepancy sequences)之Halton序列均匀产生多维随机数的介绍与实现
Halton序列在统计学中,Halton序列是用于生成空间中的点的序列,如Monte Carlo模拟的数值方法,虽然这些序列是确定性的,但它们的差异性很低,也就是说,在许多方面看起来是随机的。它们在1960年首次提出,是准随机数列的一个例子。它们概括了一维Van der Corput序列用于生成R2R^2R2中(0,1)x(0,1)点的Halton序列的例子Haton数列是根据一种确定性的方法构建的,它使用共素数作为基数。作为一个简单的例子,让我们把Halton数列的一个维度基于2,另一个基于3。为了原创 2021-09-24 16:25:59 · 3327 阅读 · 0 评论 -
低差异序列 (low-discrepancy sequences)之Hammerysley在半球中采样点方法的介绍
半球上的HammersleyHolger Dammertz一组关于如何在2D中使用Hammersley点集以在着色器程序中快速实用地生成半球方向的笔记。如果你发现任何错误或有意见,不要犹豫,请联系我或在我的博客上留言。1.概述在编写与光照有关的着色器时,人们经常需要一些以表面法线为方向的半球方向。通常的做法是预先计算这些方向,并将它们存储在一个静态/统一的数组中,或者创建一个包含这些方向的可查询的纹理。在这一页,我研究了如何在着色器中直接使用2d中的Hammersley点集来快速计算合理的分布方向。原创 2021-09-24 01:48:01 · 1858 阅读 · 0 评论 -
【光线追踪】 流程分析与实现的路径跟踪渲染器
前言搞光追是图形学的浪漫,先放张目前渲染图,分析了部分代码框架,后续补上完整效果左边黄色球是Blinn-Phong,右边是MicrofacetBVH,1024x1024,200spp,2x2MSAA,VS Omp32线程,渲染了二十三分钟基于games101作业7的作业框架...原创 2021-09-19 10:51:09 · 343 阅读 · 0 评论 -
回顾games101中的SSAA和MSAA
回顾games101中的AA(抗锯齿)前言善于进行课后总结,可以更加巩固自己的知识和具体细节锯齿(走样)产生的原因本质上,在光栅化阶段中,用有限离散的数据想表示连续的(类似三角形的某一边),就可能存在采样点不够的问题,也就引申出了锯齿(走样 Aliasing)的这个概念,在信号处理以及相关领域中,走样(混叠)在对不同的信号进行采样时,导致得出的信号相同的现象。它也可以指信号从采样点重新信号导致的跟原始信号不匹配的瑕疵具体到实时渲染领域中,走样有以下三种:[3]几何体走样(几何物体的边缘有锯齿)原创 2021-08-28 15:43:36 · 1185 阅读 · 0 评论 -
回顾Games101图形学(一)几何变换中一些公式的推导
回顾Games101 chatper1 - 6前言本文只写回顾后重新加深认识的知识透视除法的意义经过MVP矩阵之后,将模型空间下某点的坐标,转换成了裁剪空间下的坐标,此时因为裁剪空间的范围是x∈[-W/2,W/2]和y∈[-H/2,H/2],所以经过以下两个变换,其中除以pz就是透视除法一:−1≤2⋅(pxpz⋅near)w≤1−1≤2⋅(pypz⋅near)h≤1-1≤2·\frac{\left( \frac{p_x}{p_z}·near \right)}{w}≤1\\-1≤2·\fra原创 2021-06-24 16:22:38 · 500 阅读 · 1 评论 -
腾讯游戏学院 游戏程序设计第七章(个人总结)——实时图形渲染管道
第七章实时图形渲染管道 学习打卡场景管理特别适合大规模的广阔室外场景管理。一般来说如果游戏场景是基于地形的(甚至没有高度)(如城市、平原、2D场景),那么适合用四叉树来管理。而如果游戏场景在高度轴上也有大量物体需要管理(如太空、高山),那么适合用八叉树来管理。顶点着色:模型变换模型(如网格)通常定义于模型空间为了把一个模型渲染成多个实例,会把模型的顶点位置V_model变换到世界空间Vworld=Mmodel−>worldVMmodelV_{world}=M_{model->w原创 2020-07-11 15:55:03 · 941 阅读 · 0 评论