模型的光照效果是通过存储在顶点中的法线方向和光照角度计算得到的,当顶点数不多的时候,三角形上的法线方向是通过硬件插值得到的,由于硬件插值得到的是一个平滑的数值,这就造成了表面失去凹凸起伏的细节。法线贴图就是为了弥补这个而出现的,所以使用了法线贴图后,模型的法线方向可以细化到像素级别,而不是顶点级别。关于法线贴图的细节可以看这篇文章,这里面已经讲得很清楚了。下面主要说一下在使用法线贴图时,如果模型的
转载
2024-10-25 16:08:16
47阅读
一、立方体纹理 立方体纹理是环境映射的一种实现方式,立方体纹理就是立方体的六个面,每个面有一个纹理,一般用于映射出物体周围环境。 和基础纹理不同,采样立方体纹理需要一个三维坐标,而这个三维坐标由一条向量与立方体的交点构成,注意采样时,向量是由立方体内的
转载
2024-04-08 20:22:55
104阅读
写在前面 写这篇的目的是为了总结我长期以来的混乱。虽然题目是“法线纹理的实现细节”,但其实我想讲的是如何在shader中编程正确使用法线进行光照计算。这里面最让人头大的就是各种矩阵运算和坐标系之间的转换,很容易因为坐标系错误而造成光照结果的错误。 我们将要讨论以下几个问题:为什么法线纹理通常都是偏蓝色的?在Unity里,法线纹理是需要把“Texture Type”设置成“Normal Map
转载
2016-07-12 14:32:00
185阅读
2评论
写在前面写这篇的目的是为了总结我长期以来的混乱。虽然题目是“法线纹理的实现细节”,但其实我想讲的是如何在shader中编程正确使用法线进行光照计算。这里面最让人头大的就是各种矩阵运算和坐标系之间的转换,很容易因为坐标系错误而造成光照结果的错误。我们将要讨论以下几个问题:为什么法线纹理通常都是偏蓝色...
原创
2022-01-07 09:55:18
1204阅读
Unity Shader 阶段性反思与总结(一)最近在写Shader的时候,总是感觉力不从心,感觉自己已经看了蛮久的书了,也有一定的积累了,但是一想写什么效果,完完全全就是脑袋一团空白。典型的例子就是,我想写边缘光效果的时候,完完全全就是不知道怎么下手这样子。然后,感觉自己在看书,也没什么提升,每天好像就从书上抄代码一样。。。。。让我很有挫败感。现在记录一下我在学Shader的时候,读《unity
简介以前经常听说“模型不好看啊,怎么办啊?”答曰“加法线”,”做了个高模,准备烘一下法线贴图”,“有的美术特别屌,直接画法线贴图”.....法线贴图到底是个什么鬼,当年天真的我真的被这个图形学的奇淫杂技忽悠了,然而毕竟本人还算有点刨根问底的精神,决定研究一下法线贴图的原理以及Unity下的实现。本人才疏学浅,如有错误,欢迎指正。 法线贴图是目前游戏开发中最常见的贴图之一。我们知道,一般情况下,模型
写在前面
有很多情况你可能想要使用法线去影响反射效果。比如,你想要模拟一个被霜雪覆盖的玻璃材质的表面,或者一个冰块。如果你根据物理知识真实的模拟这个平面的每一个细节部分,那么你就不要希望你游戏的FPS还可以达到60帧了。相反的,我们可以使用法线贴图来伪造一个视觉体验,因此我们需要学习如何将法线贴图的信息传递给反射效果。 为了完成这个任务,我们将要学习Input结构体的另一个内置
转载
2024-08-26 20:49:22
53阅读
光学是初中物理中一个难度较大的知识点,也是中考必考的知识点。今天科学高分网的小编将光现象的知识点汇总在一起,本文会讲解到所有知识点,希望可以对同学们的复习有所帮助。让我们一起来看看吧!1、光的反射定律1.光的直线传播: 2.光的反射定律:反射光线,入射光线,法线在同一平面内;反射光线,入射光线分别位于法线两侧,反射角等于入射角。 3.光的反射分类: (1)镜面反
转载
2024-05-08 23:41:11
252阅读
实现简单的纹理映射
1 单张纹理1.1 纹理使用纹理映射(Texture Mapping)技术,我们把一张图片逐纹素(Texel)地控制模型的颜色。美术人员建模时,会在建模软件中利用纹理展开技术把纹理映射坐标(Texture-Mapping Coordinates)存储在每个顶点上。纹理映射坐标定义了该顶点在纹理中的2D坐标。纹理映射坐标通常是2维坐标(u,
转载
2024-05-08 20:46:23
185阅读
不知道大家有没有玩过赛车游戏赛车游戏的跑道有路标,如下图玩过赛车游戏的都知道,大多数赛车游戏的路标是会动的,如上图,它会从右往左运动不会发动态图,大家脑补一下吧没有玩过赛车游戏的也不要紧,大家见过游戏中的瀑布或者湖面吗?如下图:高山流水 当然,我这个贴图的效果不是很好,不过我这里要说的是原理,不妨碍,我们继续图中的瀑布从上往下流动我们都知道,如果用粒子的话,有几百个瀑布,在手机上肯定是非
转载
2024-04-18 12:42:32
69阅读
法线贴图NormalMap在有光照的环境下,如果物体表面是凹凸不平的,那么它在接受光照的时候在不同的区域就会呈现出不同的明暗效果来展现这种凹凸感,正因为物体表面法线的不同才导致了最终光照结果的不同,如果我们能够把整个模型表面各个位置的法线映射到一张二维贴图上,然后在这张贴图上存储上法线的信息,就可以达到通过底模+二维贴图达到高模效果了。而这里的二维贴图就是我们所说的法线贴图。纹理贴图中我们存储的是
总结起来有两个,一个是基本的转换,单纯的模型空间转换到世界空间,第二个是需要法线贴图时(Bump Textrue)的时候就转换到切线空间下进行计算。1.从“模型空间”到“世界空间”(Object To World):(1)方法1,使用和“顶点”到“世界”变换矩阵的“逆转置矩阵“对法线进行相同的变换,因此先得到顶点的模型到世界的变换矩阵的“逆矩阵”(Unity_WorldToObject
转载
2024-09-13 12:56:22
96阅读
内容说明: 1. 法线贴图的原理 2. 法线贴图的unity实现 1. 法线贴图的原理 1.1 什么是法线贴图? 每个顶点都有一条法线,三角形内部法线由插值计算得出,颜色则是直接从纹理取数据。法线贴图的基本思想就是像纹理采样一样为法线取值。 1.2法线纹理
原理深度纹理实际就是一张渲染纹理,只不过它里面存储的像素值不是颜色值,而是一个高精度的深度值。由于被存储在一张纹理中,深度纹理里的深度值范围是[0, 1],而且通常是非线性分布的。这些深度值来自于顶点变换后得到的归一化的设备坐标(NDC)。回顾一下,一个模型要想最终被绘制在屏幕上,需要把它的顶点从模型空间变换到齐次裁剪坐标系下,这是通过在顶点着色器中乘以MVP变换矩阵得到的。在变换的最后一步,我们
概念1.通过改变法线的方向,间接的影响光照2.法线贴图是将法线的方向转换成color储存在贴图的每个像素里3.法线的方向每个分量的值是-1-1,贴图的color值是0-1向量换算成color每个分量 (normal+1)/2,color换算成法线就 (pixel*2-1)法线贴图储存法线的空间既然法线贴图像素储存的是法线,那处于那个坐标空间呢贴图里储存那个空间的法线都是可以的,为什么都
转载
2024-03-31 19:23:25
80阅读
原理和概念
法线是一个向量(x,y,z),每一个顶点都有一个法线,用一个纹理去存储的话,那就是(r,g,b),由于法线是垂直于一个面的,对于2d图片来说,那他的z值就是1
用一张纹理来存储法线的值,法线的xyz方向取值是【-1,1】,而rgb的取值是【0,1】,所以这里有一个转换rgb = (normal+1)/2=0.5*normal+0.5
转载
2024-03-18 00:05:02
345阅读
法线贴图可以让低模看起来像是高模一样,具体的实现原理,是改变了光照,呈现出凹凸度: 下图中为法线贴图 根据光照模型来进行更改: 首先我们需要声明法线贴图纹理和法线的凹凸度:_BumpMap("bumpMap",2D) = "bump"{}
_BumpScale("BumpScale",Float) = 1.0sampler2D _BumpMap;
float4 _BumpMap_ST;
float
转载
2024-07-17 09:20:55
63阅读
作者 (爱尔兰)Matt Smith 3.4 创建高光纹理贴图有些表面可能既有光滑的区域,又有粗糙的区域,为了达到这个效果,可以使用高光贴图(specular maps)。3.4.1 准备工作为了便于讲解,本节将创建一个生锈的金属材质来演示specular属性如何增强现实。如果读者还没有用于生成高光材质的基础纹理,示例代码中名为“0423_03_03”的文件夹中有本节需要用到的素材。3.4.2 操
转载
2024-05-03 22:55:45
52阅读
一、前言之前我发表过一篇Unity3D 卡通渲染 基于退化四边形的实时描边,最重要的实时描边已经实现了,本文接下来要完善一下它。在之前的实时描边中,使用了几何着色器中的LineStream来进行绘制线条的,这样绘制线条是无法脱离底层特性来在所有平台上通用式地控制线条的粗细,这就需要我们再做文章。 二、原理关于图形学中如何控制线条粗细这个问题,其实早就有人做了研究,文章在这。借用该文章的一
转载
2024-03-15 11:44:41
106阅读
Unity3D引擎对纹理的处理是智能的:不论你放入的是PNG,PSD还是TGA,它们都会被自动转换成Unity自己的Texture2D格式。 在Texture2D的设置选项中,你可以针对不同的平台,设置不同的压缩格式,如IOS设置成PVRTC4,Android平台设置成RGBA16等。 嗯,非常的智能。 但是,在一些进阶的使用中,一些情况是难以满足的。 比如,我们NGUI的图集纹理,在Androi
转载
2024-04-21 16:17:03
2阅读