logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

(二十二)unity Shader——————非真实感渲染:下篇(素描风格的渲染)

另一个非常流行的非真实感渲染是素描风格的渲染。有篇著名的论文中提到过,使用了提前生成的素描纹理来实现实时的素描风格渲染,这些纹理组成了一个色调艺术映射,这些纹理笔触逐渐增多,用于模拟不同光照下的漫反射结果,从上到下对应了每张纹理的多级渐远纹理,这些纹理的生成并不是简单的对上一层纹理进行降采样,而是需要保持笔触之间的间隔,以便更真实的模拟素描效果。本节我们使用6张素描纹理进行渲染,在渲染阶段首先..

#游戏开发
(十二)unity Shader之——————屏幕后处理效果(Bloom效果)

Bloom特效是游戏中很常见的效果,这种特效可以模拟真实摄像机的一种图像效果,它会让画面中较亮的区域扩散到周围的区域中,造成一种朦胧的效果。下图是原图:下图是bloom的效果图:Bloom的实现原理:首先根据一个阈值提取出图像中的较亮区域,把他们存储在一张渲染纹理中,再利用高斯模糊对这张渲染纹理进行模糊处理,模拟光线扩散的效果,最后再将其和原图像进行混合,得到最终的效果。...

#游戏开发
(二)引擎向研究之——————unity2018.3新Prefab系统的常用API详解

PrefabUtility这个类是主要用到的,我们来看下里面的常用方法是做什么的。一、PrefabUtility.SaveAsPrefabAsset()方法public static GameObject SaveAsPrefabAsset(GameObject instanceRoot, string assetPath, out bool success);该方法是把一个gameobject保

#游戏开发
(二十九)unity shader之——————着色器的组织和复用(cginc文件复用代码、宏定义和shader变体、自定义材质编辑器)

一、cginc文件1.1 unity的UnityCG.cginc文件我们经常使用#include 指令包含UnityCG.cginc。这个文件中包含了unity预定义的大量结构和函数,通过#include指令可以复用这些结构和函数,而不必每次都重新定义它们。1.2定义自己的cginc文件我们可以定义自己的cginc文件,然后用#include指令包含该文件,实现着色器代码的复用。虽...

#游戏开发
(三)unity shader在实际项目中出现的问题————部分机型(如三星Note9)在某场景实时阴影闪烁问题

本专栏主要解决一些移动平台上unity shader效果异常的问题。很多情况下我们发现unity中的shader在PC平台效果正常,但是在移动平台上效果不对,或者部分机型效果不对的问题,尤其是低档老年机,作为一款上线游戏难免要支持高中低档大部分机型,但是部分机型(如华为)在渲染方面难免会出现很多奇怪的问题。最近在用三星note9跑我们手游的一个场景时(这个场景比较大,而且分为很多层楼),在...

#游戏开发
(四)unity中的渲染优化技术——————(游戏物体、UI、模型的优化,以及移动平台的一些优化)

一、渲染优化的元素和渲染优化相关的东西很多,大致可分为网格、着色器材质、光照和阴影。相关的优化技术有相机视椎体剔除、遮挡剔除、基于层的分类剔除与合并绘制调用。LOD降级分为着色器的LOD降级和LodGroup降级。在所有这些方面地形是比较特殊的,假设使用的是unity的地形,可以将这些与性能优化有关的元素整理成下图:1.1 小型物体的优化小型物体不能像一堵墙或桌子那样提供遮蔽,按...

#游戏开发
(二十三)unity shader之——————使用噪声:上篇(消融效果)

很多时候向规则的事物里添加一些“杂乱无章”的效果往往会有意想不到的效果,这些效果的来源就是造成,我们会学习使用噪声来模拟各种看似“神奇”的特效。一、消融效果消融效果常见于游戏中角色死亡、地图烧毁等效果。在这些效果中,消融往往从不同的区域开始,并向看似随机的方向扩张,最后整个物体都将消失不见。效果类似如下:实现原理概况来说就是噪声纹理+透明度测试。我们使用对噪声纹理采样的结果和某个控...

#游戏开发
(二十一)unity Shader——————shader中的动画效果:下篇(顶点动画)

顶点动画可以让我们的场景变得更加生动有趣。在游戏中,我们常常使用顶点动画来模拟飘动的旗帜,河流的效果。下面将学习两种常见的顶点动画应用:流动的河流以及广告牌技术,最后还给出一些顶点动画中的注意事项以及解决方法。一、流动的河流河流的模拟是顶点动画最常见的应用之一。原理通常是使用正弦函数等来模拟水流的波动效果。本节会展示如何模拟一个2D的河流效果。1.声明属性:Propertie...

#游戏开发
(十四)unity shader基础之——————基础纹理:上篇(uv坐标、纹理采样、纹理属性介绍)

纹理最初的目的就是使用一张图片来控制模型的外观。使用纹理映射技术可以把一张图黏在模型表面,逐纹素(名字和像素进行区分)地控制模型的颜色。美术建模时候通常会在建模软件中利用纹理展开技术把纹理映射坐标存储在每个顶点上。纹理映射坐标定义了该顶点在纹理中对应的2D坐标。通常坐标使用一个二维变量(u,v)来表示,其中u是横向坐标,v是纵向坐标,因此纹理映射坐标也被称为uv坐标。纹理大小可以是多种多样...

#游戏开发
(十一)unity Shader之——————屏幕后处理效果(高斯模糊)

前一篇文章中讲了卷积的概念,并利用卷积实现了一个简单的边缘检测效果。下面将学习卷积的另一个常见应用——高斯模糊。模糊的实现方法有很多,例如均值模糊和中值模糊,均值模糊同样使用了卷积操作,它使用的卷积核中的各个元素值都相等,且相加等于1,也就是说,卷积后得到的像素值是其领域内各个像素值的平均值。而中值模糊则是选择领域内的所有像素排序后的中值替换掉原颜色。一个更高级的模糊方法是高斯模糊。下图是原效..

#游戏开发
    共 33 条
  • 1
  • 2
  • 3
  • 4
  • 请选择