摘要: 离线渲染能够实现间接光照效果,主流的方法有两个:辐射度算法和光线追踪算法。但是,这两个算法对于实时渲染而言都是难以承担的。因此,实时渲染的间接光照效果是需要额外实现的。这一系列的算法就是**全局光照算法**。全局光照算法有两类,一类是预计算的算法,令一类则不需要预计算。此外,全局光照算法一般是区分了 阅读全文
posted @ 2023-06-15 20:50 ETHERovo 阅读(36) 评论(0) 推荐(0) 编辑
摘要: #待整理内容... ![](https://img2023.cnblogs.com/blog/3166478/202306/3166478-20230629112133442-1166160828.png) ![](https://img2023.cnblogs.com/blog/3166478/2 阅读全文
posted @ 2023-06-15 20:49 ETHERovo 阅读(8) 评论(0) 推荐(0) 编辑
摘要: ## Shadow Map * shadow map思路很简洁,就是比较fragment在光照空间中的深度与shadow map记录的最浅深度,来判断是否被遮挡。这是一个比较基础的部分,在这里就不提实现了,感兴趣可以看一下我的OpenGL系列的文章,或者是LearnOpenGL的原文。我实现了三种基 阅读全文
posted @ 2023-05-31 23:13 ETHERovo 阅读(73) 评论(0) 推荐(0) 编辑
摘要: # Custom Render Pipeline ### A new Render Pipeline #### Project Setup 我们需要在线性空间计算光照,所以设置为Linear。 ![](https://img2023.cnblogs.com/blog/3166478/202308/3 阅读全文
posted @ 2023-08-20 21:36 ETHERovo 阅读(154) 评论(0) 推荐(0) 编辑
摘要: # 字符串 #### 左旋转字符串 [剑指 Offer 58 - II. 左旋转字符串](https://leetcode.cn/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/description/?envType=study-plan-v2&envId=cod 阅读全文
posted @ 2023-08-19 23:08 ETHERovo 阅读(10) 评论(0) 推荐(0) 编辑
摘要: [剑指offer 05.替换空格](https://leetcode.cn/problems/ti-huan-kong-ge-lcof/) ```cpp class Solution { public: string replaceSpace(string s) { string out; for( 阅读全文
posted @ 2023-07-07 00:42 ETHERovo 阅读(24) 评论(0) 推荐(0) 编辑
摘要: # 一、理论 ## 1. 反射率方程 $$ L_o(p,\omega_o)=\int_\Omega f_r(p,\omega_i,\omega_o)L_i(p,\omega_i)n\cdot \omega_i d\omega_i $$ 反射率方程应该这样理解: * 辐射radiance某个着色点或者 阅读全文
posted @ 2023-05-26 22:44 ETHERovo 阅读(45) 评论(0) 推荐(0) 编辑
摘要: # 一、Blinn-Phong model * 冯氏模型的镜面反射采取了观察方向与反射方向的夹角,这样会造成当夹角大于九十度时,就会造成镜面反射光为零,这样一般情况下问题不大,但是当镜面反射的glossy程度比较大时,就会出现镜面反射边缘的截断现象。 * Blinn-Phong model改用半程向 阅读全文
posted @ 2023-05-25 20:34 ETHERovo 阅读(156) 评论(0) 推荐(0) 编辑
摘要: # 一、深度测试 ## 1. 深度缓冲 * 深度缓冲记录了屏幕空间内的像素深度(width*height),它会以16、24或32位float的形式储存它的深度值。在大部分的系统中,深度缓冲的精度都是24位的。 ## 2. gl_FragCoord * 对于每一个片段的深度,可以从GL_FragCo 阅读全文
posted @ 2023-05-14 22:04 ETHERovo 阅读(136) 评论(0) 推荐(0) 编辑
摘要: # 一、Assimp * Assimp可以将模型导成如下的格式: * 首先,该模型被打包成一个**scene**对象,是aiScene类型的,一般是导出为指向常量的指针。在scene中保存着三个对象: * 第一个是一个aiNode类型的指针,即根节点scene->mRootNode。 * 第二个是一 阅读全文
posted @ 2023-05-13 11:59 ETHERovo 阅读(119) 评论(0) 推荐(0) 编辑