- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 Unity中写GLSL(十八)—— 创建Diffuse环境贴图和Specular环境贴图
参考了WIKI:https://en.wikibooks.org/wiki/GLSL_Programming/Unity/Many_Light_Sources 具体的可以到这个wiki上面去看,我这里只给结果。(写太多东西太麻烦。。。) 这是生成的Diffuse环境贴图: 这是生成的Specular环境贴图: 下面是代码:using System.Collections;using Sys
2018-01-31 17:02:01 2674
原创 Unity中写GLSL(十七)—— 半球光照
参考wiki:https://en.wikibooks.org/wiki/GLSL_Programming/Unity/Diffuse_Reflection_of_Skylight先上图: 然后是代码:Shader "Custom/ShaderExample18"{ Properties { _Color ("Diffuse Material Color", Co
2018-01-29 16:42:07 674 1
原创 Unity中写GLSL(十六)—— 菲涅尔反射
参考了wiki:https://en.wikibooks.org/wiki/GLSL_Programming/Unity/Specular_Highlights_at_Silhouettes先上图:不过看不太出什么区别 然后是代码:Shader "Custom/ShaderExample17"{ Properties { _Color ("Diffuse Mate
2018-01-29 16:38:23 720
原创 Unity中写GLSL(十五)—— 折射
先上图: 因为天空盒的问题,所以黑色那部分看上去不太对,但是大概就是这个样子。 然后是代码:Shader "Custom/ShaderExample14"{ Properties { _Cube ("Environment Map", Cube) = "" {} } SubShader { Pass {
2018-01-25 13:08:59 408
原创 Unity中写GLSL(十四)—— Unity中的Projector
上图: 和之前的cookie差不多,是种投影仪的感觉,阴影也可以靠这个实现。下面是代码:Shader "Custom/ShaderExample13"{ Properties { _ShadowTex ("Projected Image", 2D) = "white" {} } SubShader { Pass
2018-01-24 12:55:09 566
原创 Unity中写GLSL(十三)—— light cookie
参考WIKI:https://en.wikibooks.org/wiki/GLSL_Programming/Unity/Cookies light cookie其实是这么个效果: 首先在PhotoShop里画了一张有透明部分的图,储存成PNG格式: 把cookie.png拖进unity3d,然后需要设置一下光源的cookie和cookie size, 然后效果如图: 最后是代码:Shade
2018-01-22 14:27:25 2676 2
转载 Unity中写GLSL(十二)—— layer texture
参考了WIKI:https://en.wikibooks.org/wiki/GLSL_Programming/Unity/Layers_of_Textures 先上图: 两张图片是根据lightDir与normal的夹角来确定混合权重的,所以放两张图: 下面是代码:Shader "Custom/ShaderExample10"{ Properties { _D
2018-01-21 17:19:48 654
原创 Unity中写GLSL(十一)—— 双面材质
先上图:左边是背面,右边是正面 然后是代码:Shader "Custom/ShaderExample9"{ Properties { _Color ("Front Material Diffuse Color", Color) = (1,1,1,1) _SpecColor ("Front Material Specular Color", Colo
2018-01-21 14:19:42 488
原创 Unity中写GLSL(十)—— Specular + Diffuse
先上图: 这光照是在顶点着色器里计算的,如果在片元着色器中计算效果会好一些。然后是代码:Shader "Custom/ShaderExample8"{ Properties { _Color ("Diffuse Material Color", Color) = (1, 1, 1, 1) _SpecColor ("Specular Material
2018-01-20 20:31:50 497
原创 Unity中写GLSL(九)—— 渲染简单的透明物体
参照了wiki:https://en.wikibooks.org/wiki/GLSL_Programming/Unity/Transparency先上图: 下面是代码:Shader "Custom/ShaderExample6"{ Properties { } SubShader { Tags { "Queue" = "Transparent
2018-01-14 19:30:40 961
原创 Unity中写GLSL(八)—— 方向光 + Normal Map + Diffuse Map + AO Map
先上图: 下面是代码Shader "Custom/ShaderExample5"{ Properties { _MainTex ("Texture", 2D) = "white" {} //diffuse _BumpMap("Normal Map", 2D) = "bump" {} //normal _OcclusionMap
2018-01-14 18:53:31 1187
原创 Unity中写GLSL(七)—— 程序式纹理:棋盘格
先上图:原理:在顶点着色器中先把uv乘以density,这样uv的range就从0 - 1变成了0 - density。 然后在片元着色器中把uv值取整再除以2,这样uv值就变成了0, 0.5, 1, 1.5, 2, 2.5 。。。 接着把x,y相加,值为0, 0.5, 1, 1.5 。。。 再取小数,值为0或者0.5 再乘以2,值为0或者1 最后取颜色。然后是代码:
2018-01-14 16:32:10 1463
原创 Unity中写GLSL(六)—— 环境skybox反射 + Normal Map + Diffuse Map + AO Map
先上图:再来是代码:Shader "Custom/ShaderExample3"{ Properties { _MainTex ("Texture", 2D) = "white" {} //duffuse _BumpMap("Normal Map", 2D) = "bump" {} //normal _Occl
2018-01-14 15:53:38 331
原创 Unity中写GLSL(五)—— 环境skybox反射 + Normal Map
先上图: 这normal map是从3dsmax里面导出的。注意:normal map在Unity3d中的texture type要保持默认default才行。下面是代码:Shader "Custom/ShaderExample2"{ Properties { _BumpMap("Normal Map", 2D) = "bump" {}
2018-01-13 20:09:16 456
原创 Unity中写GLSL(四)—— 环境skybox反射
先上图: 看着不太对是因为skybox的问题,skybox没底部图片,所以用了top图片。下面是代码:Shader "Custom/ShaderExample2"{ Properties { _Cube("Reflection Map", Cube) = "" {} } SubShader { Pass
2018-01-13 16:31:24 591
原创 Unity中写GLSL —— 常用的一些内置变量
本页的内容参考了Wiki:https://en.wikibooks.org/wiki/GLSL_Programming/Unity/Shading_in_World_Space首先是一些顶点相关的:gl_Vertex //模型坐标gl_Position //projection过后顶点坐标gl_MultiTexCoord0 //uv坐标gl_Normal //法线gl_FragCo
2018-01-13 14:09:59 975
原创 Unity中写GLSL(三)—— 试试法线Normal
这里只是把法线当做color来用。法线的range是-1 - 1所以要转换range到0 - 1。下面上图:下面是代码:Shader "Custom/ShaderExample1"{ Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Pass
2018-01-13 13:50:48 667
原创 Unity中写GLSL(二)—— Unlit着色器,无光照,只从纹理采样
GLSL语法用的330之后的语法。先上图: 棋盘格纹理是我百度随便找的。 下面是代码:Shader "Unlit/UnlitShader_GL"{ Properties { _MainTex ("Texture", 2D) = "white" {} //纹理 } SubShader { Pass {
2018-01-12 21:34:50 794
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人