cdc's world
04
28
雨滴玻璃Shader实现思路 雨滴玻璃Shader实现思路
最终效果 实现思路网格首先使用一个Unlitshader,为了限制雨滴的移动范围,需要先定义出网格,首先将采样得到的纹理坐标乘一个数,然后取小数部分,就可以得到重复的网格: 12345678910111213fixed4 frag (v2
2021-04-28 cdc
05
对unitySRP的理解 对unitySRP的理解
SRPSRP即unity的可编程渲染管线,我们可以用它来创建自定义的渲染管线。最近看了很多文章,总结一下对它的理解和它的基本使用。也为后面自己重头开始写一条custom SRP做一个准备。 Scriptable Render Pipelin
2021-04-05 cdc
03
URP后处理的实现:RenderFeature URP后处理的实现:RenderFeature
RenderFeature之前看入门精要写了一些shader,最近在看URP的时候发现在Buildin里面有些地方是很不一样的,首先URP的光照是单pass,然后shader是用HLSL写的,最大的不同是URP的后处理思路,它不再提供OnR
2021-04-03 cdc
08
10
路径追踪,蒙特卡洛积分方法推导 路径追踪,蒙特卡洛积分方法推导
Path Tracing路径追踪的提出就是为了去解渲染方程的积分项,并且它不是一个准确积分,只是用一种近似的方法去得到近似的积分数值解,它采用了概率论的一些思想,使多次采样的均值去得到一个近似的积分值。 正常情况下求解一个定积分需要去找它的
2020-08-10 cdc
06
01
造一个PBR轮子 造一个PBR轮子
PBR理论完全理解了PBR之后就感觉发明出来这个东西的人真的是天才,之前广泛应用的Blinn-Phone仅仅只是经验总结的光照模型,并不是物理上的准确。PBR的思路就是完全按照渲染方程来进行光照的计算,然后用贴图对BRDF的DFG项进行控制
2020-06-01 cdc
04
20
混合&面剔除 混合&面剔除
混合混合主要用来做透明度,一个物体透明的意思其实就是它显示出来的颜色一部分由它自己的颜色提供,另一部分由它后面的颜色提供,我们通过对纹理的alpha值进行设置,就可以做出透明效果。 丢弃片段有些图片并不需要半透明,只需要根据纹理颜色值,显示
2020-04-20 cdc
19
实例化(高效绘制大量物体) 实例化(高效绘制大量物体)
实例化在之前我们绘制多个物体都是用for循环去实现,在每个循环里面单独绑定VAO,但是这样的做法会特别消耗性能。使用glDrawArrays或glDrawElements函数告诉GPU去绘制顶点数据会消耗更多的性能,因为OpenGL在绘制顶
2020-04-19 cdc
13
Unity屏幕特效知识总结 Unity屏幕特效知识总结
屏幕后处理特效最近看了看Unity一种专门的Shader类别,Image Effect,一般有两种:GrabPass和Post-Processing GrabPass用来抓取物体所在屏幕位置的渲染图像,然后把这张Texture传递给接下来的
2020-04-13 cdc
11
立方体贴图 立方体贴图
立方体贴图立方体贴图其实就是一个包含了六个纹理的纹理,我们所有生成和绑定纹理的操作都是一样的,唯一不同的就是当我们把纹理加载到GPU时需要用一个循环去加载六个纹理。对于skybox的顶点着色器和片段着色器: 1234567891011121
2020-04-11 cdc
03
深度测试和模板测试 深度测试和模板测试
深度测试现在我们来到了一个非常重要的专题:深度测试,它关乎着渲染过程中所有的遮挡关系,之前在画箱子的时候我们就开启了深度测试,下面来更加深入地学习深度缓冲中的深度值。 深度缓冲存在每一个片段中,当开启了深度测试后glEnable(GL_DE
2020-04-03 cdc
03
27
OpenGL学习记录:光照 OpenGL学习记录:光照
光照篇终于是来到了光照篇,这一章会比上一章更加复杂一些,代码量也会增加很多,屏住呼吸,我们一起踏上旅程吧~~~! 首先我们要对之前的代码做一些修改,之前加载纹理的代码写得太丑了,我们这里把它写成一个加载、生成纹理的方法: 123456789
2020-03-27 cdc
19
OpenGL学习记录--入门章节 OpenGL学习记录--入门章节
窗口创建和初始化  在开启窗口之前,需要先初始化GLFW,用glfwWindowHint()函数去指定使用的OpenGL的版本号,还需要告诉GLFW使用的核心模式。实例化窗口之后用glfwMakeContextCurrent()去把当前窗口
2020-03-19 cdc
2 / 3