
Unity shader
迷牙
这个作者很懒,什么都没留下…
展开
-
Unity Shader 中空间还原
在做一些后处理Shader的时候,很多情况都需要对屏幕空间中的坐标还原到世界坐标。一、还原原理_CameraDepthTexture保存了物体的深度信息,深度信息可以直接通过uv采样到。假设获取到了屏幕空间中A像素的深度信息,如果要得到A像素的世界坐标,还需要一个方向,深度信息是长度。这个方向,应该是A像素投影在屏幕坐标的点指向A像素世界坐标的点。然后通过方向乘以深度就得到物体在相机空间下的坐标,然后加上相机的世界坐标,就得到了物体的世界坐标。二、计算方向唯一的难点就是计算方向,这里可以计算原创 2020-07-15 09:50:16 · 555 阅读 · 0 评论 -
Unity移动端、WebGL 四边形线框Shader 实现
本文不是使用GeometryShader!移动端和WebGL由于一些限制不能使用GeometryShader,因此不好实现线框Shader。一、手动绘制有的人可能会选择用GL画线来实现绘制线框,具体就是读取mesh信息然后绘制线条,但是GL绘制不能调整线条粗细。有的人可能有回使用LineRender或者直接用圆柱体。这样确实可以调整粗细,但是性能堪忧。。。手动绘制,基本大一点的Mesh就会严重影响性能,不是很可取。二、通过Mesh传参数线框用shader实现的难度,就是很难找到三角的原创 2020-07-03 10:57:44 · 2781 阅读 · 4 评论 -
Unity Surface Shader 使用其他组件颜色
自己新建的shader ,使用在linerender或者Image等组件上面的时候,这些组件的颜色修改不能影响到材质球。lineRender的颜色渐变是很实用的功能。lineRender颜色能够改变材质颜色,是因为LineRender修改了模型点的颜色。然后Shader通过这个颜色去混合材质球颜色就能实现LineRender控制材质颜色了。顶点片段着色器可以在顶点片段中获取顶点颜色,然后传入片段着色器。这里主要说一下SurfaceShader,因为不太常用到。自定义顶点函数 #pr..原创 2020-05-22 09:46:56 · 696 阅读 · 0 评论