667 1 分钟

本文用于记录一些使用 Shader 实现的基础性效果 Unity2020.3.8f1 # 基础设置 创建一个空 Shader,可以设置 Graph 以满足需要。 # 顶点着色器 # 法线外扩 可以改变一个模型的大小 其中获取法线方向也可以使用: 通过将法线位置(物体本地位置)归一化得到法线,然后乘以一个数值来实现。 # 模型裁切 原理: AlphaClip 的值如果比 Alpha 的值大,则会不显示 简单效果预览: 加强版本 效果预览 # Remap 重映射 根据输入 In 在 InMinMax 中的插值,计算输出。(按照比例位置输出) 比如输入 In 为...
376 1 分钟

最常使用到的就是矢量和矩阵(数学的分支之一 —— 线性代数) # 笛卡尔坐标系 大部分的计算位置、距离和角度等变量都是在笛卡尔坐标系下进行的。 # 二维笛卡尔坐标系 一个特殊的位置,原点,它是整个坐标系的中心 两条过原点相互垂直的矢量,x 轴和 y 轴。 不同的渲染方式,坐标系不同 # 三维笛卡尔坐标系 三个坐标轴相互垂直,长度为 1,这样的基矢量被称为标准正交基 这三个坐标轴被称为是基矢量 # 左手坐标系和右手坐标系 在二维笛卡尔坐标系中,我们可以通过旋转将任何的坐标系重合,也就是说所有的二维笛卡尔坐标系都是等价的。 但对于 三维坐标系 ,有时不能靠这种旋转来使 2...
2.7k 2 分钟

# 第三章 UnityShader 基础 正式进入 shader 学习了,好耶! 使用 UnityShader 的流程: 创建一个材质 创建一个 UnityShader,为材质添加 把材质赋给对象 调整 shader 属性 # 创建 Shader Unity 包含了多种 shader 模板供我们使用。 Standard Surface Shader 标准光照模型 Unlit Shader 不包含光照(但包含雾效) mage Effect Shader 实现各种屏幕后处理效果 Unity Shader 的导入面板还可以方便地查看其使用的渲染队列(Render...
1.6k 1 分钟

在之前 Unity 想要实现延迟执行或者是等待,要么只能使用自己计数的方法,要么使用协程。 # Ep.1 协程 首先让我们来看一个协程示例: 示例是循环 10 次,每次等待 0.2s。 协程示例IEnumerator Func(){ for (int i = 0; i < 10; i++) { print(i); yield return new WaitForSeconds(0.2f); }}// 启动协程StartCoroutine(Func());# Ep.2 Async 异步 Async...
235 1 分钟

因在世界上与他人的联系,我们的存在有了价值。 这是我很久之前,大概是在《四月是你的谎言》里听 薰 对 有马 说的话,我们享受着这份链接,也受制于这份链接。 每个人都有必须要去做的事情,可能是使命一样的东西,有的是自己给自己的,有的是被社会或环境所强压的。 受制于这种链接,要想去打破,就像是打破规则,要挣脱太多的锁链捆绑。 和人世分得太清楚就会孤寡。和人世走得太近则会前行受困。 如何保持一种微妙平衡已成为全面认识事物的希冀📬 。 比起为无能为力的事而后悔,还不如去做力所能及的事!—— 侑子
2.3k 2 分钟

因为第一章内容太少,就再更一章吧~ # 第二篇 渲染流水线 Q: 渲染流水线在干什么? A: 渲染流水线的最终目的在于生成或者说是渲染一张二维纹理,即我们在电脑屏幕上看到的所有效果。它的输入是一个虚拟摄像机、一些光源、一些 Shader 以及纹理等。 使用流水线的好处在于可以提高单位时间的生产量。 流水线系统中决定最后生产速度的是最慢的工序所需的时间 ( 短板效应 ) 理想情况下,如果把一个非流水线系统分成 n 个流水线阶段,且每个阶段耗费时间相同的话,会使整个系统得到 n 倍的速度提升。(多线渲染?) # 渲染流程 (概念上的流水线) 渲染流程分成 3...
731 1 分钟

# 致自己 之前我学习过一段时间的 Shader 入门精要(大概是学到第六章吧),但后面的章节都没有学习,加上时间久远很多内容都忘记了,故打算重新学一遍。 为了勉励自己坚持下去,也为了记录一些学习过程,此系列就出现啦! ❤️ ❤️ (希望自己能够坚持学完,在渲染方面有所收获,可以制作出满意的效果) 📑 此系列每周一更 # 第一篇 欢迎来到 Shader 的世界 # 语录 程序员的三大浪漫是编译原理、操作系统和图形学(是的,我已经听到很多人在反驳这句话了,不要当真啦) 我们是程序员中的 “外貌协会”,期待着用代码编写出一个绚丽多姿的世界。这就是我们的浪漫。 我们之所以要学习...
1.8k 2 分钟

除去三大功能外,NodeCanvas 还有一些别的有趣的东西,能帮助我们改进 3 大流程。 # Standalone Action List 给对线添加如上脚本后,我们可以在对象上进行一些可视化的对话构建。 # 自定义 Action 和 Condition 我们可以自定义自己的节点,方便我们在 3 大功能上使用。 生成脚本如下: 生成的行为using NodeCanvas.Framework;using ParadoxNotion.Design;namespace NodeCanvas.Tasks.Actions{ [Category("my")]...