自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

加载中...

----------请检查你的网络设置

  • 博客(10)
  • 收藏
  • 关注

原创 UnityShader26:运动模糊

一、在 Unity 中使用深度纹理或法线纹理前置:OpenGL基础29:深度测试,关于深度测试的流程以及深度值的算法、空间变换都在这里提到过在 Unity 中,想要在着色器中获得当前摄像机的深度纹理或者法线纹理,只需要设置//让摄像机产出一张深度纹理GetComponent<Camera>().depthTextureMode |= DepthTextureMode.Depth;//让摄像机产出一张深度-法线纹理GetComponent<Camera>()....

2021-02-26 11:29:52 805

原创 UnityShader25:在Unity中实现泛光

一、需要提前了解的这一章的例子非常的综合,可以说是知识点广而全,如果能独立在 Unity 中实现一个不错的泛光效果,那么 UnityShader 就算作入门成功!曾经在 OpenGL 的教程中,就已经实现过泛光效果了:OpenGL基础51:泛光 OpenGL基础35:帧缓冲(下)之简单图像处理:里面提到了一些图像处理的算子和卷积明白了泛光的原理后,就是 UnityShader的基础部分:UnityShader24:最简单的屏幕后处理例子:泛光必然也是一种后处理手段 Unit...

2021-02-24 14:06:47 1399

原创 UnityShader24:最简单的屏幕后处理例子

一、需要提前了解的其实关于屏幕后处理(Screen Post-processing Effects)相关的知识,前面已经提过了不少:这些是 OpenGL 渲染部分:OpenGL基础35:帧缓冲(下)之简单图像处理:图像处理更多的是思维和算法,和你的平台/语言都无关 OpenGL基础33:帧缓冲(上)之离屏渲染 OpenGL基础34:帧缓冲(中)之附件搞懂了上面这些后,就可以进入 Unity3D 了:UnityShader19:渲染纹理(上)之截屏功能实现:里面有关 Render...

2021-02-22 17:45:50 473

原创 UnityShader23:顶点动画

前置:UnityShader22:序列帧动画一、顶点动画如果说序列帧动画(uv 动画)是通过改变 uv 坐标来实现的,那么顶点动画就是通过改变 Mesh 每个顶点的位置,直接让这个物体“扭曲变形”来实现动态效果SCP783-扭曲的人只需要在 Shader 中修改顶点着色器中的 pos 值就可以实现简单的顶点动画,顶点动画的特点:想要实现复杂的动画可能较为困难,如有错误的计算可能会得到非常鬼畜的效果 由于是顶点动画,所以动画的精细程度和物体 Mesh 顶点数目成正比,必然是顶点越细密,...

2021-02-21 22:08:03 1487

原创 UnityShader22:序列帧动画

一、序列帧动画序列帧动画的原理是如此的简单,可以说只需要足够多张纸以及足够多的时间,就可以实现最简单的动画:不使用 Animation 工具,只需要使用 Shader 中的内置时间变量,就可以实现最简单的序列帧动画了。就像最早的电影,依次展示一张又一张的图片,只要这些图片是连续的并且切换的足够快,那么当然就可以骗过人的眼睛,得到细腻的动画效果(现在我们的电脑电视本质上依然是这个原理,只不过是以帧的形式表现的)‘序列帧的优点和缺点都很明显:优点:无需任何计算,直接显示图片,逻辑简单,...

2021-02-19 21:25:00 3827

原创 UnityShader21:程序纹理

一、程序纹理程序纹理顾名思义就是代码生成的纹理,好了到此就是程序纹理的全部介绍了……再细一点讲:假设我们想生成一个下面这样的纹理(白色背景,9给黄色圆圈等距排列),对应的伪代码就为定义圆的半径A = ?定义第一个圆的圆心B = ?定义相邻两个圆的横纵距离 = ?定义每行每列圆的个数 = 3 x 3定义纹理大小(HxW)= 512 x 512定义圆的颜色 = yellow……for 纹理的每一个像素 if 计算得到当前像素坐标在某个圆的内部 设置...

2021-02-18 22:10:58 1067

原创 UnityShader20.1:CommandBuffer初见(下)

接上文:UnityShader20:CommandBuffer初见(上)四、复杂一点的例子……CommandBuffer代码参考如下:using UnityEngine;using UnityEngine.Rendering;using System.Collections.Generic;[ExecuteInEditMode]//加上ExecuteInEditMode后,下面的代码在编辑模式中就会运行,无需每次测试都要play了public class CommandBuf...

2021-02-10 16:46:57 2900

原创 UnityShader20:CommandBuffer初见(上)

一、命令缓冲区 CommandBuffer根据渲染模式的不同,Unity的渲染流水线如下:其中蓝色的部分就是 CommandBuffer 可插入的部分,CommandBuffer 本质上就是做一个插入操作,以实现在 Unity 的某个渲染步骤完成后,执行你的额外操作其中:可以通过Camera.AddCommandBuffer命令插入到 Camera Rendering 渲染队列,插入点为CameraEvent enum. 枚举中的内容, 可以通过Light.AddComm...

2021-02-09 21:26:06 1500

原创 UnityShader19.1:渲染纹理(下)之GrabPass

接上文 :渲染纹理(上)之截屏功能实现四、GrabPass 抓取图象GrabPass 是 UnityShader 中的一个特殊 Pass,它的目的很简单:立刻获取当前的屏幕图象代码也非常简单:Tags { "Queue" = "Transparent" "RenderType" = "Opaque" }GrabPass { "_RefractionTex" }LOD 200PASS { //…… sampler2D _RefractionTex; ...

2021-02-05 22:36:09 1340

原创 UnityShader19:渲染纹理(上)之截屏功能实现

一、渲染到 RT渲染纹理(Render Texture) 就是游戏开发中经常被提到的 RT,渲染到 RT 的一句话理解就是不将渲染的结果直接显示的屏幕上,而是存至一张指定的纹理中在 Unity 中最简单的操作(三步实现渲染到 RT,无需写代码):这样这台摄像机的渲染结果就会存入你设置的 RT 中,而不再显示在屏幕上这个设置转成代码就是:_renderTexture = new RenderTexture(width, height, 8);_camera.targe...

2021-02-02 18:25:15 1437

OpenGL基础学习完整代码(完整场景带优化).zip

对应的OpenGL学习博客:https://blog.csdn.net/jaihk662/category_9903113.html,第1章~第56章节完整代码。需要对应环境(openGL基本环境,SOIL库、glm库以及Assimp库、FreeType库),如何装环境的教程也在上面的链接中。此代码仅用于OpenGL入门学习

2020-09-28

OpenGL基础学习完整代码.zip

对应的OpenGL学习博客:https://blog.csdn.net/jaihk662/category_9903113.html,第1章~第45章节完整代码。需要对应环境(openGL基本环境,SOIL库、glm库以及Assimp库),如何装环境的教程也在上面的链接中。此代码仅用于OpenGL入门学习。PS:可能会有点卡主要是因为:①使用的地面模型是高模(几十万个顶点)②使用的天空盒贴图是2040x2048的超大贴图6张;没办法只找到这些资源,所以只能将就着用了

2020-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除