月度归档: 2023 年 9 月

10 篇文章

thumbnail
UnityProfiler 小 Tips
Unity下常见的等待函数 WaitForTargetFPS:等待达到目标帧率,一般这种情况CPU与GPU都没什么负载问题; Gfx.WaitForGfxCommandsFromMainThread/…
thumbnail
双面渲染的透明效果
概述 对于现实世界中的物体,不仅可以透过它看到其他物体的样子,也可以看到这个物体的内部结构,但之前实现的透明度测试和透明度混合相关Shader都无法看到模型的内部结构; 双面渲染的透明效果Shader…
thumbnail
开启深度写入的半透明效果
概述 对于本身结构较为复杂的模型,使用之前的透明混合Shader会由于关闭了深度写入,产生错误的渲染效果; 因此可以采用开启深度写入的半透明Shader优化效果; 基本原理 使用两个Pass渲染通道来…
thumbnail
透明混合
概述 透明测试并不能实现半透明效果,它只存在看得见和看不见两种状态,一般用来处理镂空效果; 要实现半透明效果,就要使用透明混合l 基本原理 关闭深度写入,开启混合,让片元颜色和颜色缓冲区中颜色进行混合…
thumbnail
透明测试
基本原理 通过一个阈值来决定哪些像素应该被保留,哪些应该被丢弃; 具体实现 利用片元携带的颜色信息中的透明度(A值),不满足条件时(通常是小于某个阈值)该片元就会被舍弃,被舍弃的片元不会再进行任何处理…
thumbnail
颜色混合
混合的基本原理 当在进行渲染时,当片元通过了深度测试后,会进入到混合流程中; 在混合流程中: 当前片元的颜色被称为源颜色 颜色缓冲区中的颜色被称为目标颜色 混合就是将源颜色和目标颜色用对应的混合算法进…
thumbnail
深度测试与深度缓冲
概述 深度缓冲是一个与屏幕像素对应的缓冲区,用于存储每个像素的深度值(距离相机的距离); 深度测试的主要目的是确保在渲染时,像素按照正确的深度(距离摄像机的距离)顺序进行绘制,从而创建正确的遮挡关系和…
渲染队列
概述 作用是确定物体渲染的顺序 Tags { "Queue" = "标签值" } 常用Unity预先定义的渲染队列标签 Background(背景)(队列号1000):最早被渲染的物体的队列,一般用来…
Dijstra 寻路算法
概述 迪杰斯特拉算法是一种广为人知的最短路径算法,下面叫做Dijkstra; Dijsktra和BFS的本质区别在于BFS是按照人为预先定义好的顺序访问容器中的节点,而Dijsktra是访问当前容器中…
thumbnail
遮罩纹理
概述 以高光遮罩纹理举例,高光遮罩纹理起到的效果就是可以控制模型上的各个区域受到高光影响的强弱; 高光遮罩纹理的原理 从纹理中取出对应的遮罩掩码值(颜色的RGB值都可以使用); 用该掩码值和遮罩系数(…