- 博客(41)
- 资源 (4)
- 问答 (4)
- 收藏
- 关注
原创 物理光源:Linearly Transformed Cosines
1. 介绍1️⃣首先,确认LTC技术的目标:解决多边形面光源的光照积分问题,特别是高光部分的求解。多边形面光源的积分和我们之前考虑的问题都不一样:常见光源(点光源、SpotLight等):简单,积分域就是一个点。环境贴图:复杂一点,积分域是半球域——一般来说,我们都是使用IBL技术类,进行简化。我们考虑更加物理的光源:多边形光源。这个时候,积分域 SSS 就很复杂了,求解更加复杂:I=∫S(L(wl)⋅f(p,wi,wo)⋅cos(θp))dwi I=\int_S(L(w_l)\cdot.
2022-05-05 17:14:28
752
原创 全局光照技术:Precomputed Radiance Transfer
1. 介绍物体在不同光照下的表现不同,PRT(Precomputed Radiance Transfer)是一 个计算物体在不同光照下表现的方法。光线在一个环境中,会经历反射,折射, 散射,甚至还会在物体的内部进行散射。为了模拟具有真实感的渲染结果,传统的 Path Tracing 方法需要考虑来自各个方向的光线、所有可能的传播形式,并且收敛速度极慢。PRT使用一种预计算方法,该方法在离线渲染的 Path Tracing 工具链中预计算 lighting以及 light transport, 并将它们用球
2022-04-01 14:30:08
2271
3
原创 重要性采样
1. 介绍首先,明确的是,本人在这里不会涉及大数定理、蒙特卡洛积分、重要性采样的数学原理和推导,仅仅是做个介绍。重点还是重要性采样和光照积分的结合。1.1 快速回顾蒙特卡洛积分蒙特卡洛积分,并不是指一种名叫蒙特卡洛的积分,而是采用蒙特卡洛法来估计积分。参考上图,在[a,b][a,b][a,b]的区间内均匀取足够多的点(N很大),来估算上诉曲线下的面积(假如我们无法求解析解):FN=∫abf(x)dx=b−aN∑i=1Nf(xi) F_N=\int_a^b{f(x)dx}=\frac{b-a}
2022-03-07 13:45:55
2749
原创 全局光照算法:IBL
1. 介绍基于图像的光照(Image based lighting, IBL)是一类光照技术的集合。其光源不是可分解的直接光源,而是将周围环境整体视为一个大光源。现代渲染引擎中使用的IBL有四种常见类型:远程光探头,用于捕捉"无限远"处的光照信息,可以忽略视差。远程探头通常包括天空, 远处的景观特征或建筑物等。它们可以由渲染引擎捕捉, 也可以高动态范围图像的形式从相机获得.局部光探头,用于从特定角度捕捉世界的某个区域。捕捉会投影到立方体或球体上, 具体取决于周围的几何体。局部探头比远程探头更精确,在
2022-02-28 19:12:00
8365
1
原创 全局光照算法:reflective shadow maps
1. 技术理解RSM的全称是reflective shadow maps,受到Instant Radiosity这个离线技术的启发,其思想和ShadowMap的思想近似。在正式介绍和了解这个技术之前,我需要确定RSM用处何在?我想,《RTR4》中对它的分类很正确——Dynamic Diffuse Global Illumination,这是一个处理动态全局漫反射的技术:GI(全局光照):用于二次及以上bounce造成的间接光。Dynamic(动态):可以实时更新,可作用于动态物体。Diffuse(
2022-02-26 22:27:10
1584
原创 AMD FSR技术在UE4移动端可用的研究(二)——4.27的适配
1. 从FDeferredShadingSceneRenderer::Render入手1️⃣首先根据大佬的博客,我们可以很快定位到后处理发生的地方(整个函数的靠后处):进入AddPostProcessingPasses,然后根据笔记(1)(参考官方各种文档),可以知道FSR作为UpScale是位于Tone Mapping之后的,所以我们直接略过中间复杂的过程,可以很快找到主放大Pass和副放大Pass:2️⃣考虑主放大Pass,在设置完PassInputs之后,核心代码就是下面这一行:Cus
2022-01-14 10:40:56
2427
4
原创 MLAA的实现与分析
前言:本文主要参考《Morphological Antialiasing》和《Practical Morphological Antialiasing》1. 介绍MSAA有不可忽视的缺点。首先,会导致处理时间的增加。此外,在大部分平台上(旧的),使用多个渲染目标(MRT)时,不能激活多重采样。即使在可以同时激活MRT和MSAA的平台上(即DirectX 10以上),MSAA的实现也不简单。MSAA的另一个缺点是不能平滑非几何边缘,比如使用Alpha Test所产生的边缘——在渲染植被时经常使用。因此,
2022-01-12 18:04:28
4230
2
原创 AMD FSR技术在UE4移动端可用的研究(一)——介绍以及安装
1. 介绍AMD FidelityFX Super Resolution (FSR) 采用先进的优化升级技术,能够在无需用户升级显卡的情况下帮助提高部分游戏的帧率,带来高质量、高分辨率的游戏体验。FSR适用于包括集成显卡在内的各种新旧产品,并针对基于 AMD RDNA™ 和 AMD RDNA 2™ 架构的 Radeon™ RX 6000 和 RX 5000 系列显卡进行了优化。部分 NVIDIA® 显卡也支持 FSR。FSR提出了四种不同的质量模式:Ultra Quality,Quality,Ba
2022-01-06 18:13:47
6414
4
翻译 FXAA白皮书的翻译和理解补充
FXAA实现1. 算法前瞻算法流程参考上图,可以分为以下几步:输入一张非线性RGB图(例如:sRGB),并从采样得到的颜色值中得到亮度luminance。通过亮度,检查当前像素的局部对比度(local contrast),来舍弃非边缘像素。检测到的边缘为红色,向黄色渐变表示检测到的亚像素锯齿的程度。(drawn using FXAA_DEBUG_PASSTHROUGHshader define)。通过局部对比度检测的像素被分类为金色的水平,和蓝色的垂直。(FXAA_DEBUG_HORZVER
2021-12-30 16:33:11
1209
原创 Vulkan教材2
Vulkan教程2文章目录Vulkan教程21. Vertex input descriptionVertex shaderVertex dataBinding descriptionsAttribute descriptionsPipeline vertex input2. Vertex buffer creationBuffer creationMemory requirementsMemory allocationFilling the vertex bufferBinding the vertex
2021-06-12 18:24:55
287
原创 UE4——材质系统初探1
教程1文章目录教程11. 整体架构2. 性能3. PBR4. 压缩和内存5. 纹理池6. 渲染目标7. 材质编辑器动画序列视图使用的外部信息世界对齐纹理8. 简单组合Bump Offset混合角度纠正法线顶点着色1. 整体架构首先,我们需要注意的是在编辑材质时,要小心其细节面板的用法分栏,我们需要明确其勾选,否则,很有可能导出后报错,部分材质无法显示,例如:一般情况下,哪怕没有勾选,UE4也会启动使用静态光照的版本。为什么编译着色器的数量如此惊人?理由和Unity一样,着色器内分支结构的使用
2021-06-12 18:22:43
750
原创 UE4RenderTarget应用1——画布
1. 使用渲染目标绘画绘制方法为了确定在哪里绘制渲染目标,需要从摄像机向前画一条线。如果线条击中画布,可以在UV空间中得到击中位置。例如,如果画布是完美的UV映射,在中心的点击将返回值(0.5,0.5)。如果它击中右下角,将得到一个值(1,1)。然后可以使用一些简单的数学计算绘制位置。需要设置一个纹理作为参数,这样就可以传递渲染目标。为此,创建一个TextureSampleParameter2D并命名为RenderTarget。然后,将它连接到BaseColor。创建RT更好的方法是使用蓝图创建渲
2021-06-12 18:09:36
2131
原创 ShaderToy上后处理练习4——边缘检测
边缘检测主要参考,或者说就是照着著名大佬QianMo的后处理教程写的,不过他是在Unity里面实现的,作为一个高品质后处理插件,然后本人是在ShaderToy上实现的,当然我都是在复现大佬的代码,推荐大家去读大佬的文章,地址:https://github.com/QianMo/GPU-Gems-Book-Source-Code强烈安利!!!!Edge Detection SobelCommon#define _EdgeColor vec4(1., 0., 0., 1.)#define _Back
2021-06-12 17:41:52
591
原创 ShaderToy上后处理练习3——像素化
像素化型后处理主要参考,或者说就是照着著名大佬QianMo的后处理教程写的,不过他是在Unity里面实现的,作为一个高品质后处理插件,然后本人是在ShaderToy上实现的,当然我都是在复现大佬的代码,推荐大家去读大佬的文章,地址:https://github.com/QianMo/GPU-Gems-Book-Source-Code强烈安利!!!!Pixelize QuadCommon#define _PixelSize (1000.)#define _PixelRatio (1.)#defi
2021-06-12 17:37:20
468
原创 ShaderToy上后处理练习2——模糊
模糊算法主要参考,或者说就是照着著名大佬QianMo的后处理教程写的,不过他是在Unity里面实现的,作为一个高品质后处理插件,然后本人是在ShaderToy上实现的,当然我都是在复现大佬的代码,推荐大家去读大佬的文章,地址:https://github.com/QianMo/GPU-Gems-Book-Source-Code强烈安利!!!!还有,就是,一些结果和代码不能一一对应,不过贴到ShaderToy上就能看到效果高斯模糊Commom#define SIZE 5.#define STEP
2021-06-12 17:32:52
624
原创 ShaderToy上后处理练习1——故障
故障艺术主要参考,或者说就是照着著名大佬QianMo的后处理教程写的,不过他是在Unity里面实现的,作为一个高品质后处理插件,然后本人是在ShaderToy上实现的,当然我都是在复现大佬的代码,推荐大家去读大佬的文章,地址:https://github.com/QianMo/GPU-Gems-Book-Source-Code强烈安利!!!!RGB颜色分离故障(RGB Split Glitch)Common#define IDENSITY (0.091)#define PATTERRN (2)
2021-06-12 17:22:47
826
2
原创 Cheap Curvature代码解析
Cheap Curvature代码解析作者:Nimitz,网址:https://www.shadertoy.com/view/Xts3WM标签:3d,cheap,curvature简介:主要是对曲率的简单计算相机的简单设置在相机的常规设置上,加上了鼠标点击的控制,较为简单。射线步进float map(vec3 p){ p.x += sin(p.y*4.+time+sin(p.z))*0.15; // float d = length(p)-1.; floa
2021-06-12 16:51:04
354
原创 Combustible Clouds代码解析
Combustible Clouds作者:Shane,网址:https://www.shadertoy.com/view/MscXRH标签:noise,cloud,volumetric基础设置 一开始是ro,rd的设置,这里和常规的不一样。vec3 rd = normalize(vec3(fragCoord - iResolution.xy*.5, iResolution.y*.75)); // Ray origin. Moving along the Z-axis.vec3 ro =
2021-06-12 16:49:27
258
原创 RM-F代码解析
RM-F代码解析作者:shau,网址:https://www.shadertoy.com/view/MsVcRy标签:3D,带状条纹,Moody Clouds,髓质效果总共一个部分:ImageImage 首先自定义了一个结构体Scenestruct Scene { //射线步进的距离 float t; //物体标号:外球,内球,还是地板 float id; //法线 vec3 n; //近交点位置 float stn;
2021-06-12 16:45:06
1103
原创 PlayingMarble代码解析
Playing Marble代码解析作者:Guil,网址:https://www.shadertoy.com/view/MtX3Ws标签:3D,分形,volumetricImage一开始,常规的坐标变换,处理鼠标点击事件,然后照相机设置,然后进行IQ的球体相交测试vec2 tmm = iSphere( ro, rd, vec4(0.,0.,0.,2.) );然后是核心的rayMarch函数,这里是进行髓质计算,关于这一部分,在RM-F中有详细介绍,这里就不说了float map(in ve
2021-06-11 11:01:47
696
原创 Elevated代码解析
Elevated代码解析作者:iq,网址:https://www.shadertoy.com/view/MdX3Rr标签:procedural, 3d, raymarching, distancefield, terrain, motionblur总共两个部分:Image,Buffer AImagevoid mainImage( out vec4 fragColor, in vec2 fragCoord ){ vec2 uv = fragCoord/iResolution.xy;
2021-06-11 11:00:07
345
原创 IQ_Clouds优秀代码解析
IQ_Clouds作者:IQ,网址:https://www.shadertoy.com/view/XslGRr标签:procedural,volumetric,lodRender主函数里面就是常规的坐标变换和相机设置,所以我们直接进入render函数进行分析。一开始依旧是天空设置,包括:天空的色变和太阳的设置两部分。// background sky float sun = clamp( dot(sundir,rd), 0.0, 1.0 );vec3 col = vec3(0.6,
2021-06-11 10:56:28
279
1
原创 ProteanClouds代码解析
Protean Clouds优秀代码解析作者:nimitz,网址:https://www.shadertoy.com/view/3l23Rh标签:procedural, 3d, fast, volumetric(程序,3d,快速,体积)Technical details:主要的体积噪声是由一个变形的周期网格(periodic grid)产生的,它可以以非常低的计算成本产生大范围的noise-like patterns。允许多次取体梯度计算,以改善照明。进一步加速March,因为volume is
2021-06-11 10:55:03
357
原创 ShaderToy技术收藏:无三角函数噪声
Hash without SinePS:无三角函数版,这些大佬都不待见三角函数,我也要,虽然我菜// 1 out, 1 in...float hash11(float p){ p = fract(p * .1031); p *= p + 33.33; p *= p + p; return fract(p);}//---------------------------------------------------------------------------
2021-06-11 10:36:12
371
原创 Abstract Travel代码解析
Abstract Travel作者:Shane,网址:https://www.shadertoy.com/view/MlXSWXTags:Noise,tunnel,triangle,abstract简介:利用Shadertoy用户Nimitz的三角噪声思想及其曲率函数来伪造一个抽象,平面阴影,点光源的网状外观。个人收获:Image 首先是进行常规的坐标变换,以及相机的起始位置和目标位置的设置,然后在相机前后设置了两个点光源,然后使用这些值的Z值扰动他们的XY平面:这里的扰动函数path使用
2021-06-11 10:34:13
266
4
原创 Analytic Normals 3D代码解析
Analytic Normals 3D代码解析作者:iq,网址:https://www.shadertoy.com/view/XttSz2标签:3d, noise, normals, analytical, numerical总共一个部分:Image照相机设置这个比较常见,就是简单的照相机旋转和矩阵获取// camera animfloat an = 0.1*iTime;vec3 ro = 3.0*vec3( cos(an), 0.8, sin(an) );vec3 ta = vec3(
2021-06-11 10:31:51
293
1
原创 Faster atmospheric scattering
Faster atmospheric scattering作者:16807,网址:https://www.shadertoy.com/view/3dBSDW代码规范设置和一些常量、类#ifdef GL_ES#define _in(T) const in T#define _inout(T) inout T#define _out(T) out T#define _begin(type) type (#define _end )#define mul(a, b) (a) * (b)#en
2021-06-11 10:30:25
192
1
原创 Volumetric Integration(体积渲染——烟雾)
VolumetricIntegration作者:SebH,网址:https://www.shadertoy.com/view/XlBSRz关键词:体积渲染、参与介质介绍:这里有一个演示,介绍了带有阴影的single体积渲染。我还加入了我在SIGGRAPH 15演讲中提出的改进的散射积分。关于我开发的Frostbite新的体积测量系统。见幻灯片28,网址是http://www.frostbite.com/2015/08/physically-based-unified-volumetric-rend
2021-06-11 10:28:33
1160
2
原创 Mystery Mountains
Mystery Mountains作者:Dave_Hoskins,网址:https://www.shadertoy.com/view/llsGW7核心// Add texture layers of differing frequencies and magnitudes...#define F +texture(iChannel0,.3+p.xz*s/3e3)/(s+=s) ...t = F F F F F F F F;类似随机布朗函数的过程,不过这里我们进行采样的,不是某个噪声函数,而
2021-06-11 10:15:01
124
原创 RealTimeRender 第五章笔记
Chapter 5——Shading Basic文章目录Chapter 5——Shading Basic1. Shading Models2. Light Sources3. Implementing Shading Models4. Aliasing and Antialiasing4.1 Antialiasing Patterns5.Transparency, Alpha, andCompositing5.1 Blending Order5.2 Order-Independent Transparen
2021-01-07 19:58:05
402
1
跪求SUNCG数据库
2020-11-05
QT数据库,我在debug中可以链接数据库,但改成release就链接不上,这是为什么
2018-02-27
QT 打包之后,数据库问题怎么解决
2017-08-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人