- 博客(31)
- 资源 (1)
- 收藏
- 关注
原创 2021-10-13
==您好!订单1418347309759417682链接:https://pan.baidu.com/s/16PjFGQFyJ13Dp83HAxoYcA 提取码:x3zt 解压密码:虚幻4资源站
2021-10-13 12:46:14
191
原创 Maya插件开发之螺旋线
def createHelix(height,quan,radius,span): Curve = cmds.curve(d=1,p=[(0,0,0),(0,height,0)]) cmds.rebuildCurve(Curve,s=span,d=3) Deformer = cmds.nonLinear(Curve,type = 'twist') cmds.move(radius,0,0,Deformer[1],r=True,os=True,wd=True) cmd.
2021-05-03 22:18:04
412
原创 Uniy Shader 屏幕后处理之边缘检测
原理;对屏幕的像素进行卷积,得到相邻像素的梯度,来判定像素是否为边缘,再用指定的颜色对边缘像素进行着色。卷积;使用一个四方形网格结构(如下图,实际上在代码中是长度为4或者9的数组),将卷积核的中心放置在当前像素,此时卷积核的其他元素也会一一对应当前像素周围的像素。我们将卷积核的元素与对应的像素的亮度相乘,得到结果,并将结果相加。得到一个梯度值,再将卷积核反转,也就是如上图中一样,将Gx变为Gy(实际代码中是直接定义两个卷积核),再重复操作。得到另一个梯度值梯度值越大,越有可能是边缘.
2021-02-18 13:37:03
306
原创 unity shader 屏幕后处理之OnRenderImage()
一、OnRenderImageunity shader中的pass是会顺序执行的,但是由于在图像处理中我们常常需要使用一个pass的处理结果作为另一个pass的输入,这个时候就需要用到OnRenderImage()函数了。我们在脚本中使用这个函数。官方描述DescriptionOnRenderImage is called after all rendering is complete to render image.,该函数在所有的渲染完成后由monobehavior自动调用。官方解释
2021-02-17 17:59:58
912
原创 shader的三种着色方式
Flat Shading(平面着色):平面着色简单来讲,就是一个三角面用一个颜色。如果一个三角面的代表顶点(也许是按在index中的第一个顶点),恰好被光照成了白色,那么整个面都会是白的。Gouraud Shaing(高洛德着色);三角面三个顶点的颜色都会考虑到,只是最后三角面的颜色是三个顶点的插值。Phong Shading;对顶点的法线进行插值得到三角面的法线,再直接对三角面进行颜色计算,这样得到的光照颜色更加平滑。...
2021-02-07 16:30:15
528
原创 Unity Destroy
使用Destroy时,如果删除的GameObject类型变量下次还会访问,则最好Destroy其的gameobject。
2021-01-30 16:20:23
306
原创 Unity Shader UV动画之高光材质加上透明材质与UV动画
理解,UV动画实质是对UV的坐标进行变化,从而使纹理产生动态变化例子;从高光材质进行修改1,加上透明材质的标签以及混合模式,再使用带透明通道的贴图,可以实现;不透明部分的图案,材质是高光材质,透明通道部分透明。2,对UV进行调整使纹理产生动画// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with
2020-11-17 22:29:03
625
原创 Unity 异步加载场景+进度条
1,创建一个场景,作为准备场景2,创建一个按钮,点击后开始加载场景3,创建一个plane,下设一个slider和一个文本,作为读取界面4,创建一个空物体放场景控制脚本,名为Sencemanager5,创建脚本...
2020-11-03 17:37:26
434
原创 Unity半透明材质,写入深度的半透明材质,不透明材质之间的遮挡关系
黄色为写入深度半透明材质,红色为不写入深度半透明材质,灰色为不透明材质场景一材质 队列索引号 黄 3000 红 3000 灰 2000/3000 场景二材质 队列索引号 黄 3001 红 3000 灰 2000 场景三材质 队列索引号 黄 3000 红 3000 灰 3001 结论一;当索引号相同,半透明物体是从后往前渲染.结论二;索引号越大,越后渲染结
2020-09-01 16:43:17
2102
1
原创 Unity Shader笔记之Blinn—Phong光照模型高光代码理解
fixed3 worldNormal = normalize(i.worldNormal);fixed3 worldLightDir = normalize(UnityWorldSpaceLightDir(i.worldPos));观察方向fixed3 viewDir = normalize(UnityWorldSpaceViewDir(i.worldPos));或fixed3 viewDir = normalize(_WorldSpaceCameraPos.xyz-i.world.
2020-08-28 16:02:15
268
原创 Unity Shader笔记之标准光照模型(Phong光照模型)高光代码理解
反射方向fixed3 reflectDir = normalize(reflect(-worldLightDir,worldNormal));reflectreflect是cg的函数,reflect(i,n) i为入射方向,n为法线方向,返回反射方向 worldLightDir worldLightDir = normalize(UnityWorldSpaceLightDir(i.worldpos)); UnityWorldSpaceLightDir() ...
2020-08-28 11:37:00
540
原创 Unity Shader笔记之基本漫反射代码理解
fixed3 albedo = tex2D(_MainTex,i.uv).rgb*_Color.rgb;fixed3 diffuse=_LightColor0.rgb * albedo * max(0,dot(worldNormal,worldLightDir));albedo是材质反射率tex2Dtex2D是Cg的函数,用于对纹理进行采样获取纹素值,第一个才是是需要采样的纹理,第二个是float2类型的纹理坐标将纹理的颜色和之前定义的作为材质颜色的color属性相乘,得到材质的反射率
2020-08-27 16:44:06
313
原创 Unity渲染路径
渲染路径(Render Path)决定了光照如何应用到Shader渲染路径的设置可以在Project setting中设置全局的渲染路径,也可以在摄影机中设置摄影机的渲染路径,摄影机可以使用全局的渲染路径也可以使用自己设置的渲染路径。显卡对渲染路径设置的影响如果显卡不支持某个渲染路径,那么unity会自动使用更低一级的渲染路径。Pass中关于渲染路径的设置通过设置标签,编译指令来指定Pass使用的渲染路径。前向渲染路径(Forward Rendering Path)三种处
2020-08-25 17:14:30
340
原创 入门精要理解笔记——8.5开启深度写入的半透明效果
半透明效果涉及到的知识点有深度测试,深度写入,颜色缓冲,渲染顺序,渲染队列,混合命令下面这个例子中,渲染状态决定了不透明物体全部先于半透明物体渲染,并存入深度,然后在示例shader中第一个pass开启了深度写入,写入了深度值。但是不写入任何颜色通道,即不输出颜色,第二个pass不开启深度写入。这样就剔除了自身模型理论上不可见的面(是自身模型,而不是使用了这个shader的模型),...
2020-08-04 17:33:55
260
原创 ZTest与ZWrite
Unity中的几种渲染队列首先看一下Unity中的几种内置的渲染队列,按照渲染顺序,从先到后进行排序,队列数越小的,越先渲染,队列数越大的,越后渲染。Background(1000)最早被渲染的物体的队列。Geometry (2000)不透明物体的渲染队列。大多数物体都应该使用该队列进行渲染,也是Unity Shader中默认的渲染队列。AlphaTest (2450)有透明通道,需要进行Alpha Test的物体的队列,比在Geomerty中更有效。Transparent(300...
2020-08-04 14:46:38
598
原创 Unity Surface Shader的半透明发光双面渲染
思路Surface不能像顶点/片元着色器一样用两个PASSCall back渲染正面的代码Call front渲染反面的代码代码Shader "Unlit/shader1"{ Properties { _MainTex ("Particle Texture", 2D) = "white" {} _RimColor ("Rim Color", Color) = (0.5,0.5,0.5,0.5) _InnerColor...
2020-08-04 10:32:46
758
原创 FairyGUI与Unity开发之下载安装
安装Fairy与Unity SDK登录FairyGUI官网https://en.fairygui.com/product.html下载Window版本Fairy要支持Unity平台则需要下载SDK,在Unity的Asset Store中搜索FairyGUI可直接下载并导入导出Fairy工程并导入进Unity选中Fairy中要导出的组件右击设置为“设置为导出”点击菜单栏导出按钮,将导出的路径设置为Unity项目中FairyGUI的SDK文件下的Resources文件夹下例子
2020-07-22 17:40:25
1945
原创 射线检测时遇到的Bug以及原因
如果在射线检测的判断语句中没有加上 if (hit.collider != null)条件则会报错,提示Object reference not set to an instance of an object,因为射线没有触碰到指定collider时if (hit.collider.tag == "catch")语句仍然执行,而此时hit并没有collider的信息。...
2020-07-16 16:52:36
544
原创 在Unity中使用Visual Studio编程时没有相关代码提示的解决方式
原因一般有两个1,Visual Studio没有安装Unity的组件2,Unity中没有设置VS为外部开发工具external tool解决方法;1, 在viausl studio installer中添加unity组件2,在unity的preferences中将external Script Editor设置为vs...
2020-07-15 14:01:00
4643
3
原创 Unity 射线检测
Ray 射线射线是一个无穷的线,开始于origin并沿着direction方向。例;Ray ray = new Ray(new Vector3(1, 1, 1), new Vector3(0, 0, 0));例2;Ray ray2 = Camera.main.ScreenPointToRay(Input.mousePosition);//从摄像机发出一条射线,射向鼠标方向Physics.Raycast 光线投射Physics.Raycast与 Ray 以及 RaycastHit结合.
2020-07-14 16:40:18
302
原创 Unity使用UMP插件播放网络视频流(rtsp、rtmp、onvif)
1.新建场景,将Assets\UniversalMediaPlayer\Prefabs\UniversalMediaPlayer.prefab拖入到场景中。2.在UI的Canvas下创建RawImage,并添加ARVideoCanvasHelper组件。在RawImage组件中,将Material设为为ARVideoCanvasMaterial。在ARVideoCanvasHelper组件中, 将MediaPlayer设为UniversalMediaPlayer3.选中UniversalM.
2020-07-14 10:12:25
5832
6
原创 Transform.RotateAround 围绕旋转
Transform.RotateAround 围绕旋转function RotateAround (point : Vector3, axis : Vector3, angle : float) : void例白色为obj,红色为obj2代码1; Obj2.transform.RotateAround(Obj.transform.position, Obj2.transform.right, 45 * Time.deltaTime);代码2; Obj2.transform.Ro.
2020-07-12 15:16:32
4385
原创 Transform.eulerAngles与transform.rotation
Transform.eulerAngles在世界空间坐标物体旋转的欧拉角transform.rotation在世界空间坐标物体旋转的四元数
2020-07-12 14:09:58
1312
原创 unity物体移动与旋转函数
物体移动transform.Translatefunction Translate (translation : Vector3, relativeTo : Space = Space.Self) : void设置物体往某个方向移动第二个参数是设置以自身坐标轴移动还是世界坐标轴移动如果不设置,则默认是以自身坐标轴移动 Vector3表示方向Vector3.forward 指向Z轴,即(0.0.1)Vector3.up 指向Y轴,即(0.1.0)Vector3.r...
2020-07-12 12:55:21
903
原创 Unity.LineRenderer笔记
Unity.LineRenderer笔记组件翻译使用方法基础用法问题注意两种设置宽度的方式组件翻译Cast Shadows:线是否投射阴影。(有选项)Receive Shadows:线条是否接收阴影。Motion Vectors:运动轨迹。Camera Motion Only 只有相机移动Per Object Motion 每一个对象移动也会跟着移动Force No Motion强制移动Materials:线的材质。Light Parameters:光照贴图参数,使该线与全局照明系统
2020-07-11 23:40:18
758
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人