简单的卡通渲染
简单的卡通渲染
前言
这篇文章是我在2024.2.21便想写的文章。可是因为各种各样的原因,最终拖到了现在去写。但是我也不打算多写什么东西,因为有些东西我也不懂,有些地方我也觉得莫名其妙。所以这篇文章就当是一次尝试了的记录了。
代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916 ...
Unity下的描边处理
Unity下的描边处理
前言
最近策划突然要做日系赛璐璐风格的卡通渲染,所以我又要去学这方面的知识。而描边则是此类风格中必要的一环。我在网上看过许多关于描边的做法,它们之中各有利弊。我怕遗忘,因此我想用这篇文章来记录一下。
本篇文章的代码会涉及Unity的内置(Build-In)渲染管线和通用渲染管线(URP)。如果其中有存在错误的地方,也请大家指出。
环境
Windows10操作系统
Unity2022.3.8f1c1
Universal RP 14.0.8
额外操作
在内置(Build-In)渲染管线中,某些描边的方法是需要一个额外的Pass来渲染描边。比如我们使用顶点扩展方法进行描边处理。但是在URP下,我们单纯的声明一个额外的Pass是没有作用的。我们必须在URP的设置中添加一个Render Feature,然后将Shader标签中的LightMode声明为我们所添加的Render Feature名称。
查找项目URP设置方法:Editor->Project Set ...
UnityAB包学习笔记扩展
UnityAB包学习笔记扩展
前言
我之前有写一篇关于UnityAB包学习的笔记。在这篇笔记中,我额外安装了Asset Bundle Browser1.7.0。这个Unity官方在最近几年都没有更新了,我想大概率是Unity官方想推AA包吧。所以AB包的API其实没有太多的修改,因此之前笔记应该还没有过时。故,我并不想再多赘述一次,如果你没有关于使用AB包的经验,你可以先去看之前我写的笔记,然后再来看这篇文章。
因为本人并没有参与过什么大型项目的游戏开发,因此下文的代码只是我个人的钻研。但是下文的代码还是有跑过项目的。只是这些项目几乎只有加载包中资源而没有卸载包资源的情况。
环境
Windows10操作系统
Unity 2022.3.8f1c1
Asset Bundle Browser1.7.0
加载依赖
AB包之间是存在依赖的情况,如果我们想正确加载一个包中的资源,那么我们要先将这个包所依赖的包加入其中。一般而言,我们只要能获取到AssetBundleManifest这个类型的变量,我们就可以获 ...
2024.7.26有感而发
我本来是不打算写这篇文章,但心里总是想着这事,所以还是写一下吧。
最近有些迷茫,我不知道怎么去提升自己。看着网络上大几百的教程,我又怕这教程没什么用。我愈发的迷茫,但我又不知道该怎么办。
我现在待在这个公司也一年多了,不出什么意外,我大概今年就在这家公司过去了。几个月前我和同事一起做出了个日流水能达到10万的游戏。年前领导发出豪言壮语想要做一款手机游戏出来,我本以为这个游戏能变为我们做手游的契机。可惜现在每天就几百块的流水,聚道分成后到我们手里也才十几块。他现在也只能继续做着我们现在的项目,并想找出一缕希望的曙光。随着我继续待在这个项目组里,我也明白除非有什么天大的机遇,否则项目组最多也只能养活自己。大家并没有什么太强的技术,说白了就是大家都菜。我们没有什么能力整出足够吸引他人眼球的效果,而在现在的风气中,这无疑就是在说自己没有赚钱的能力。我很想帮团队做出他想要的项目,但我真的菜,我做不到。我不禁怀疑自己是否是做游戏的这块料。
巧的是,刚好这时候前同事找我寒暄了一下。或许他也有些郁闷了吧。在对话中,我了解到他又换了一 ...
自己学习Protobuf的整理
自己学习Protobuf的整理
前言
本篇文章是我自己在学习Protobuf时做的整理。如有错误,还望告知,谢谢。
环境
Windows10
Unity2022.3.8f1c1 il2Cpp .Net FrameWork
Google.Protobuf 3.27.1
Protobuf文件写法的简单说明
下列说明以protobuf
csharp教程中的内容为例子说明。
我们创建一个以.proto为后缀名的文件。并填入以下示例内容:
1234syntax = "proto3";package tutorial;import "google/protobuf/timestamp.proto";
所有的Protobuf文件都以syntax作为开头。syntax关键字用于指定.proto文件所使用的Protobuf语法版本。现在支持proto2和proto3。proto2和proto3之间有一些区别,但是因为我项目使用的是proto3,所以下文大多以proto3 ...
Unity中使用URP实现屏幕空间下贴花渲染
Unity中使用URP实现屏幕空间下贴花渲染
前言
最近我在研究贴花(Decal)效果的实现。但是网上的文章我看得云里雾里。最终我看了网上的一部分的文章,加上我自己的思索后,我才搞懂如何去实现。所以这里我写这篇文章做一个笔记,也是为了防止我自己忘记如何实现。这里我还要说明一下,文章链接里的文章少,是因为当我想要写这篇文章的时候,大多数我看过的文章已经找不到了。
环境
Unity2022.3.8f1c1
Windows10
Universal RP 14.0.8
屏幕空间贴花(Screen Space
Decals,SSD)
屏幕空间贴花(ScreenSpace
Decal)是一种在游戏和图形渲染中常用的技术,它允许开发者在物体表面上动态添加图案或纹理,而无需改变原始模型的几何结构。这种技术在现代游戏中非常常见,用于实现各种视觉效果,如涂鸦、弹孔、纹身等。以上来自文言一心(百度AI)的介绍。
过程
我们使用立方体框选出一个区域。在我们限定的区域内,我们对深度图进行采样得到区域内的深度信息。然后 ...
崩溃大陆
崩溃大陆
我是什么时候开始玩《崩溃大陆》的,我自己已经记不得了。我仅知道那是一段还算欢乐的时光。那时候大家一起躲在床里在手机上联机玩着盗版的《我的世界》和《泰拉瑞亚》。而《崩溃大陆》,则是我在玩这些游戏后被朋友推荐而游玩的游戏。因为那时我还是学生,所以我玩得都是盗版。也正因为我是学生,所以我并没有足够的时间去通关《崩溃大陆》。但我仍然喜欢这个游戏,直到今天我百度账号的头像仍然是我玩《崩溃大陆》时的截图。
时过境迁,当初一起玩游戏的朋友已经聚不起来了。不在一起上学便没有一起游玩的理由,久而久之便没了联络。随着我长大,《我的世界》现在已经由网易代理变成了免费游戏。我工作不久后便在Stream和TapTap上购买了电脑和手机端的《泰拉瑞亚》。本来我是想在电脑端上重现我之前的“辉煌”,可是我不习惯电脑端的操作,随后我便在TapTap上买了手机端的。但毕竟我早已和朋友打过了某影之地,我也通过其他人的存档见识了《泰拉瑞亚》(有一说一,它难度太高了。这也是我不玩的原因之一)的一切。最主要的还是,那些与我一起联机的朋友再也聚不起来了。
偶然的一 ...
《排球少年垃圾场对决》观后感
《排球少年垃圾场对决》观后感
其实我并没有看过《排球少年!!》,也不知道任何的关于排球的规则。所以我本来是不想去看的。但是因为朋友再三推荐和其他的原因,我去看了这场电影。
整体而言,我觉得这是一个不错的电影。即使我事先不知道他们之间任何的关系,但是随着电影节奏的进行,我也能好好的理清个个人物之间的关系(这好像是一部电影的基本吧)。我全程看下来毫无尿点,整体就是围绕着乌野和音速两个队伍的比赛和队员间的情谊展开。青春、热血、王道,我认为这些标签都可以放到这部作品中。
我现在回想起来,我突然发现我已经很久没有看过这样王道的剧情了。到不是因为现在没有那么好的番剧,而是我故意不去看这样的剧情。因为当我每次去想到主角努力就有超额的回报或是主角经过几个月的修炼就可以达到Boss差不多的高度,我都会觉得扯。因为我自己步入社会就知道努力都不一定会有等额的回报,而我自己也不算有天赋也不可能几个月修炼就可以达到大佬一样的高度。总而言之就是我已经不觉得自己是主角了。在这样的剧中,我觉得我没办法把自己代入主角,就算我在其中我也只不过是主角一个过客罢了。所以当 ...
Unity在Windows操作系统下使用加载和存储文件的对话框
Unity在Windows操作系统下使用保存和打开文件的对话框
前言
这里我仅说明使用CSharp的情况。其实网上已经有很多类似的文章,你在网上搜便能找到一堆。下面的代码其实也是我从网络上抄过来的。但是大多数的文章就仅仅是给代码然后不说为什么这样。如果只是满足当前的需求,那这样做也没什么问题。只是当这些代码出现了一些问题,或者突然有些需求要进行扩展的时候,这些如同黑盒子一样的代码就显得麻烦了。
因为我很懒,所以我这里的代码说明也只到我现在使用的程度。
环境
Windows10
Unity 2022.3.8f1c1
正文
要想在Windows操作系统下打开其保存和打开文件的对话框,我们必须要使用其Comdlg32.dll。如果你有搜索并看过这些方面的文章。你会发现文章中都会预先让你声明一个结构体:
123456789101112131415161718192021222324252627[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] ...
TextMeshPro(Unity)实现复合Emoji
TextMeshPro(Unity)实现组合后的Emoji
前言
本文整体思想就是遍历字符串找出组合后的Emoji信息并将其重新赋值于TextMeshPro。这样做固然可以满足复合Emoji显示的需求,但是这样同样会照成额外的开销。如果要更好的性能,那么只能自己写一份图文混排的组件或是以某种方法修改TextMeshPro的文本处理使其可以直接支持。
如果你不知道如何在TextMeshPro中显示Emoji(非组合),你可以去看一下这篇文章:Unity中使用TextMeshPro打出Emoji表情。不过这篇文章中的TextMeshPro是预实验的版本。如果你不行使用预实验的版本,那么你可以看完上面的文章后再看一下这篇文章:Unity使用TextMeshPro加载Emoji。
环境
Windows10
com.unity.textmeshpro 3.0.9
Unity 2022.3.8f1c1
实现代码
123456789101112131415161718192021222324252627282930313233343536373839 ...