随笔分类 - Unity3D
摘要:本篇文章整理了URP管线使用中的一些简单的心得记述 1.使用ScriptableRendererFeature自定义渲染特性 在内建(Build-in)管线中可以使用CommandBuffer并添加到摄像机上来实现自定义的特性。在URP管线中,处理方法变成了RendererFeature Rende
阅读全文
摘要:1.简述 诸如npm、Nuget之类的包管理工具,Unity推出了自己的Unity Package Manager(UPM)工具来管理使用到的第三方库。 现在Unity Package Manager可以直接允许我们导入git仓库进行链接。 2.UPM库的配置与链接 通过Unity官方文档的教程可进
阅读全文
摘要:在Shader中处理流控制语句时,常加上一些宏去处理流控制指令。例如: UNITY_UNROLL for (int i = 0; i < 10; i++) { //do something... } 在buildin shader包中的CGIncludes\HLSLSupport.cginc中可以找
阅读全文
摘要:在使用大面积的平铺纹理时,会导致重复感较强的贴图呈现在画面中。我们可以通过许多方法进行优化,WangTile就是其中一种。 WangTile(王浩瓷砖)方法通过对每条边标记颜色,并在平铺时将相同颜色的边拼接在一起,最终铺满整个平面。 参考《GPU Gems2》中的做法,但这里使用一组预先设定好的可循
阅读全文
摘要:Unity2018新加入了该接口,可以做到异步RenderTexture->像素数据和异步的ComputeBuffer.GetData ,该功能对于异步ComputeShader获取数据来说非常实用,性能也比同步调用更快。 1.RenderTexture->Texture2D 异步: IEnumer
阅读全文
摘要:之前一直没有自己实现过阴影,只是概念上有所了解,这次尝试实际编写学习下。 Shadowmap主要思想是通过深度图可得到世界坐标位置,所以光源位置渲染一张场景深度图以得到光源位置像素点的世界坐标, 再对比主相机的像素点世界坐标,如果两个世界坐标距离小于误差则说明两者都能看见这个点,则这个点不在阴影内,
阅读全文
摘要:灯光衰减图可以模拟3D贴图的效果,但也有一定的局限性。给灯光使用衰减图可以一定程度的控制灯光形状。 应该也是某种程度的灯光cookie。 使用衰减图与翻页动画制作的灯火效果: 优点: 一定程度上的3D Texture 可以拿来做摇曳灯火等 缺点: 定制性比较高,真正使用可能要借助CB 相比3D Te
阅读全文
摘要:应该是unity 2018.3中加入的功能,对象可以放置于不同的物理场景中。 一个Scene对应一个物理场景(PhysicsScene),若想放入独立的物理场景测试创建一个Scene即可。见下图gif。 若测试模拟功能,须在Physics中关闭自动模拟。脚本如下: 测试仓库: https://git
阅读全文
摘要:StreamingMipmaps是Unity2018.2中加入的新功能,意指通过CPU控制,只加载部分Mipmap图片以节省更多的内存及显存空间。 我测试时遇到了问题,后来发现必须打包出来测才有效(注:最新版unity追加了编辑器内生效功能)。 官方文档里写给维京村落demo使用该功能后节省了25%
阅读全文
摘要:官方文档:https://docs.unity3d.com/Manual/SparseTextures.html 是一种虚拟贴图,可以动态的加载或卸载某一块tile。从而实现超大尺寸贴图的加载。 更新tile: 卸载tile: 官方有一个小demo(链接在文档里),使用了分型图片来演示。我录了一段g
阅读全文
摘要:接上一篇:https://www.cnblogs.com/hont/p/10122129.html 除了Append类型对应的Consume/AppendStructuredBuffer还有一个Counter类型可以进行计数操作。 那么测试一下: computer shader: 测试的是Decre
阅读全文
摘要:上个月写了一篇使用像素shader返回累加信息的Trick:https://www.cnblogs.com/hont/p/9977401.html 后来无意中发现DX11/Compute shader有一类Append/Consume数据格式更适合这类操作。 c sharp脚本: using Sys
阅读全文
摘要:2018/12/14日补充:后来发现compute shader里用AppendStructuredBuffer可以解决这类问题,请看这里:https://www.cnblogs.com/hont/p/10122129.html 1.简介 在日常开发中会遇到诸如判断某张图的某颜色像素百分比占多少的问
阅读全文
摘要:(注意 取的是中心点位置来计算边界点,而非投影点位置。可以自行修改为投影点) 之前想做一些体积碰撞的效果但是遇到点问题,胶囊边界点检测这个涉及到球体的交点检测以及圆柱的交点检测 觉得可以放上来,相交检测的代码逻辑来源于网络。 using System.Collections; using Syste
阅读全文
摘要:之前遇到一个问题要从MeshCollider背面方向发出射线,直至检测到该射线与MeshCollider的相交点为止。 后来我用双面MeshCollider的方法解决了http://www.cnblogs.com/hont/p/6628841.html 但是这样又会导致许多其他问题,因为构建出来的双
阅读全文
摘要:这是一种避免一次性生成所有内容的可预测随机数实现 原文使用了简易的随机数生成算法来生成,可以支持的最大数字是uint型的最大值4294967295。 文中提到的宏无限分解和微无限分解指的是用种子生成的随机结果再作为种子继续生成,细化到具体星球,植被等等。 这样当玩家在任意坐标区域内,只需要生成附近一
阅读全文
摘要:来自《游戏编程精粹1》寻路部分文章,使用CatmullRom插值来达到平滑,算是对书中内容的练习。 using UnityEngine; using System.Collections; public class Practice : MonoBehaviour { public Transfor
阅读全文
摘要:参考自《游戏编程精粹1》多边形相交部分,用该方法除了知道是否相交以外还可以得到相交点,从而用于其他判断。 原文用到了平面方程的基本式Ax+By+Cz+D=0,求出线段2点p0和p1的D值,用D值转换成比值最后插值得到坐标 不用平面方程其实也可以用向量投影解释。 BTW,参考Unity Plane数据
阅读全文
摘要:似乎是在Unity5.4中开始支持GPU Instacing,但如果要比较好的使用推荐用unity5.6版本,因为这几个版本一直在改。 这里测试也是使用unity5.6.2进行测试 在5.6的版本里,Instancing不再是一个单独的shader,而是一个开关。 如果使用Instancing功能需
阅读全文
摘要:最近无意中拓展出这个东西,基于之前写的2D多边形检测: http://www.cnblogs.com/hont/p/6105997.html 而判断两条线相交的方法替换成了我后来写的差乘判断: http://www.cnblogs.com/hont/p/6106043.html 该功能在多边形选区与
阅读全文
浙公网安备 33010602011771号