U3D Shader
文章平均质量分 90
liuwumiyuhuiping
这个作者很懒,什么都没留下…
展开
-
U3D着色器源码分析
最近在看u3d 5.3.3着色器的源码,这里先简单的分析下UnityShaderVariables.cginc 中 UnityLighting的_WorldSpaceLightPos0的值是怎么获取的。CBUFFER_START(UnityLighting) //光照的参数 //_WorldSpaceLightPos0.w可以表明该光源的类型,如果为0表示是平行光,为1表示是点光源或者聚光原创 2016-09-13 11:13:25 · 1121 阅读 · 0 评论 -
Unity3D 神奇的GetGPUProjectionMatrix函数
UnityEngine.GL 中有一个函数GetGPUProjectionMatrix 具体可以参考官方说明文档。这函数的作用,是用来处理DX 和OpenGL的坐标差异性的。DX是以左上角为(0,0) OpenGL是以右下角为(0,0) 。DX的Z范围是(0,1) GL是(-1,1)。所以,unity3d引擎渲染的时候,根据使用的不同渲染器,通过该函数处理,即可,统一DX 和GL原创 2016-09-13 11:31:46 · 6943 阅读 · 1 评论 -
builtin_shaders-5.3.5f1 代码注释
准备慢慢的对unity3d自带的着色器进行注释。 git地址:https://github.com/wumiliu/builtin_shaders-5.3.5f1原创 2016-09-08 10:55:19 · 1895 阅读 · 0 评论 -
UGUI灰度处理
好友在线的时候,头像是正常显示,离线的情况下,显示灰色的。可以直接提供两种状态下的图片。但是这样比较浪费资源。直接通过修改着色器,实现是比较好的一个方式。解决方案:复制一份 Shader "UI/Default". 然后直接修改,这样可以保持ui原来的着色情况。然后直接使用内置的函数Luminance 进行灰度处理Shader "Unlit/UIGrayScale"{ Proper原创 2016-09-08 10:51:18 · 3700 阅读 · 0 评论 -
UGUI 实现引导
实现ui的引导有很多种方式,一般都是在再外层盖上一个 掩码层。 然后把需要引导的区域镂空出来。镂空的区域可以用很多ui的拼接,个人感觉这种方式比较麻烦。下面给出一种解决方案,直接在着色器中实现镂空的区域。直接把镂空的区域传给着色器,然后再着色器中把这个区域透明掉即可。1. 根据ui控件,得到镂空区域 代码如下: Vector3原创 2016-09-08 11:18:11 · 1928 阅读 · 4 评论