今天一个本科小学弟问到一个matlab编程问题,说自己只是改了别人的一小段代码,结果程序运行就通不过。给他看了一遍代码,我也没有发现问题。在一个for循环里面,第一遍能跑完,跑到第二遍的时候就会在一句调用sum函数的地方提示错误,反复对比单步调试无果。还多次确认,sum函数本身并没有什么使用限制。后来突然灵光一闪,发现他的for循环里面用到一个变量名就叫 sum, 第一遍循环跑完后,sum变量进
1.边缘光方法(Rim Light): Unity官方教程里有例子,其中核心是这两句代码: half rim = 1.0 - saturate(dot (normalize(IN.viewDir), IN.worldNormal)); o.Emission = _RimColor.rgb * pow (rim, _RimPower); IN.viewDir是当前视
原因在将资源打包成 AssetBundle 进行加载时,发现有一些特效没有达到预期的效果,如下可以看到圆形的硬边:分析将这个特效资源导出到另一个工程,单独打包 AssetBundle 进行加载,发现没有问题,如下所示:对比原 AssetBundle 文件,发现特效里使用的模型因为也被其他特效使用,所以单独打成了依赖的 AssetBundle 包。然后用解包工具解包,用 3D MAX 打开,可以看到...
原创 2021-08-20 14:51:46
1412阅读
1、Shader是渲染流水线中的某些特定阶段,如顶点着色器阶段、片元着色器阶段等。在Unity中,我们需要配合使用材质和Unity Shader才能达到需要的效果,一个常见的流程是:①创建一个材质②创建一个Unity Shader,并把它赋给上一步中创建的材质③把材质赋给要渲染的对象④在材质面板中调整Unity Shader的属性,以得到满意的效果    在
转载 2024-03-10 20:09:23
148阅读
本系列主要参考《Unity Shaders and Effects Cookbook》一书(感谢原书作者),同时会加上一点个人理解或拓展。这里是本书所有的插图。这里是本书所需的代码和资源(当然你也可以从官网下载)。==========================================...
原创 2022-01-07 10:20:19
1280阅读
unity内置时间变量:_Time float4 t是自该场景加载开始所经过的时间 (t/20,t.2t.3t)_SinTime t是时间的正弦值 (t/8,t/4,t/2,t)_CosTime t是时间的余弦值(t/8,t/4,t/2,t)unity_DeltaTime dt是时间增量 (dt,dt/2,smoothDt,1/smoothDt)纹理动画序列帧动画顶点着色器中完成顶点变换与定点纹理
转载 2024-04-08 11:14:43
122阅读
上一节中说了,在 Surface Shader 中,添加顶点函数,我们可以在 顶点函数中获取到 顶点数据,比如顶点颜色顶点坐标等。这一节学习获取顶点坐标,并且修改顶点坐标,来实现顶点动画。简单介绍原理:在顶点函数中,获取到顶点坐标 vertex,然后,求float offsetY = sin(vertex.x) ,然后将 offsetY 加到 vertex.y 上,这样就把原来的平面 ,变成了
在今年GDC上发现一个非常有趣的演讲,叫做Animating With Math,遂实现之,是讲述顶点shader动画的,举了几个经典的例子,但是讲者并没有给代码,而是像虚幻引擎那样的节点,这样更加清楚明了 之前博主通过顶点着色器实现了水的波动算法: unity3d 制造自己的水体water effect(二) 顶点着色器动画可以减少动画的开销,并减少关节joint的数量 开始举的例子都很简单,
转载 2024-03-01 20:31:31
125阅读
虚幻引擎中VertexPainting工具能够很方便的将几种材质进行混合并绘制在模型上。而在Unity中则可以通过VertPaint这个插件来实现差不多的效果(PS:肯定是没有虚幻中的那么强大)。操作步骤如下(以Bulit—in管线为例):一、首先在Window中找到VertPaint并打开,也可以按Ctrl+Shift+V打开,打开之后会出现右图中的窗口二、把混合材质赋予到需要绘制的物体插件自带
转载 2024-02-27 18:06:47
77阅读
序详见官方文档:Unity - Manual: Mesh data (unity3d.com)Topology:拓扑结构翻译:拓扑描述网格具有的面类型。 网格的拓扑定义了索引缓冲区的结构,索引缓冲区又描述了顶点位置如何组合成面。每种类型的拓扑都使用索引数组中不同数量的元素来定义单个面。 Unity支持以下网格拓扑: 三角形 Quad 线 LineStrip 积分 index data:索
转载 2024-09-09 17:12:53
133阅读
概述之前是使用OpenGL练习图形学项目的,现在要转向在Unity 3d中练习图像学项目。由此,才有了这一系列的项目。本篇将从比较简单的顶点动画说起,开启图形学的篇章。 原理主要的原理,就是在顶点着色器中,对顶点进行各种偏移。这种偏移,可以根据自己的需要,在模型空间、世界空间、裁剪空间等空间中进行。1、压扁效果开放两个属性,TopY和BottomY,代表物体的上部和底部(世界空间中的数值)。再
3D数学基础向量向量可以看做具有方向和大小的一条线段。比如:我们如果用点A减去点B,则可以得到一个向量,该向量的方向为点B面向点A的方向,而大小为两点的距离。这个方法在游戏开发中经常用到,比如我们要让物体B面向物体A,一般都是使用物体B的位置减去物体A的位置,得到的向量取模。点积向量的点积表示一个向量在另一个向量上的投影,如下:而相互垂直的两个向量点积为0:我们可以使用这个特性来判断两个向量是否垂
转载 2024-10-05 13:03:08
80阅读
目录绘制图元的几个方法基于线段的方式基于顶点法绘制立方体基于索引法绘制立方体绘制图元的几个方法OpenGL ES中有5个绘制图元的API调用:glDrawArrays、gIDrawElements、glDrawRangeHonents、 glDrawArraysInstanced和glDrawElementsInstanced。glDrawArrays用元素索引为first到first+count
将渲染流程划分为表面着色器、光照模型和光照着色器这样的层面。其中,表面着色器定义了模型表面的反射率、法线和高光等,光照模型选择是使用兰伯特还是Blinn-Phong等模型。而光照着色器负责计算光照衰减、阴影等。表面着色器实际上就是在顶点/片元着色器之上又添加了一层抽象。表面着色器的一个例子使用表面着色器来实现一个使用了法线纹理的漫反射效果。Shader "Custom/Bumped Diffuse
转载 2024-08-02 16:30:10
170阅读
流动的河流 // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Unlit/ScrollRiver" { Properties { //河流纹理 _MainTex ("Texture", 2D) = "white" {
使用 MegaFiers 插件,能够使得Unity支持顶点动画的播放。官方视频教
转载 2015-03-12 21:13:00
464阅读
2评论
使用 MegaFiers 插件,可以使得Unity支持顶点动画的播放。官方视频教程如下:在这里简单测试使用下,环境如下:Blender 2.72Unity 4.5.4MegaFiers 2.74在这里简单测试使用下,环境如下:Blender 2.72Unity 4.5.4MegaFiers 2.74创建物体和动画首先打开Blender,默认会含有一个立方体,下面对这个立方体制作一个简单动画,让其在1~100帧做旋转,101
原创 2021-08-20 14:46:07
2224阅读
一、点积(又称“数量积”、“内积”) 1、理论知识在数学中,点积的定义为a·b=|a|·|b|cos<a,b> 【注:粗体小写字母表示向量,<a,b>表示向量a,b的夹角,取值范围为[0,π]】。从定义上,我们知道向量的点积得到的是一个数值。而不是向量(这点大家要注意了!要与叉积进行区别)。另外点积中的夹角<a,b>没有顺序可言,即<a
Unity_shader结构体定义及其使用定义,与大部分编程语言相似,结构体作为一个包含多种类型变量的整体定义而出现。并且在定义结构体的时候,你可以为其中的变量绑定语义。使用:作为一种变量类型来使用是自然的,具体我们可以让其作为函数的参数和返回值出现,会让代码变的规整很多,大大提升可阅读性。注意:当你用结构体绑定一个语义的时候,用其向一个语义返回了值,当你再需要这个值的时候,最好仍旧使用这种结构体
转载 2024-10-26 16:45:41
45阅读
  • 1
  • 2
  • 3
  • 4
  • 5