2 Magic_Conch_Shell

尚未进行身份认证

我要认证

菠萝屋会有的~

等级
TA的排名 14w+

xlua热更新简单demo

1.参考资料参考视频教学环境下载2.实现的内容点击鼠标生成一个立方体,然后用xlua热更新,使得其点击鼠标能生成一个球体3.环境安装从github下载xlua的开发框架,然后把框架Assets里面的内容复制到自己新建的工程的Assets目录下,然后复制Tools里面的内容到根目录。设置Player Setting里面的Scripting Define Symbols的值为HOTFIX...

2020-04-08 11:47:21

unity协程

协程概述不用急着给它去下个定义,我们只需要知道协程能做什么,我们在什么时候需要使用它就可以了。在我们需要控制函数的执行顺序的时候,我们就需要使用它了,下面我简单的列举几个书上看到的以及我日常中碰到的问题。1.如何让一个物体渐变我们通过写一个for循环循环它的透明度显然是不可行的,因为一帧以内会执行完整个for循环,我们只能看得到开头和结尾的部分。2.如何截取屏幕的图片当然,这不是一般...

2019-11-20 18:23:53

几何检测

概述几何检测主要相交性检测,这里的内容大体上是根据《3D数学基础-图形与游戏开发》这本书来的,对于这本书来说,这一部分看完了后面内容就不看了,因为后面讲的太空泛了,有点像一本绝世武功的目录一样,看似很强,其实没什么卵用。1.2D隐式直线上的最近点问题描述:直线p * n = d,对于任意点q,找出直线上距离q最短的点q’同高中解析几何简单粗暴的公式不同,这里面的算法都是基于向量来计算的...

2019-11-03 09:03:28

四元数的差、对数、指数、幂以及差值

概要对于四元数的学习基本上都是参照《3D数学基础-图形与游戏开发这本书的内容的》对于这本书前面的部分还是很好理解的,但是从四元数的差这里开始,就过于抽象了,不配合实例很难去理解。因此,这一段被我单独提取出来,在实践中进一步去理解。差,对数,指数等是定义式,不要试图在四元数的这些操作中找到这些数学符号的本身含义,它只是被定义成这样子的,没有为什么。。四元数的差四元数的差表示四元数的两个四元...

2019-11-01 10:22:18

欧拉角、四元数、旋转矩阵的互相转换

概述方法来自于《3D数学基础,图形与游戏开发》这本书。学习这些转换可以加深自己对这些知识点的理解~两两转换一共有六种情况,下面就依次列举一下这六种情况。1.从欧拉角转换到矩阵这种情况的转换不难,还记得我们的旋转矩阵长啥样吗,欧拉角的三个值就是坐标系绕着特定轴旋转的值,注意是坐标系旋转哦,点的旋转值是和坐标系的旋转值相反的,需要把旋转矩阵的角度取反。比如下面就是绕y轴的旋转矩阵,角度h取反...

2019-10-31 21:19:02

万向锁的理解

万向锁万向锁这个概念其实还是不大好理解的,看了很多的博客,虽然看起来他们讲的很有道理,可还是想不通。希望我这篇文章能讲清楚。。。万向锁产生的根本原因是绕三个轴的旋转不是同时进行的,想象一下我们旋转矩阵的推导是不是绕三个轴的旋转矩阵乘起来得到的,这三个旋转矩阵的摆放顺序不同,最后得到的旋转矩阵也是不相同的,因此,一般的系统都会有一个规定,比如unity来说,先绕y轴旋转,然后绕x轴旋转,最后是...

2019-10-31 19:18:16

向任意平面的投影矩阵的推导

概述方法来自于《3D数学基础,图形与游戏开发》这本书。基本原理这个方法其实有点思维跳跃,原理是首先推导出一个任意方向n缩放比例为k的缩放矩阵,然后将k变成0,这就变成了向垂直于n的投影平面的投影矩阵缩放矩阵的推导对于坐标轴上的缩放,我们很容易就能获得缩放矩阵:[kx000ky000kz] \begin{bmatrix}kx&0&0\\0&ky&0\\...

2019-10-30 22:00:03

绕坐标轴以及任意轴的旋转矩阵的推导

概述本文主要是针对《3D数学基础-图形与游戏开发》这本书的读书笔记,这本书前面部分还是讲得挺好的,有时间还是建议读一下。旋转矩阵的推导旋转矩阵怎么来的我倒一直都没有概念,这本书里面对旋转矩阵的来历倒是给了我一些启发。首先从二维的旋转矩阵开始[cosθsinθ−sinθcosθ] \begin{bmatrix}cos\theta & sin\theta \\ -sin\theta...

2019-10-30 19:52:06

unity屏幕特效综述6 景深效果

从这一部分开始,我的工作从学习别人的代码要逐渐转到自己敲代码了,中间跨越还是挺大的,景深效果的原理看似简单,也写了快一天时间了。下面我简单说明两种景深效果的写法,一种是我自己探索着写的,另一种是参考别人的博客写的(https://blog.csdn.net/puppet_master/article/details/52819874),不得不承认,别人的方法还是要成熟一点。景深效果给我的直观理...

2019-09-22 21:46:21

unity billboard效果

这种效果是让一个平面能跟着视角进行旋转,从而使得该平面一直朝向着摄像机,形成一种立体的感觉.billboard主要有两种,第一种是固定向上方向的billboard,比如说草地,一个草地贴图向上的方向一定是(0,1,0),unity自带的草地就是用的这种方法的,这种固定向上方向的billboard最后形成的结果就是图片绕着y轴进行旋转,毕竟俯视的时候如果看到草地法线朝着视角肯定会露馅的。第二种b...

2019-09-19 23:10:02

unity 卡通风格渲染

unity 卡通风格的渲染主要分成两个步骤,第一个步骤是给模型描边,第二个步骤是实现卡通着色的高光效果。这两个步骤同时也是对应的两个不同的pass。第一个步骤首先要剔除正面,然后对背面的轮廓线进行描边,为什么要对背面进行描边呢。当然是因为对正面进行描边的效果很鬼畜啦,删除代码中的Cull Front,会看到下图的效果,所以这时候应该能理解为什么要对背面进行描边了,描边的方法是把顶点往法线的方向扩...

2019-09-19 22:19:23

unity 水波效果

这个水波效果并非真实的让顶点去运动而产生的的效果,而是通过法线扰动而产生的模拟效果,产生效果主要分为三个步骤,第一个步骤是计算折射,第二个步骤是计算反射,最后一个步骤是混合反射和折射的值。首先是计算折射值,这个也是这三个中最复杂的一个部分,首先折射所采样的纹理是通过grabpass来实现的,grabpass可以在渲染完毕所有的不透明物体之后把渲染完毕的图形存储到一个纹理中,然后在下一个pass...

2019-09-19 21:36:23

unity 消融效果

如上图所示,本shader的功能就是让箱子一点一点的消融,然后逐渐消失。这个shader功能主要分为两个部分,第一个部分是消失,第二个部分是边缘着色,第三个部分是自定义阴影投射的Pass。消失的实现是比较简单的,只需要一行代码即可,clip(burn.r - _BurnAmount);直接裁减掉不满足要求的片元,burn是一个噪声图,这样可以形成随机消失的效果。边缘着色部分的代码还是有一定...

2019-09-19 20:35:33

unity屏幕特效综述5 全局雾效

雾的计算原理其实很简单float3 finalColor = f * fogColor + (1-f)originColor也就是按照某种比例把雾的纹理和原始的纹理相融合,其中比较关键的点就是f的选取f的选取有多种方式,比如说f=dmax-d/dmax-dmin 这种的就是线性的雾,直观的感觉就是高度越接近dmin,雾的浓度越大,越接近dmax,雾的浓度就越小,此外,还有指数形式的计算方法,...

2019-09-19 19:17:44

unity屏幕特效综述4 边缘检测

这个屏幕特效我挺喜欢的,可以用来描边,也可以用来提取边缘,获得很多很棒的效果。什么样的点可能是边缘部分所在的点呢,如果该点附近的法线值相差的很多,那么这个点就可以被认为是一条边,具体的值可以用参数来控制。法线的差值我们通过卷积来获取,使用2x2的矩阵(-1,0,0,1)检测x方向以及2x2矩阵(0,-1,1,0)检测y方向,这个卷积核叫做Roberts算子。这个屏幕特效的脚本部分没什么好说的,...

2019-09-18 21:56:46

unity屏幕特效综述3 运动模糊

1.原理这里运动模糊特效值得是摄像机在运动的时候,场景会产生模糊的效应,而摄像机不动物体运动这种情况则不会产生。原理很容易,我们有很多方法实现,比如说直接获取相邻帧的图像,然后和这一帧图像进行混合,在这里我们采取另外一种方式,我们获取每个像素的运动速度,然后根据速度来偏移uv来获得多个采样,再把多个采样的结果进行混合即可。那么问题来了,要怎么才能获得速度呢,想要获取速度,我们可以通过相邻两帧...

2019-09-18 20:40:15

unity 深度纹理和法线纹理

原理在实现某些屏幕后处理的时候,仅仅只有图像的rgb信息是很难实现的,同简单的图像处理不同的是,我们能在shader中获得图像每个像素的深度信息和法线信息。想要理解深度纹理的原理就必须要对渲染流水线有个比较深入的了解,深度纹理和法线纹理通过unity底层使用的一个单独的pass来把整个场景再次渲染一遍,保存在_CameraDepthTexture里面,其中RG通道存储法线信息,BA通道存储深度...

2019-09-18 18:54:46

unity shader 入门精要阅读笔记-----渲染流水线

1渲染流水线这一部分的重点就是渲染流水线,理解渲染流水线对于后面的学习来说至关重要,这也是图形学的一个重要的基础知识环节。我们探讨空间中的模型是怎样一步一步转换到我们的屏幕坐标,然后显示在我们的面前的。我们把步骤分成四个步骤,顶点处理阶段–光栅化阶段–片元处理阶段–输出合并阶段1.1顶点处理阶段这一阶段的任务就是把我们的顶点坐标从模型空间转换到裁剪空间。1.1.1 矩阵变换虽然大学...

2019-09-17 16:15:05

unity屏幕特效综述2 bloom

bloom效果就是把图片的亮的部分往外面扩散,下图就分别是原图和使用了bloom效果的图片。其实现原理其实也就分成了两个部分,第一个部分是如何找到亮的部分,第二个是如何扩散。首先是如何提取练了高度部分,对于颜色的亮度我们有一个公式0.2125 * color.r + 0.7154 * color.g + 0.0721 * color.b;这个公式的返回值就是该颜色的亮度,我...

2019-09-16 10:27:51

unity屏幕特效综述1 高斯模糊

1.高斯模糊高斯模糊是后面很多屏幕特效的基础部分,其原理也很容易。在学习之前,必须要学会卷积的操作,如图所示,卷积操作指的是使用一个卷积核(左图的3x3矩阵)对待处理图像的每一个像素进行卷积操作,具体的做法是把3x3矩阵的中心点放到待卷积的像素上,然后对卷积核覆盖到的像素的值乘以卷积核的值,然后求和,就是该像素的最终结果。例如,我们使用卷积核为3x3的矩阵,矩阵每一个值都是1...

2019-09-15 23:09:38

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。