- 博客(25)
- 收藏
- 关注
原创 Unity-URP
想要了解什么是URP,那么得先了解什么是SRP。SRP全称为(可编程渲染管线/脚本化渲染管线),是Unity提供的新渲染系统,可以在Unity通过C#脚本调用一系列API配置和执行渲染命令的方式来实现渲染流程,SRP将这些命令传递给Unity底层图形体系结构,然后再将指令发送给图形API。说白了就是我们可以用SRP的API来创建自定义的渲染管线,可用来调整渲染流程或修改或增加功能。URP的全称为(通用渲染管线), 它是Unity官方基于SRP提供的功能而专门开发出的一个模板。
2023-10-30 10:15:09 255
原创 URP之屏幕后处理 高度雾
之前实现了一个,但这个是在Built-in管线下的。现在需要改成URP管线下,然后发现了改动量挺大的,原来的OnRenderImage、OnPreRender都失效了,所以记录一下。"雾强度""雾的起始高度""雾的终止高度""雾的颜色""雾X方向流动速度""雾Z方向流动速度""雾噪声图权重""雾噪声图参数"defined。
2023-09-19 14:38:30 485 2
原创 渲染 - 水效果的实现
水效果水体表现分析水的基本表现特点:1. 海水吸收光线的透射现象0. 水体光照模型(漫反射、高光反射)0. 海岸波浪泡沫表现0. 菲涅尔表现0. 海水波动表现0. 光线的折射。参考资料:学到了一种比较好的水效果实现,记录一下。水体表现分析水效果可谓是渲染中的一大特色,既有高水平的基于快速傅里叶变幻的FFT效果,也有简单的单纯顶点动画表现。其中囊括了比较多的技术点。既有真实感水体渲染,也有卡通风格的水体渲染。都很漂亮,有特色的。今天介绍我觉得很可以的真实感水体表现。水的基本表现特点:以下特点不已
2020-12-09 12:47:48 1179
原创 第八章《Unity游戏优化》内存管理
第八章《Unity游戏优化》内存管理1.Mono类库平台1.脚本语言2.内存域1. 垃圾回收2. 内存碎片3.多线程的垃圾回收2.代码编译内存效率是优化的重要元素。失控的管理会出现内存泄漏导致崩溃闪退或者过高的GC浪费宝贵的CPU时间导致卡顿。1.Mono类库平台mono项目的目标是通过框架提供跨平台开发。可以编译为.NET通用中间语音CIL的任何语言都能与Mono平台集成。常见错误观念:Unity引擎是构建在Mono平台上的。这是错误的,因为很多任务比如:音频、渲染、物理、动画等等是底层C++运行
2020-11-28 21:04:40 813
原创 《Unity游戏优化》总览
Unity游戏优化 目录0. 任务清单1. UnityProfiler2. 脚本代码优化技术点3. 批处理和GPU Instancin4. 资源导入设置5. 物理引擎6. 渲染7. VR AR 相关技术8. 内存管理9. 提示技巧Unity游戏优化第二版性能优化的目标之一是最大化地利用可用资源,包括CPU资源,如销毁的CPU循环数,使用的主存控件RAM大小,也包括GPU资源,如显存VRAM和内存带宽,填充率等。然而最重要的目标是确保没有哪个资源不合时宜的导致性能瓶颈本文解决 导致瓶颈的原因不管是持续
2020-08-27 21:12:33 466
原创 PBR 基于物理的渲染
PBR1. PBR概念路线发展学习路径。1. 渲染方程2. 全局光照3. 关键字解释2. PBR技术细节1. GGX法线分布函数2. 高度图3.3. 解析Unity官方PBR代码1. PS4高标准效果解析2. 移动端高等效果解析3. 移动端基本效果解析4. 移植移动端的技术点1. 如何廉价高效的获取环境间接光2. 那些拟合的函数3. 需要抛弃的高耗能函数5. 添加新的效果到PBR1. SSS次表面效果,添加到PBR内尝试2. 艺术化风格的PBR效果,也可以叫NPR的PBR参考资料这篇文章作为关于PBR总目
2020-08-26 11:09:22 1652 2
原创 第六章 渲染优化
渲染填充率过度绘制Overdraw两个指标往往是瓶颈的根源:1. 填充率 2. 内存带宽填充率过度绘制Overdraw过度绘制的越多,浪费的填充率越多。
2020-08-20 19:46:39 1617
原创 《Unity游戏优化》第三章 批处理
动态批处理、静态批处理、GPU Instancin 和SRP Batcher 批处理原理批处理设置Frame Debugger1. 动态批处理动态批处理的使用场景动态批处理的缺点:动态批处理的三个重要优势:动态批处理的要求:2. 静态批处理静态批处理的缺点:静态批处理的要求:静态批处理的内存需求静态批处理总结在运行时实例化静态网格3. GPU InstancinGPU Instancin应用场景GPU Instancin优点GPU Instancin缺点4. SRP Batcher如何查找合批失败的原因总结
2020-08-19 22:46:40 1870
原创 Shader学习路径
Shader学习路径:本人从程序角度,根据多方面资料,陆续整理下学习路径,算是给自己做个计划。学习路径:初级:1. 必读:《Shader入门精要》2. 必读:《3D数学基础图形与游戏开发》选读:《GPU 编程与CG 语言之阳春白雪下里巴人》选读:《ShaderLab开发实战详解》其中精要和下面选读都是基础入门知识,其中有部分重复,推荐选读是原因是,遇到相同的知识时,相当于复习。同时不同的作者对同一个知识点的理解角度不同,可以让你更客观更深入的了解。中级:...
2020-08-04 23:54:51 629
原创 查找相关知识点
查找符号表有序数组中的二分查找1. 二叉查找树2. 红黑树(平衡二叉查找树)3. 散列表符号表有序数组中的二分查找二分查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。所以适用于静态有序数据查找,因为添加和删除元素需要维护数据的有序性,代价大。二分查找详解public static int Method(int[] nums, int target){ int low = 0; int high = nums.Length - 1; while (low
2020-05-25 16:52:58 248
原创 位运算及其骚操作
位运算概念补码运算符左移运算:<<右移运算:>>按位与:&按位或:|按位异或:^按位取反:~应用1. 判断数字奇偶2. 变量交换3. 运算 + - * /4. 异或筛去出现偶数次的数5. 位操作交换符号6. 位操作求绝对值7. 位操作进行高低位交换概念计算机中的数在内存中都是以二进制形式进行存储的,用位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高,在程序中尽量使用位运算进行操作,这会大大提高程序的性能。补码数值有正负之分,二进制中最高位为0代表正
2020-05-15 17:41:09 714
原创 动态规划
动态规划一道需要采用动态规划解决的题的特点有哪些?例题讲解:硬币一道需要采用动态规划解决的题的特点有哪些?面试时面试官不会明说,请采用动态规划算法解决这道题,所以我们首先应该判断一道题是否需要采用动态规划。1.计数型:有多少种方式走到右下角有多少种方法选出k个数使得和是Sum…2.求最值:从路径的最大和最长…3.求存在性:取石子游戏,先手是否必胜能不能选出k个数使得和是Sum动态规划与分治方法类似,都是通过组合子问题的解来来求解原问题的。再来了解一下什么是分治方法,以及这两者之间
2020-05-14 21:57:24 254
原创 排序总览
排序总览概述1. 冒泡2. 直接插入排序3. 直接选择排序4. 堆排序5. 计数排序6. 桶排序7. 希尔排序8. 快速排序9. 归并排序具体代码实现1. 冒泡2. 直接插入排序3. 直接选择排序4. 堆排序5. 计数排序6. 桶排序7. 希尔排序8. 快速排序9. 归并排序概述这短时间找各种排序学了下,头晕脑胀的。猴子掰玉米,学的时候原理都理解了,可是记住了这个,忘记了前面的。。。所以特意做个总览,把优缺点和特性梳理下。也方便后续查找。大概描述下排序算法思路简介,和各个排序的C#实现。重点是描述下
2020-05-14 21:47:22 499
原创 漫画算法学习笔记
漫画算法概述数据结构基础树排序面试中的算法如何判断链表有环实际应用近期看了本书 《obook.cc-漫画算法:小灰的算法之旅±+魏梦舒》推荐买这本书很有意思,也学到很多。比写业务有趣多了。好记性不如烂笔头,所以记录下笔记,顺便用自己的方式c#实现以下,毕竟名言说的好Talk is cheap, show me the code。基本流程是:先看题,有思路直接写代码,没思路接着看接替思路...
2020-05-02 19:39:43 678
原创 第七章 Shell
Shell学习笔记万物起始"Hello World"变量字符串:获取字符串长度提取子字符串查找子字符串数组:声明数组获取数组的长度传递参数输入参数获取参数特殊字符基本运算符算术运算符关系运算符布尔运算符字符串运算符文件测试运算符echoShell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 脚本(shell ...
2020-04-18 19:17:53 421
原创 第六章 IOS打包
创建IOS 开发者证书注册苹果ID,购买苹果开发者账号 699/年。网址Apple Developer进入后,填写name,BundleID:(unity打包界面内),APP服务 有需要则选,按提示进行注册。申请证书,导入钥匙串打开mac中的 钥匙串访问app按照要求填写,保存CSR文件。申请开发者证书申请Development 开发者证书选IOS App Develo...
2020-04-17 15:07:43 240
原创 第四章 PC打包
win平台打包svn相关命令行在Jenkins中调用unity函数进行Win打包前提条件是 SVN 工作正常,没有的先安装VisualSVN和tortoisesvn 并且配置好。svn相关命令行svn commit -m “测试命令行上传” taa.txt (-m 后面跟双引号,里面是上传log 后面在跟上传的文件或者目录)svn commit -m “测试命令行上传全部文件” *...
2020-04-16 16:58:28 509
转载 第三章 bat批处理命令
批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令,jenkins在win上运行时需要配合.bat。可参考作者至尊宝的文章学习。
2020-04-15 16:58:51 485
原创 第二章 新建一个测试流程
新建一个用于测试的jenkins流程步骤:1. 点击New 任务,Enter an item name中输入任务名字:test,点击ok。2.
2020-04-15 16:48:24 187
原创 第一章 Jenkins
JenkinsJenkins是什么呢?我们为什么要采用Jenkins,它在我们打包中哪些些环节起到了作用?Jenkins是什么呢?我们为什么要采用Jenkins,它在我们打包中哪些些环节起到了作用?...
2020-04-15 16:32:12 191
原创 准备开始写一些博客
emmmm。。。准备开始写东西了,以前学习时习惯手写笔记,写了一大本笔记本后,发现手写代码 太慢了,并且工作中还用不到,无法复制黏贴。把纸质笔记里和网络上网络笔记都搬过来,集中起来。要搬到这里是 方便其他人能看看,留言什么的。不全是 自己的学习笔记,我看到其他好的,也会自己理解一遍后抄一遍,方便自己记录。(现在一堆网络收藏夹。。。)浑浑噩噩。。。...
2020-04-12 23:39:06 197
转载 谷歌输入法。时刻注意书写整洁的代码
1.文件命名规则 文件名全部小写,可以含下划线或连字符,按项目约定命名,且尽量保证文件名明确。比如:cmd_save_player_info_class.cc my_use_full_class.cc 定义类的文件名一般是成对出现,如:foo_bar.h foo_bar.cc 若是类中含大量内联函数,我们还可
2017-02-03 10:37:39 297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人