随笔分类 - Unity3D
摘要:首先看一下点击Bake按钮后的执行流程: 1.AmplifyImpostorInspector部分 首先点击按钮设置了bakeTexture = true if( GUILayout.Button( TextureIcon, "buttonright", GUILayout.Height( 24 )
阅读全文
摘要:1.前言 Unity FpsSample Demo大约是2018发布,用于官方演示新的网络传输层(UnityTransport)+DOTS的一个FPS多人对战Demo。 Demo下载地址(需要安装Git LFS) :https://github.com/Unity-Technologies/FPSS
阅读全文
摘要:1.前言 Megacity Demo发布于2018左右,该Demo相较于之前的Book of the Dead, 体量相对较小,主要演示DOTS相关内容。 近期刚好空闲,故这几天把坑填上。 该Demo已上传百度网盘: 链接:https://pan.baidu.com/s/1X1gh6hQSRuB0K
阅读全文
摘要:现如今Unity中的协程(Coroutine)机制已略显陈旧,随着Unitask、ETTask等异步方案的崭露头角,诸如协程异常等问题也迎刃而解 并且Unity官方也在开发一套异步方案,但对于仍使用协程的项目,依旧需要在这个方案上继续琢磨。 众所周知Unity协程中无法输出完整的栈跟踪,因为协程编译
阅读全文
摘要:最近用回URP,发现RendererFeature这部分改动很大,启用了之前HDRP的RTHandle,RTHandle的设计类似于优化版本的RenderTexture, 可以统一控制缩放或者并非一对一的RT内存申请。 并且Blit的方式变成了先SetTarget后做一次绘制,也是和HDRP对齐。
阅读全文
摘要:图像色带(Band)问题一般出现在带有渐变的图像上,在影视上可以换成16bit的色深以解决, 而实时渲染领域通常对图像做色彩抖动处理来解决。但抖动这块一直没有找到很好的插件,PS也一直没有 相关教程。本文就自己动手丰衣足食;编写一个小工具来实现图像抖动,配合蓝噪声效果更佳。 2024/09/10补充
阅读全文
摘要:年末终于有空,刀光拖尾是我很早就想回顾的一个课题,项目中多采用插件或美术部门负责,很少有机会去研究。 之前也写过一版拖尾,但效果并不好。 在游戏中刀光拖尾有2种做法,一种是直接做死,用Shader做遮罩去控制滑动效果,这种做法 通常用于非写实类项目,unity自己的3d game kit demo对
阅读全文
摘要:当需要生成随机点且要求随机点自然均匀的分布时,使用泊松盘采样就较为适合。 但该方法与统计学上的概念关联不大,这个只相当于点在面积上服从泊松分布, 而实现这个结果有很多做法。 最终效果: 圆形为含半径的点,圆形的中心代表生成点 B站有一个不错的搬运教程(Bridson方法): https://www.
阅读全文
摘要:正常uGUI使用正交相机的话,旋转是没有透视效果的,但如果能实现较简单的透视, 对一些效果表现来说还是不错的;见下图(左为透视效果): 正常思路感觉各种麻烦。 因为uGUI使用unity的x和y方向表示宽高,z方向自然就是纵深,我们可以直接拿z值作为系数进行缩放处理, 达到伪透视的效果(美中不足,细
阅读全文
摘要:游戏需要增加几种启动模式,要在编辑器顶部Toolbar处增加几个按钮;进行下扩展。 这部分Unity没有直接提供接口,需通过反射实现。看了下有一个开源库: https://github.com/marijnz/unity-toolbar-extender (2022/12/25补充一个完成度更高的开
阅读全文
摘要:1.前言 一转眼离Book of the Dead Environment Demo开放下载已过去多年,当时因为技术力有限,以及对HDRP理解尚浅, 所以这篇文章一直搁浅到了现在;如今也对HDRP有了一些理解,因此回顾一下该Demo。 Book of the Dead——死者之书,是Unity201
阅读全文
摘要:最近在看neuecc大佬写的一些库:https://neuecc.medium.com/,其中对await,async以及Linq查询关键字做了一些神奇的扩展, 使其可以拿来做些自定义操作,并且不需要引用System.Linq之类的对应命名空间。 关于这些功能的实现,对此进行了学习并在Unity3D
阅读全文
摘要:1.Wait Until并不会再执行前面的代码,而是反复执行获取bool变量的代码;需自己拆出来写。 2.yield return null对应Wait For Next Frame,多用这个避免协程运行中的GC 3.链接自定义方法在Project Settings->Visual Scriptin
阅读全文
摘要:1.ref的一些运用 1.1 ref readonly 关于ref,一个主要应用是防止结构体拷贝,若返回的结构体不需要修改则用ref readonly,类似c++的const标记 : private ref readonly Attr PlayerSetting(Player player) { r
阅读全文
摘要:Gamma和Linear修正的问题相信网上已经有很多文章了。简单来说显示器的颜色输出不是线性的,根据硬件参数和输出颜色 信息拟合曲线是x^2.2,因此会使用一个x^0.45曲线将其拟合回线性。 因为0.5^0.45 = 0.73,0.5^2.2 = 0.217,我们可以通过一张0.5rgb的灰度图放
阅读全文
摘要:参考文章:https://www.cnblogs.com/zhiyishou/p/4430017.html 本文使用逐点插入法进行剖分,并使用Unity3D实现。 通过阅读文章《Triangulate》给出的伪代码进行具体编写,我加了些注释: subroutine triangulate input
阅读全文
摘要:1.通过网上冲浪了解到,BentNormal可以解决间接环境高光漏光及间接漫反射光照漏光的问题。 这里的漏光是指间接光照部分没有考虑到模型自身的遮挡关系导致的漏光。 2.可以通过SD之类的软件烘焙BentNormal贴图,软件会根据余弦角向外计算各个角度可见性,最终求平均得到一个向量,会在之后的计算
阅读全文
摘要:在新版本的Unity中提供了MeshDataArray和MeshData等多个API,使Mesh数据操作支持多线程;以更好的支持DOTS。 API文档:https://docs.unity3d.com/es/2020.2/ScriptReference/Mesh.MeshData.html 1.IJ
阅读全文
摘要:在日常开发中会有需求合并多个Mesh网格,并且它们重合处的顶点也要合并,而并非合并成两个subMesh。 而近期刚好在学习Geomipmap的细分,需要把多个mesh块进行合并,于是写了这个脚本 (简单的情况下用Mesh.CombineMeshes也可以)。 见下图,多对象合并前后对比: 使用时传入
阅读全文
摘要:本篇文章整理了URP管线使用中的一些简单的心得记述 1.使用ScriptableRendererFeature自定义渲染特性 在内建(Build-in)管线中可以使用CommandBuffer并添加到摄像机上来实现自定义的特性。在URP管线中,处理方法变成了RendererFeature Rende
阅读全文