自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 练习项目(十):非真实感渲染的几个小知识点

概述本篇内容比较简单,主要介绍非真实感渲染中的几种轮廓线实现方法,再介绍一下卡通着色和素描风格的渲染技术。 一、表面角度轮廓线实现思路:利用视线方向和顶点法线的点积,得到轮廓线的信息。点积越接近0,说明距离轮廓线越近。这种方式的优点是,只需要一个Pass就可以得到结果,简单、快速。但缺点也很明显,只适用于某些类型的模型,对于像Cube这样的模型就会有问题。由于这种方法渲染得到的轮廓线宽度不均,实际应用不多。效果如下:代码如下二、程序几何轮廓线实现思路:使用两个Pass渲染,第一个Pass

2021-02-28 12:57:16 322

原创 练习项目(九):反射、折射相关计算

概述反射、折射,在实现水面、玻璃等效果的时候,都多多少少会用到一些。本文主要简单介绍一些实现反射和折射的知识。使用天空盒来代表环境的信息。 一、简单的反射反射,表现为物体反射它周围的环境。根据观察者的视角,反射会影响到物体本身的颜色表现。镜子就是一个反射性物体,它会根据观察者的视角反射它周围的环境。在中学的物理课中,应该就学习过入射角、反射角等概念。反射的原理并不难,只是根据视角方向、法线方向,计算出反射方向,用来采样立方体贴图(此处是天空盒)。下图简单描述了这个过程:已知视角方向viewDir

2021-02-28 12:56:21 917

原创 练习项目(八):在URP中显示法线图

概述在Build in渲染管线下,获取深度图、法线图很简单。但是在URP下,获取深度图很简单,但是并没有提供对获取法线图的支持。本文主要参考Build in渲染管线下获取法线图的原理,在URP下获取法线图。 一、Build in渲染管线中获取法线图在Build in渲染管线中,获取法线图很简单,在脚本中添加如下代码,然后挂在相机上即可。这样,深度、法线信息就会存储在名为_CameraDepthNormalsTexture的图中,在Shader中可以采样该图获取深度、法线信息。Camera.main.

2021-02-28 12:55:20 1542

原创 练习项目(七):几种简单的阴影实现

概述再次说明一下,最近的几篇“练习项目”,都是在学习这个Github项目,使用URP重新实现一遍。对于本篇的内容,我也纠结了很久,纠结要不要写本篇博客。因为本篇的内容没有什么知识点,只是介绍了一些比较受限的阴影实现。最后还是决定要写下来,让这个“练习项目”完整一点。 一、用面片实现阴影说起来也是缘分,几年前刚毕业进入一家游戏公司,那时候做的是横版2D游戏,游戏内角色的阴影就是用这种方式实现的。后来也有几款游戏延续了这种实现方式。这种方式很简单,用一个圆形的面片代表阴影,放在要产生阴影的物体下方,跟随

2021-02-28 12:54:13 603

原创 练习项目(六):Back facing描边法

概述描边,在卡通渲染中是一个非常重要的主题。目前比较流行的描边方法有两种:一种是基于后处理的描边,这种方式相对不容易定制,适用于对复杂场景的描边;一种是过程式描边,通过两次绘制,一次绘制本体,一次绘制描边。本文主要介绍第二种描边方式,在《GUILTY GEAR Xrd》中称其为Back Facing法。一、基本的实现描边基本思路是通过两次绘制,一次绘制本体,一次绘制描边。这里就有个问题,两次绘制的顺序怎么处理呢?经过试验可以发现,两种顺序可以得到相同的结果。本文使用的顺序是先绘制本体,再绘制描边

2021-02-28 12:53:12 694

原创 练习项目(五):程序化生成多边形

概述本篇是“练习项目”系列的第五篇,主要练习程序化生成各种多边形的例子。这一篇博客,主要都是一些数学知识,这里推荐一个软件:GeoGebra。这个软件可以很方便地画出各种函数的几何表示,对于问题的分析很有帮助。实例1、圆形在UV坐标系中,根据给定的圆心和半径,判断当前片元的UV值到圆心的距离是否小于半径。主要的代码如下:float Circle(float2 center, float radius, float2 uv){ return 1 - step(radius, distance(

2021-02-28 12:52:01 458

原创 练习项目(四):深度图基础及应用

概述本篇是“练习项目”系列的第四篇,主要介绍一下深度图的原理,以及使用深度图实现一些炫酷的效果。这里再次说一下,本系列的文章,大部分是根据网上的博客,把项目从Build in管线转到新版的URP管线。前面三篇文章,基本没遇到什么因为管线不同而产生的困难。但到了深度图和后处理,新旧管线之间还是有相当大的不同的,在这里绕了不少弯路,希望这里多注意一下。一、原理深度纹理实际就是一张渲染纹理,只不过它里面存储的像素值不是颜色值,而是一个高精度的深度值。由于被存储在一张纹理中,深度纹理里面的深度值范围是[0,1

2021-02-28 12:42:46 2285 1

原创 练习项目(三):表面凹凸技术

概述本篇是“练习项目”系列的第三篇,主要介绍一下利用表面凹凸技术提升物体的表面细节。为了提升模型表面的细节,一个可以想到的方式是制作更加复杂的网格,但这是不可取的。一方面会增加美术人员的工作量;另一方面,也会对机器的性能造成很大的消耗。本篇文章,将介绍一些表面凹凸的技术,来达到提高表面细节的目的。一、凹凸贴图(Bump Mapping)这种技术,使用高度图来计算法线。给定一张高度图,通过计算相邻像素的高度差值来改变表面法向量。为了计算(u,v)处的法向量,要经过以下几步。第一步,在(u-1,v)和

2021-02-28 12:40:06 269

原创 练习项目(二):消融效果

概述本篇是“练习项目”系列的第二篇,主要介绍一下利用消融实现的效果。在游戏开发的过程中,有很多看起来很神奇的效果,都是使用消融的原理实现的。原理主要的原理,就是使用噪声图和透明度测试,根据噪声图中采样的值,对某些像素进行剔除。1、基本原理实现这里会实现一个最基础的项目,来简单了解消融的基本原理。主要的代码如下:float cutout = SAMPLE_TEXTURE2D(_NoiseTex, sampler_NoiseTex, input.uv.zw).r;AlphaDiscard(cuto

2021-02-28 12:38:45 630

原创 练习项目(一):顶点动画

概述之前是使用OpenGL练习图形学项目的,现在要转向在Unity 3d中练习图像学项目。由此,才有了这一系列的项目。本篇将从比较简单的顶点动画说起,开启图形学的篇章。原理主要的原理,就是在顶点着色器中,对顶点进行各种偏移。这种偏移,可以根据自己的需要,在模型空间、世界空间、裁剪空间等空间中进行。1、压扁效果开放两个属性,TopY和BottomY,代表物体的上部和底部(世界空间中的数值)。再开放一个滑动属性用来控制顶点运动的幅度。以TopY为基准,先计算出每个顶点的世界坐标,然后对顶点的Y坐标进

2021-02-28 12:32:55 999 1

别踩白块源码和apk文件

使用unity 3d开发的别踩白块。包含工程文件和apk文件。

2015-04-05

空空如也

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

TA关注的人

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