Unity3D
driftboat
这个作者很懒,什么都没留下…
展开
-
URP下Matcap Shader实现
MatCap原理与基本实现参考以下文章,通过反射方向从贴图中采样Creating a Spherical Environment Mapping shader - Blog - Clicktorelease反射方向优化通过TransformWorldToViewDir计算的View空间的反射方向不会随像素点位置变化而变化,需要像素的视线空间来计算反射方向,代码如下: half3 cameraFoward = -viewDirectionWS; half3 viewUpDi原创 2021-12-24 12:11:54 · 2123 阅读 · 0 评论 -
卡通刘海阴影和风格化眉毛渲染简述
渲染面部 渲染眉毛眼睛,写入模板缓冲id1 渲染阴影偏移模板,根据光的位置调整刘海位置,写入模板缓冲id2 再次渲染面部,等于id2的地方,将阴影渲染到面部 渲染刘海,等于id1的地方,用混合渲染刘海面部重叠部分 渲染刘海,不等于id1的地方...原创 2021-12-03 16:39:14 · 928 阅读 · 0 评论 -
Disney 次表面散射Paper翻译
原文地址https://graphics.pixar.com/library/ApproxBSSRDF/paper.pdf概念基于经验反射率分布, 我们提出了三个有用的参数的BSSRDF 模型,模型很简单,但是经过合适的参数化比其他模型更好的匹配蛮力蒙特卡罗参考,每个反射率分布是两个指数的总和,其中指数的高度和宽度取决于表面的反照率和散射距离。我们的参数化允许与使用相同参数的基于物理的扩散模型进行直接比较.参数化基于垂直照明、漫反射表面传输(其中照明方向无关)以及散射距离的替代度量。 我们的近似原创 2021-07-27 19:27:00 · 234 阅读 · 0 评论 -
基于Unity Dots实现我的世界(Minecraft)基本建造功能
源码地址https://github.com/driftboat/DogeMetaversePlay系统划分InitTerrainSystem 进行地块的加载和初始化 SetGunShowBulletSystem 设置当前显示的建造块 BuildBPhysicsWorldSystem 收集块,计算临近块,并隐藏被包围的块 CharacterControllerSystem 移动控制 CharacterGunOneToManyInputSystem 建造或者销毁块,鼠标左.原创 2021-07-26 11:11:10 · 511 阅读 · 0 评论 -
DogeMetaverse(狗狗元宇宙)
https://github.com/driftboat/DogeMetaverse原创 2021-07-23 18:40:51 · 345 阅读 · 0 评论 -
Unity3d ECS SystemBase Dependency
在当前系统OnUpdate调用前,Dependency是当前系统读取组件有写入的作业句柄和当前系统写入组件有读取的作业句柄,例如:当前系统读取A组件写入B组件, 在这个系统之前的任何系统中存在对A写入或者对B读取的作业,改作业的句柄会加入Dependency,当前系统作业执行前要等待Dependency里的作业全部完成在OnUpdate内部,Dependency会被隐式管理,顺序依赖,例如: protected override void OnUpdate() { Ent原创 2021-07-22 20:13:54 · 507 阅读 · 2 评论 -
Unity3d ECS WriteGroup
ECS中的系统正常是读取一组输入组件,然后写入另一组输出组件,但是有些情况下需要用另一个系统另一组输入组件来写入相同的输出组件,Write groups提供了覆盖另一个系统的机制。用Write groups可以让系统排除含有与写入组件相同的写组(WriteGroup)特性组件的实体例子:两个组件:public struct HealthComponent : IComponentData{ public int Value;}public struct ColorCompon原创 2021-07-21 19:08:41 · 411 阅读 · 2 评论 -
Unity DOTs CharacterController简介
代码地址https://github.com/Unity-Technologies/EntityComponentSystemSamples/tree/master/UnityPhysicsSamples/Assets/Demos/6.%20Use%20Cases/CharacterController输入系统需要在ProjectSettings.asset中加入UNITY_INPUT_SYSTEM_EXISTS宏定义 scriptingDefineSymbols: 1: ...原创 2021-06-11 19:31:40 · 456 阅读 · 2 评论