
UnityShader2
文章平均质量分 89
宏哥1995
希望能参与到一个伟大游戏的制作中
展开
-
[UnityShader2]各种空间和基本光照模型
四种空间:1.模型空间:每一个物体都有一个以它自己的中心点为原点的三维坐标空间。a.在unity中,可以通过transform.worldToLocalMatrix这个矩阵的MultiplyPoint()或者MultiplyVector()方法,把世界坐标表达的矢量转换为此物体的模型空间表达的矢量。b.在shader中,可以通过左乘_World2Object这个矩阵来完成。转载 2016-03-16 19:46:42 · 3229 阅读 · 1 评论 -
[UnityShader2]顶点片段着色器实例(四)
原文链接:http://www.onevcat.com/2013/08/shader-tutorial-2/http://blog.sina.com.cn/s/blog_89d90b7c0102va4m.html1.积雪效果转载 2015-06-12 15:02:08 · 1969 阅读 · 0 评论 -
[UnityShader2]顶点片段着色器实例(三)
参考链接:1.漫反射转载 2015-06-11 11:28:19 · 2160 阅读 · 0 评论 -
[UnityShader2]顶点片段着色器实例(二)
参考链接:http://liweizhaolili.blog.163.com/blog/static/162307442015228112425158/转载 2015-05-10 08:40:45 · 2080 阅读 · 0 评论 -
[UnityShader2]顶点片段着色器实例(一)
转载博客:http://blog.youkuaiyun.com/mobanchengshuang?viewmode=contents1.模型自身坐标位置与颜色的映射Shader "Custom/RGBCube" { SubShader { Pass { CGPROGRAM #pragma vertex ver转载 2015-05-09 07:55:26 · 3696 阅读 · 1 评论 -
[UnityShader2]表面着色器实例(三)
一、访问顶点颜色Shader "Cookbook/Chapter07/SimpleVertexColor" { Properties { _MainTint("Global Color Tint", Color) = (1,1,1,1) } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPRO转载 2016-03-25 09:49:08 · 974 阅读 · 0 评论 -
[UnityShader2]顶点片段着色器基础
官方文档:http://docs.unity3d.com/Manual/SL-VertexFragmentShaderExamples.html1.语义SV_Traget:如果顶点/片段程序只输出一个值,那么可以使用这个fixed4 frag (v2f i) : SV_TargetSV_POSITION:存储裁剪空间中的位置,float4类型,这个是顶点程序必须输出的一个值转载 2016-03-19 23:48:14 · 1622 阅读 · 0 评论 -
[UnityShader2]表面着色器实例(二)
一、UV帧动画举个例子,对于一张四帧贴图(横向):1.UV缩放:首先就是让它只显示四分之一吧,也就是将uv值压缩(x轴),原来的uv范围由(0,1)转为(0,0.25),用代码表示就是spriteUV.x *= 1.0 / 42.UV移动:以贴图的左下角为例(设uv值为(0,0)),那么随着时间的变化,uv值就应该变为(0.25,0),(0.5,0),(0.75,0),(1,0),每次转载 2016-03-25 00:12:20 · 1491 阅读 · 0 评论 -
[UnityShader2]表面着色器实例(一)
官方文档:http://docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html1.纹理采样Shader "Example/Diffuse Texture" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader {转载 2016-03-21 13:35:01 · 2137 阅读 · 1 评论 -
[UnityShader2]表面着色器基础
原文链接:http://blog.youkuaiyun.com/poem_qianmo/article/details/422150791.输入结构Input 这个输入结构通常拥有着色器需要的所有纹理坐标(texture coordinates)。纹理坐标(Texturecoordinates)必须被命名为“uv”后接纹理(texture)名字。(或者uv2开始,使用第二纹理坐标集)。转载 2015-04-25 16:43:29 · 1142 阅读 · 0 评论 -
[UnityShader2]顶点片段着色器实例(六)
1.棋盘效果cg函数:floor(x),返回不大于x的最大整数cg函数:frac(x),返回x的小数部分原理:a.在顶点程序中,uv的范围为(0,_Density)b.在片段程序中,对uv取整然后除以2,得到的数类似为:0 / 0.5 / 1 / 1.5 / 2 /等,x和y相加取小数,要么0,要么0.5,乘以2后要么0,要么1,即达到要么黑要么白的效果。Shader转载 2016-03-20 20:35:48 · 1585 阅读 · 0 评论 -
[UnityShader2]顶点片段着色器实例(五)
1.a.cg内置函数:tex2D(sample2D tex, float2 s) //s为纹理(uv)坐标b.UnityCG.cginc:TRANSFORM_TEX,其定义为:// Transforms 2D UV by scale/bias property#define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy + name#转载 2016-03-20 16:09:40 · 5888 阅读 · 0 评论 -
[UnityShader2]ShaderLab基础
一.Shader1.Shader即着色器,是一款运行在GPU上的程序。Shader有顶点Shader和片段Shader两个基本类型,顶点Shader有着可以处理、 变换,最终会渲染到屏幕上的网格物体的顶点位置的功能,但它不能生成新的顶点。 顶点Shader的输出会传递给流水线的下— 步。 几何体的网格经过硬件的栅格化后,处于流水线上的片段Shader会被执行,片段Shader会对— 个片段(预转载 2016-03-16 16:29:39 · 1104 阅读 · 0 评论 -
[UnityShader2]图形学与CG基础
0.引入齐次坐标的意义:a.为了将空间向量与空间点进行区分,所以将三元数扩展到四元数,第四元如果是1,则表示点;如果是0,则表示向量。b.使用四元数后,就可以通过四阶矩阵运算,将空间点的平移、旋转和缩放等操作全部统一到矩阵的乘法运算中。1.图形绘制管线的三个阶段:a.应用程序阶段:将几何体数据(顶点坐标、法向量、纹理坐标、纹理等)通过数据总线传送到图形硬件。b.几何阶段转载 2016-03-17 14:32:48 · 1567 阅读 · 0 评论 -
[UnityShader2]cg函数
Ps:并不是所有CG函数,Unity都支持,例如debug(float4 x)Unity不支持其中常用的为:clamp(x, a, b):把x限制为[a, b]范围step(a, x):如果x=a,返回1smoothstep(min, max, x):x先被限制在[min,max]范围,然后返回一个在这个范围中平稳变化的值pow(x, y):x的y次方l转载 2015-04-25 09:29:36 · 1215 阅读 · 0 评论