自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(216)
  • 资源 (5)
  • 收藏
  • 关注

原创 Unity SRP自定义渲染管线 -- 2.Custom Shaders

本章将接着上一篇文章,在初步实现一个渲染管线后来创建自定义的shader。上一篇文章的链接https://blog.csdn.net/yinfourever/article/details/90516602。在本章中,将完成以下内容:写一个HLSL Shader 定义constant buffer(常量缓冲区) 使用Render Pipeline Core Library 支持动...

2019-06-06 16:20:10 4008

转载 Mac 基于HTTP方式访问下载共享文件

Mac 基于HTTP方式访问下载共享文件_the丶only的博客-CSDN博客

2023-07-03 10:34:43 216

原创 判断GPU bound还是CPU bound

2023-07-03 10:33:51 306

原创 ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the

最近上传IOS包发布时收到邮件遇到这个issue,解决方案是重新生成 App Store 版本的provisioning file重新出包。

2023-05-26 16:16:41 809

转载 std::atomic原子操作

第十一节std::atomic原子操作_HITXJ的博客-CSDN博客_std::atomic用法

2022-05-03 18:21:27 261

转载 h、cpp和hpp头文件之间使用区别

hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用 project中的cpp文件数与编译次数,也不用再发布烦人的lib与dll,因此非常适合用来编写公用的开源库。hpp的优点不少,但是编写中有以下几点要注意:1、是HeaderPlus Plus 的简写。2、与*.h类...

2022-05-03 18:16:27 1523

转载 c++头文件能否包含函数实现?

头文件即.h文件一般是用来写函数或者类的定义的,而函数的实现一般在cpp文件中完成.但是我也看到过一些文件就在头文件中同时定义函数和实现.打个比方我现在有个头文件名叫header.h,内容如下#include <iostream>void printInt(int number){ std::cout<<"print an int number "<<number<<std::endl;}这个头文件同时定义与实现了这个函数.似乎

2022-05-03 18:12:03 4540

原创 xcode 自动化出包

iOS提高效率之Xcodebuild自动打包总结 - 简书使用xcodebuild命令进行自动化打包 - 简书Add a profile to the provisioningProfiles dictionary in your Export Options property list. | 亂馬客 - Re:從零開始的軟體開發生活

2022-02-22 10:59:00 1668

原创 Unity使用sdkmanager命令行工具安装Android SDK

转自:使用sdkmanager命令行工具安装Android SDKUnity自带的SDKManager没有GUI工具,如果需要其他android SDK版本,可以用Unity自带的SDKManager使用命令行方式安装:例如安装android27,将目录切到Unity的Android SDK安装目录后,打开命令行工具输入:./sdkmanager "platform-tools" "platforms;android-27" 即可...

2022-02-03 11:15:46 5216

原创 C# Lambda 和 匿名函数的GC总结

关于Lambda和 匿名函数,闭包的GC,其实可以总结为两条。为了方便理解,以举例说明,首先我们定义变量,静态变量,以及函数如下: static int staticVariable = 0; int variable = 0; private void Func(Action callback) { } private void StaticFunc(Action callback) { } private void Ca

2022-01-19 17:47:07 1687 1

转载 解决递归栈溢出:尾递归

原文:尾递归_百度百科尾递归如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成优化的代码。目录1原理 2实例原理当编译器检测到一个函数调用是尾递归的时候,它就覆盖当前的活动记录而不是在栈中去创建一个新的。编译器可以做到这点,因为递归调用是当前活..

2022-01-18 10:38:06 429

转载 CPU Cache原理与示例

转自这篇 CPU Cache,估计也没人看基础知识首先,我们都知道现在的 CPU 多核技术,都会有几级缓存,老的 CPU 会有两级内存(L1 和 L2),新的CPU会有三级内存(L1,L2,L3 ),如下图所示:其中: L1 缓存分成两种,一种是指令缓存,一种是数据缓存。L2 缓存和 L3 缓存不分指令和数据。 L1 和 L2 缓存在每一个 CPU 核中,L3 则是所有 CPU 核心共享的内存。 L1、L2、L3 的越离CPU近就越小,速度也越快,越离 CPU 远,

2022-01-13 12:45:10 370

转载 UGUI 合批原理

转自:UGUI合批原理笔记 - 赵青青 - 博客园UGUI合批规则图解_时光不染-CSDN博客_ugui合批规则合批的过程#网格更新机制#Cavans.SendWillRenderCanvas m_LayoutRebuildQueue m_GraphicRebuildQueue Canvas.BuildBatch 更新所有DrawCall WaitingForJob 子线程网格合并 PutGeometryJobFence BatchRendere.Flu.

2022-01-01 11:57:52 706

转载 TCP三次握手和四次挥手

转自https://segmentfault.com/a/11900000391655920. 前言在面试中,计算机网络的 TCP 三次握手和四次挥手是很常见的问题,但是在实际面试中,面试官会更愿意听到怎样的回答呢?详细程度是怎样的?越简单常见的问题越不可小觑,万丈高楼平地起,把简单的问题深入化,才更能拉开与竞争者的距离。掌握了本文讲的全部知识点,关于 TCP 三次握手和四次挥手基本就 OK 了 ????1. TCP 和 UDP讲解 TCP 三次握手和四次握手之前,我们先了解一下 TCP

2021-12-22 16:30:57 133

转载 通俗讲解:图像傅里叶变换

转自某乎:通俗讲解:图像傅里叶变换 - 知乎这里我们主要要讲的是二维图像傅里叶变换,但是我们首先来看一张很厉害的一维傅里叶变换动图。妈耶~厉害哇!它把时域和频域解释的很清楚!什么!你看不懂!简单点说就是:所有的波都可以用很多个正弦波叠加表示。然而这些波又可以通过频率、幅值和相位来表示。这样你就可以从左边那张图中时域的视角转化为咱们高大上的频域视角啦。那首先来看一个例子~其实右边图的每一个点,可以理解为它在描述一种平面波。那…其实还是有两个点之间还是有半分钱关系的,

2021-12-17 15:30:16 1349

原创 Leetcode1143. 最长公共子序列(c#)

题解:力扣public class Solution { public int LongestCommonSubsequence(string text1, string text2) { int num1 = text1.Length; int num2 = text2.Length; int[,] dp = new int[num1 + 1, num2 + 1]; for(int i = 0; i < ...

2021-11-09 23:55:03 85

原创 Unity URP运动模糊效果Shader

实现原理见这篇文章Unity Shader-深度相关知识总结与效果实现(LinearDepth,Reverse Z,世界坐标重建,软粒子,高度雾,运动模糊,扫描线效果)_puppet_master的专栏-CSDN博客_shader深度核心Shader代码Shader "Universal Render Pipeline/Dejavu/MotionBlur"{ Properties { _MainTex("Base (RGB)", 2D) ...

2021-10-30 11:54:58 1801

原创 Unity URP世界空间后处理扫描圈效果Shader

实现原理见这篇文章Unity Shader-深度相关知识总结与效果实现(LinearDepth,Reverse Z,世界坐标重建,软粒子,高度雾,运动模糊,扫描线效果)_puppet_master的专栏-CSDN博客_shader深度核心Shader代码Shader "Universal Render Pipeline/Dejavu/WorldDepthScanCircle"{ Properties { _MainTex("Base (RGB)", 2D).

2021-10-30 11:46:37 1427

原创 Unity URP高度雾效果Shader

实现原理见这篇文章Unity Shader-深度相关知识总结与效果实现(LinearDepth,Reverse Z,世界坐标重建,软粒子,高度雾,运动模糊,扫描线效果)_puppet_master的专栏-CSDN博客_shader深度核心Shader代码Shader "Universal Render Pipeline/Dejavu/HeightFog"{ Properties { _MainTex("Base (RGB)", 2D) = "white" .

2021-10-30 10:58:32 4046 4

原创 Unity中的SystemInfo.deviceUniqueIdentifier 唯一ID

做游戏时可能经常使用SystemInfo.deviceUniqueIdentifier作为用户的唯一ID进行注册登录,但是你会发现从谷歌商店上下载的自己游戏,和自己从Unity工程中直接打包出来的游戏账号竟然是不一致的!这个坑还是很坑爹的,纠其原因是SystemInfo.deviceUniqueIdentifier跟签名有关,Google商店的签名功能会对APK重签,从而导致SystemInfo.deviceUniqueIdentifier变化。所以想保证账号一致的情况下测试的话需要将app bun

2021-10-25 11:44:41 3148

原创 Unity URP中根据深度重建世界坐标

通过深度值重建世界坐标,可以做出很多有意思的后处理效果,先实现下度值重建世界坐标这个功能。一.验证重建效果首先,得先找到一种证明反推回世界空间位置正确的方法。在相机前摆放几个物体,尽量使之在世界坐标下的位置小于1,方便判定颜色,然后将几个物体的shader换成如下的一个打印世界空间位置的shader://打印在世界空间位置Shader "Universal Render Pipeline/Dejavu/ReconstructPositionWithDepth/WorldPosPrint"

2021-10-24 18:50:10 10245 3

转载 Unity Built-in Shader转URP Shader 接口查询对照表

本篇文章转自Teofilo Dutra编写的《From Built-in to URP》,其中有很多在写URP管线Shader时需要用到的函数,作为备忘速查表非常实用,所以记录于此。本文经过精简和翻译,不一定适用于大家,可以点击上方链接跳转至作者原文。本文是基于7.3版本的URP编写的,有些暂时还不支持的内容可能在后续版本更新迭代。结构首先要在SubShader的Tags中添加”RenderPipeline” = “UniversalPipeline”,并且使用HLSL的宏代替旧版的CG语言宏。

2021-10-13 10:41:53 3378

原创 Python 每日定时查询数据库生成Excel报表,并群发邮件

最近在做游戏打点数据的一些统计处理,写了个Python脚本完成每日定时自动查询生成Excel报表并群发邮件的小功能。拆解几个需求点:一.连接数据库并查询以下是一个查询总注册人数的示例代码,host port db user password等填入自己数据库的参数。mysql就不多说了,根据统计需求自己撸吧import pymysqlhost = 'xxxx'port = xxxdb = 'xxx'user = 'xxx'password = 'xxx'# ---- 用p

2021-10-11 14:33:44 1770 3

原创 LeetCode695. 岛屿的最大面积(C#)

DFS经典题,两种方法,递归或者用栈1.递归public class Solution { public int MaxAreaOfIsland(int[][] grid) { int rows = grid.Length; int cols = grid[0].Length; int res = 0; for(int i = 0; i < rows; i++) { f

2021-10-06 16:35:08 103

原创 ZoomBlur 聚焦模糊效果Shader(URP)

修改自这篇文章【Unity】UniversalRPでカスタムポストプロセスを作る【ZoomBlur】 - Qiita1. VolumeEditor,用于在UnityVolume中控制自己写的后处理效果using UnityEngine;using UnityEngine.Rendering;using UnityEngine.Rendering.Universal;[System.Serializable, VolumeComponentMenu("Dejavu/ZoomBlur..

2021-10-04 16:29:47 998

原创 Z深度相关知识

// Z buffer to linear depthinline float LinearEyeDepth( float z ){ return 1.0 / (_ZBufferParams.z * z + _ZBufferParams.w);} // Values used to linearize the Z buffer (http://www.humus.name/temp/Linearize%20depth.txt)// x = 1-far/near// y = far/n.

2021-10-02 14:02:21 1213

原创 生成FaceBook所需的散列哈希值

Hex to base64 converterFaceBook后台发布应用时,需要填入hash值,今天自己用openssl生成的时候只有24位并不正确,与其费劲巴拉的自己折腾openssl,还是感谢国外的大佬们吧,工具网址直接输入hex的sha1值*(从GooglePlay的后台中找到自己的应用,在应用信息中心可以获得),生成所需的base64 散列值。回答链接:Android-Facebook应用的密钥哈希您可以从SHA-1密钥获取密钥哈希。非常简单,您需要从Play商店获取SHA-1(Sig

2021-09-30 17:28:04 1338

原创 Unity内实现Android APK版本更新

最近做项目有个需求是要Android应用内强更包体。Google一波直接选了一个android原生开源项目GitHub - yangchong211/YCUpdateApp: 轻量级版本更新弹窗,弹窗上支持更新进度条,可以设置普通更新或者强制更新。解决8.0以上通知栏不显示问题,解决7.0以上安装apk异常,下载完成则会自动提示安装;下载异常,失败,错误等状态,支持重启下载任务;还支持自定义下载路径。代码量少,调用简单……但是也是需要接入到Unity中,趟了一些小坑记录下实现步骤步骤1Un.

2021-09-15 11:19:19 1441

原创 Unity Android解决信息流广告关闭报错

Unity接一些原生Andorid的SDK时,经常会出现这个错:W/System.err: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.解决方法是在android层写的java文件中用runOnUiThread()原因就是android的UI更新要在UI主线程中,广告SDK一些回

2021-09-01 11:01:11 183

原创 使用arm-linux-androideabi-addr2line 定位Unity Android 段错误

arm-linux-androideabi-addr2line是NDK中提供的将内存地址转换成行号的一个工具,通俗具体点就是根据各种日志,譬如trace日志和tomestone日志中包含的so库日志的中偏移内存地址,定位到具体是在那个文件的那一行。Unity的安装目录中,如果安装了NDK,就会自带这个工具比如我的路径如下(windows版本工具)F:\Unity\2019.4.11f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK\toolchains\

2021-06-30 18:48:43 2215 3

原创 Unity shader图集Atlas下的UV坐标归一化转换

unity中如果图片打入了图集中,在shader中取到的uv坐标默认是图集中的坐标,如果需要shader做一些类似流光的效果,需要转换成常用的0-1区间的归一化uv坐标,转换方法如下:步骤一:C#中向shader中传入图片在图集中的Rect信息和Scale信息 Vector4 UVRect = UnityEngine.Sprites.DataUtility.GetOuterUV(spriteRenderer.sprite); Rect originRect = spriteRenderer...

2021-05-06 14:14:57 2965

原创 ShaderToy效果学习(转成Unity URP) - MathEye

来自IQ大神的小教程,效果图:shaderToy源码:https://www.shadertoy.com/view/lsfGRr教程视频:https://www.bilibili.com/video/BV1KK4y1K7wM/Unity项目代码Git地址:https://github.com/Dejavu0709/Graphics.gitShader "Graphics/MathEye" { Properties{ //Properties } Su..

2021-04-19 00:46:31 500

原创 C#中的event直接调用和Invoke的区别,是否性能有差异

classStudent:INotifyPropertyChanged{publiceventPropertyChangedEventHandlerPropertyChanged;privatestringname;publicstringName{get{returnname;}set{na...

2021-03-16 19:12:50 2491

原创 unity 解决引入dlopen api的问题

打包出来的ipa在腾讯的wetest的ios预审中报以下错误。对于dlopen api, 是苹果禁用的,对Unity项目痛苦的挨个二分排查后,发现很多都有可能引入。1.和XML或Excel相关的C# API极有可能引入。https://blog.csdn.net/qq_36622009/article/details/1038828542.C# 原生的关于HttpWebRequest和多线程相关的代码3.C#关于网络net的代码4.有些插件,比如BestHttp插件,Avprovid

2021-02-24 15:51:19 722

原创 ios did receive memory warning

今天测试IOS包体时,在一个很老的Ipad上闪退,查log显示是did receive memory warning。Google了一圈,原因是2013年之前的ipad,用的A7处理器,不支持Unity的ASTC的Texture格式,因此游戏启动后,内存就爆掉了。2014年之后的A8处理器就没问题了。想适配这么老低端机的话,就得分机型提供图片格式了,我们的解决办法很简单很有效:砍掉,不支持2013年之前的机器。...

2021-02-23 16:13:58 271

转载 模拟弱网工具的使用

https://zhuanlan.zhihu.com/p/98185153https://www.jianshu.com/p/5e35a3585df5今年5G技术开始铺开并进入商用。随着5G的到来,不知道大家有没有和我一样的感受,希望是我心理作用吧,我发现作为一个4G用户,最近我的手机网速是不如从前了。特别是在游戏、或者是看一些重要直播的过程中,网络的卡顿延迟,真的让人大为光火。所以我想在最近分享一下,游戏测试需要怎么开展弱网测试,来尽量避免网络问题带给用户的不良体验。作为移动端游戏测试,网络环

2020-12-22 15:02:19 1887

转载 Git分支管理策略

转自:http://www.ruanyifeng.com/blog/2012/07/git.html如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System)。眼下最流行的"版本管理系统",非Git莫属。相比同类软件,Git有很多优点。其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便。有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称"快照")的指针,因此非常快捷易用。

2020-12-17 15:53:30 91

原创 帧同步相关文章

https://zentia.github.io/2019/04/22/frame-sync/http://www.skywind.me/blog/archives/131https://blog.codingnow.com/2018/08/lockstep.html

2020-12-04 15:54:03 483 1

转载 GPU架构杂乱备忘——IMR、TBR、TBDR

原文:https://juejin.cn/post/6844904132864655367GPU架构杂乱备忘——IMR、TBR、TBDR之前觉得涉及到gpu架构相关的问题只需要知道个大概就好,毕竟在图形api的层面上应该把硬件的细节给隐蔽掉,gpu的架构千千万万,每家厂商每个型号都不一样,开发者没必要掉进这个细节里面。但是最近重看Metal,特别是2.0之后新增的功能,逐渐深刻意识到一个事实——图形api已经迎来了真正的第三代。当然DX12、Vulkan和Metal在诞生时就打出了“现代图形api”

2020-11-25 22:08:49 3155

转载 渲染杂谈:early-z、z-culling、hi-z、z-perpass到底是什么?

渲染杂谈:early-z、z-culling、hi-z、z-perpass到底是什么?之前一直被这几个和深度缓存(z-buffer)相关的概念搞得神魂颠倒。今天在翻阅《Real-Time Rendering》时碰巧碰巧看到了这部分的讲解。硬着头皮看了看,姑且算是讲几个概念分清楚了。以我的记性估计下周就全忘了,所以打算顺手记下来。这四种技术本质上都是解决传统渲染管线中的同一个问题——过度绘制(OverDraw) 。一个经典的渲染管线通常会依次经历顶点阶段、光栅化、片元阶段和逐像素处理。其中片元阶段会进

2020-11-19 19:21:14 3368 1

LambertDiffuse shader

LambertDiffuse shader

2016-07-05

边缘光照的描边shader

边缘光照的描边shader

2016-07-04

描边shader

描边shader

2016-07-01

地球转动shader

地球转动shader

2016-06-30

Unity逐帧动画shader工程

Unity逐帧动画shader工程

2016-06-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除