随笔分类 - 图形学
摘要:按照我们的常规理解,渲染顺序应该是: 1.不透明物体按照相机空间进行Z轴排序,从前往后排,先渲染前面再渲染后面,避免造成过多的OverDraw 2.绘制天空盒,天空盒在要不透明物体之后渲染,避免造成OverDraw 3.绘制透明物体,透明物体按照相机空间进行Z轴排序,从后往前排,先渲染最后面的,这样
阅读全文
摘要:OpenGL跟Vulkan可以理解为一套规范,并不是实际存在的软件,在Linux上,Mesa就是对它们的实现。 Mesa 是一个开源的图形库,它提供了对 OpenGL 和 Vulkan 等图形 API 的具体实现,充当了应用程序与图形硬件之间的桥梁。 libGL:在类Unix系统(如Linu
阅读全文
摘要:参考链接: 团结引擎 - 手册: 在自定义渲染管线中创建简单渲染循环 可定制渲染管线(Deprecated) | Cocos Creator,示例代码:cocos-example-custom-pipeline Custom SRP - Custom Render Pipeline | 三叔的数字花
阅读全文
摘要:在实时渲染领域,向前渲染(Forward Rendering) 和 延迟渲染(Deferred Rendering) 是两种核心的渲染管线架构,核心区别在于 “光照计算的时机与方式”—— 前者在 “绘制物体时” 同步计算光照,后者先 “记录物体信息” 再统一计算光照。二者在性能、功能支持、资源消耗上
阅读全文
摘要:HDRP Dynamic resolution | High Definition Render Pipeline | 17.3.0 URP/Built-In Unity - Manual: Dynamic Resolution FeatureWhat the feature uses to ups
阅读全文
摘要:一、预烘焙 GI(Pre-baked GI) 计算时机为编辑阶段,运行时不更新数据,仅适用于静态场景 / 物体,核心优势是性能开销极低。 1. 光照贴图(Lightmap) 核心逻辑:将静态物体表面的直接光 + 间接光信息烘焙到 2D 纹理(如 RGBA32 或 BC6H 压缩格式),运行时直接采样
阅读全文
摘要:参考: Unity无光照假阴影Shader实现及常见问题总结 - 简书 (jianshu.com) Unity Shader - Planar Shadow - 平面阴影_unity 平面阴影-CSDN博客 详解平面阴影 Planar Shadow (概念篇) - 知乎 (zhihu.com) 详解
阅读全文
摘要:参考: 【Unity Shader入门】4、几何着色器Geometry Shaders之结构解析_shader编译目标级别-CSDN博客 Geometry Shader(Unity几何着色器)_unity geometry shader-CSDN博客 Unity几何着色器详解 - 知乎 (zhihu
阅读全文
摘要:Compute Shader 是一种高级功能,用于在 GPU 上执行并行计算任务。它非常适合处理大量数据,执行复杂的数学计算,或在高性能图形处理中使用。 常用于,需要密集的并行多线程计算,CPU不擅长并行计算,丢给GPU去算,然后把结果返回给CPU,或者直接渲染到屏幕上。 需要图形API,Vulka
阅读全文
摘要:一本比较牛的PBR书籍: kanition/pbrtbook: pbrt 中文整合翻译 基于物理的渲染:从理论到实现 Physically Based Rendering: From Theory To Implementation Unity 从 5.0 版本开始支持 PBR 材质(Standar
阅读全文
摘要:unity官方的方案:Animation Instancing:高性能大规模动画解决方案 - 技术专栏 - Unity官方开发者社区 Unity-Technologies/Animation-Instancing: This technique is designed to instance Cha
阅读全文
摘要:1.拷贝相机:利用额外的相机将反射的内容渲染到Render Target Texture上 参考:《Unity Shader入门精要》10.2.1节 原理很简单,以反射面(例如镜子)为中心,创建一个相机,处于主相机在镜子中反射的位置,用脚本实时更改相机位置与朝向 这个相机渲染的内容不直接输出到屏幕,
阅读全文
摘要:在渲染中实现阴影的方式有多种,具体取决于所使用的渲染引擎和技术。以下是一些常见的实现阴影的方法: 平面投影 (Planar Shadow):Planar Shadow 平面投影(假阴影),低开销的阴影实现方式 - JeasonBoy - 博客园 (cnblogs.com) 开销最低的方式,思路就是根
阅读全文
摘要:有时候要调试一些游戏的渲染过程,可以用以下游戏: 1.Frame Debugger 如果是Unity项目,可以直接在编辑器的Window/Analysis/Frame Debugger打开自带的抓帧工具,对于自己的项目非常合适,能看到每一帧渲染的整个过程 2.RenderDoc 参考:RenderD
阅读全文
摘要:参考: Unity3D Shader系列之深度纹理_unity depth texture_WangShade的博客-CSDN博客 UnityShader基础(八)——深度纹理与法线纹理_unity shader 获得法线_implosion98的博客-CSDN博客 笔记十五——获取深度和法线纹理
阅读全文
摘要:Unity支持的渲染管线方式: Builtin:内置渲染管线,也就平时用的最多的方式,不可自定义渲染流程,兼容性最好,但是可定制性比较差,性能比较差 SRP:可编程渲染管线,支持通过C#代码控制渲染流程,比较复杂,需要设置的东西非常多,所以Unity内置了2个模板 HDRP:高清渲染管线,跟我们关系
阅读全文
摘要:旧版内建渲染管线下的毛玻璃模糊效果: 实现原理很简单,就是利用Unity的GrabPass来抓取当前屏幕渲染的图像,然后进行一个Blur高斯模糊算法。为了效果更好,可以分别进行横竖模糊,只不过会变成4个DC而已。 使用也很简单,新建一个材质,赋予这个着色器,并给UGUI的Image设置该材质即可。通
阅读全文
摘要:参考:在shader中实现五种描边方法 从描边方式上来讲,大体可分为两种,一种是对着原模型往外扩大挤出,然后通过某种方式裁剪掉与原模型重合的地方,来实现描边。另一种则是通过算法算出一张图片里,那些地方是边缘。 注:以下用到双通道的方式,如果是在新版Unity里,开启了URP(自定义渲染管线,默认只支
阅读全文