摘要:
概述 最近在工作中需要实现一个功能,用到了模板测试。但奇怪的是,模板测试竟然不起作用!在解决问题的过程中,发现了一些有趣的知识点。通过本文,可以了解在unity中,深度缓冲和模板缓冲到底是怎么存储的。 测试环境的搭建 Unity版本:2021.3.16f1 URP版本:12.1.8 RenderDo 阅读全文
摘要:
概述 在学习 "法线贴图" 的过程中,有几个比较难以理解的概念,这里记录一下。 特别说一下,本文的法线贴图是切线空间下的法线贴图。 空间变换 如上图所示,简单表达了在使用法线贴图的过程中,涉及到的几个空间变换: 1. 切线空间:从法线贴图中采样得到的法线,在切线空间中; 2. 对象空间:物体的本地坐 阅读全文
摘要:
概述 首先我想说,接触到Gamma的概念也很长时间了,一直没有认真的去学习它。知其然而不知其所以然。最近恰巧学到了 "这一部分" ,就想彻底地搞懂它。 CRT 说起Gamma,肯定离不开CRT(阴极射线管)。 CRT(阴极射线管)是大多数计算机显示器、视频监视器、电视接收器和示波器中使用的显示设备, 阅读全文
摘要:
概述 在 "渲染管线中的顶点变换" 中,介绍了顶点在各个坐标空间的变换。变换到最后,是屏幕坐标空间。在OpenGL中,屏幕空间坐标的Z值即是深度缓冲中的深度值。深度缓冲包含了一个介于0.0和1.0之间的深度值,它将会与观察者视角所看见的场景中所有物体的z值进行比较。本文将介绍深度值的计算,以及从深度 阅读全文
摘要:
概述 在图形学渲染管线中,一个顶点坐标,大概要经历局部坐标系、世界坐标系、相机坐标系、裁剪坐标系,最后到窗口坐标系,显示在屏幕上。 在这些过程中,从一个坐标系到另一个坐标系,都需要进行一定的变换。下面,将介绍每次变换的方式。 注意,本文是针对OpenGL的。 局部空间 世界空间 这一变换过程,主要是 阅读全文
摘要:
当我们将图片导入到工程中时,unity 3d会对图片进行处理,设置图片的默认格式。如下图所示,是图片导入到工程中,unity 3d进行的默认设置。 但是,一般情况下,这样的图片格式并不能满足我们的需求。所以我就想,有没有办法修改图片导入时设置的格式呢?答案是有的。 首先说一下思路: 1. 我们可以在 阅读全文
摘要:
在制作游戏的过程中,我们经常会遇到预制体丢失组件的情况,如下图所示。 预制体丢失组件,一般情况下如果我们不去获取该组件,就不会报错或影响游戏的运行。但是在游戏加载该预制体时,会报警告,看到Console中有警告的话也是非常难受的。考虑到游戏中使用了上百的预制体,每个预制体又由数个甚至数十个子物体组成 阅读全文
摘要:
考虑这样一个需求:敌人出生在A点,需要到达B点去攻击主角。 之前,我是这样实现这个需求的(只考虑Z轴的移动): 这里有个问题,就是判断是否到达目标点的距离值不好确定,这里设置的是0.2f。这个值应该小于一帧的移动距离(即这里的moveSpeed * Time.deltaTime)。但是呢,这里的 T 阅读全文
摘要:
在unity3d中,Renderer组件有两个属性:material和sharedMaterial,它们都可以用来获取Renderer的材质属性。但是它们之间却又很大的区别,下面通过示例来讲解一下。 准备工作:unity3d中新建一个空场景;创建两个cube,分别命名为Cube0、Cube1;在Pr 阅读全文
摘要:
最近开始了新的项目,主要负责小怪部分的功能实现。 在做的过程中发现,所有小怪的动画状态机绝大部分的状态是相同的。如果每个小怪的动画状态机都手动创建的话,非常繁琐。正好之前看了一篇介绍代码创建动画状态机的方法--unity5.x代码创建AnimatorController状态机,为了偷懒,学习一小代码 阅读全文