logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

ShaderLab: PBR + IBL

本文实现了一个基于物理的渲染(PBR)系统,通过四个核心文件完成PBR材质计算和渲染。系统采用Cook-Torrance微表面模型处理直接光照,使用球谐函数(SH)计算漫反射环境光,通过预过滤环境贴图和BRDF查找表(LUT)处理镜面反射环境光。PBRRunner.cs脚本负责协调这些组件,将复杂的环境光积分预计算到纹理中,运行时只需简单组合即可实现高效渲染。该系统完整展示了PBR渲染管线的工作流

文章图片
#材质
现代实时渲染管线

底层GPU图形管线:例如顶点着色器、光栅化、像素着色器;上层引擎渲染管线:例如URP、HDRP、UE Deferred Renderer可以将渲染管线理解为:把场景里的模型、材质、灯光、相机、特效,经过CPU、GPU处理,最终变成屏幕上一张图像的全过程。

#着色器
ShaderLab:水面

水面表现是一个技术美术中一个常见的课题,在本篇文章中我参考了在2014年创作的Seascape,并以此代码为基础,翻译成ShaderLab语言,并分析其中每个函数的作用和必要性。ShaderLab代码:https://pan.baidu.com/s/1wuerhUVqQg8amo6a0rk2Ug?pwd=9527。

文章图片
#着色器
ShaderLab:星空宇宙

摘要:本文介绍了实现动态星空效果的着色器技术。通过顶点着色器转换坐标,片元着色器完成星图绘制,包含随机点生成、智能连线、辉光渐变等特性。采用分层渲染实现远近效果,远处星星数量更多且渐入渐出。通过噪声函数和利萨如曲线控制粒子运动,使用线段光绘函数创建发光连接线。系统支持鼠标交互,颜色随时间循环变化,并添加径向模糊和呼吸效果。关键技术包括动态粒子位置计算、距离衰减光照模型和时间驱动的动画控制,最终呈现

文章图片
#着色器#unity
独立着色器文件!更好的可读性!

上一节我们编写了一个完整的,从编写顶点文件、顶点着色器、片段着色器、着色器程序,到启动项目。但是仍然有一个问题:着色器文件、片段着色器文件的源文件都是我们自己在main.cpp文件里硬编码的,这样就导致我们的着色器程序的,并且编辑起来会更困难。所以我们在这篇文章里会将着色器文件独立出来,并且新建一个类来管理这个着色器文件。

文章图片
#着色器
到底了