shader练习-vertphone
Shader "VertPhone"
{
Properties
{
_MainTex( "颜色贴图", 2D ) = "white"{}
_Specular( "高光颜色", Color) = (1, 1, 1, 1)
_Gloss( "光泽度", Range(1,10)) = 4
_SpecularPow( "高光强度", Range(0,1)) = 1
} SubShader{
Tags{ "RenderType" = "Opaque"}
Pass{
Tags{ "LightMode" = "ForwardBase" } CGPROGRAM #pragma vertex vert
#pragma fragment frag #pragma multi_compile_fwdbase
#pragma multi_compile_fog
#include "UnityCG.cginc"
#include "Lighting.cginc" uniform sampler2D _MainTex;
uniform fixed4 _Specular;
uniform half _Gloss;
uniform half _SpecularPow; struct v2f{
half4 pos :SV_POSITION;
half3 worldPos : TEXCOORD0;
half2 uv :TEXCOORD1;
half3 normalWorld:TEXCOORD2;
UNITY_FOG_COORDS(3)
}; v2f vert( appdata_full v)
{
v2f o;
o.pos = UnityObjectToClipPos( v.vertex );
o.worldPos = mul( unity_ObjectToWorld, v.vertex).xyz;
o.uv = v.texcoord;
o.normalWorld = normalize( mul( unity_ObjectToWorld, v.normal) );
UNITY_TRANSFER_FOG(o,o.pos);
return o;
} fixed4 frag( v2f i):SV_Target
{
fixed4 basecolor = tex2D(_MainTex, i.uv);
fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT * basecolor;
half3 lightdir = normalize( _WorldSpaceLightPos0.xyz );
fixed3 diffuse = saturate( dot( normalize( i.normalWorld ) , lightdir ) )* _LightColor0.rgb * basecolor;
half3 r = normalize( reflect( -lightdir, i.normalWorld ) );
half3 view = normalize( _WorldSpaceCameraPos.xyz-i.worldPos.xyz );
fixed3 specular = _SpecularPow * _LightColor0.rgb * _Specular * pow( max(0, dot( r, view )), _Gloss );
fixed4 c = fixed4( ambient + diffuse + specular, 1.0);
UNITY_APPLY_FOG(i.fogCoord, c);
return c;
}
ENDCG
}
} }

shader练习-vertphone的更多相关文章
- OpenGL shader 中关于顶点坐标值的思考
今天工作中需要做一个事情: 在shader内部做一些空间距离上的计算,而且需要对所有的点进行计算,符合条件的显示,不符合条件的点不显示. 思路很简单,在vertex shader内知道顶点坐标,进行计 ...
- CSharpGL(14)用geometry shader渲染模型的法线(normal)
+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(14)用geometry shader渲染模型的法线(normal) +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 ...
- 【译】Unity3D Shader 新手教程(6/6) —— 更好的卡通Shader
本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 动机 如果你想了解以下几件事,我建议你阅读以下这篇教程: 想知道如何写一个multipass的toon shade ...
- 【译】Unity3D Shader 新手教程(5/6) —— Bumped Diffuse Shader
本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 动机 如果你满足以下条件,我建议你阅读这篇教程: 你想学习片段着色器(Fragment Shader). 你想实现 ...
- 【译】Unity3D Shader 新手教程(4/6) —— 卡通shader(入门版)
本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 暗黑系 动机 如果你满足以下条件,我建议你阅读这篇教程: 你想了解更多有关表面着色器的细节知识. 你想实现一个入门 ...
- 【译】Unity3D Shader 新手教程(3/6) —— 更加真实的积雪
本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 如果你满足以下条件,我建议你阅读这篇教程: 你想知道如何在表面着色器中进行混色(blend colour) 你想实 ...
- 【译】Unity3D Shader 新手教程(2/6) —— 积雪Shader
本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 如果你是一个shader编程的新手,并且你想学到下面这些酷炫的技术,我觉得你可以看看这篇教程: 实现一个积雪效果的 ...
- 【译】Unity3D Shader 新手教程(1/6)
本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 刚开始接触Unity3D Shader编程时,你会发现有关shader的文档相当散,这也造成初学者对Unity3D ...
- 多材质(Shader)实现
最近在cocos creator上打算写个U3D中shader功能的插件(能在属性面板调整shader属性). 对其中一个功能有点疑惑,就是U3D中一个渲染物体上可以挂多个材质,后来查询了下,一个物体 ...
随机推荐
- oracle 12c grid db 安装的的checklist
oracle 12c 安装 checklist 关闭 iptables NetworkManager selinux service iptables stop chkconfig iptables ...
- layui实现点击按钮添加行(方法渲染创建的table)
/ jquery实现的搜索功能 $('#search_btn').on('click',function(){ var txt=$('#inputValue').val(); var value=$( ...
- 亚信UED前端流程自动化构建工具
亚信UED前端流程自动化构建工具 .wmd-input, .wmd-input:focus, #md-section-helper {font-size: 14px !important;line-h ...
- PHP学习笔记(10)mysql常用命令
1. 连接mysql数据库: 输入: mysql> mysql -uroot -p123(注意后面没有分号!!) 输出: mysql: [Warning] Using a password on ...
- Python中如何将字符串作为变量名
应用场景描述: 通过配置文件获取服务器上配置的服务名及运行端口号,编写python脚本检测服务上服务是否在运行? #!/usr/bin/env python # -*- coding:utf-8 -* ...
- 我的第十个java程序--(其实是修改别人的web代码{springmvc+mybatis},知道了原理后其实一切都变的很简单)
先是效果图,提高学习的兴趣 springmvc+mybatis+easyui 这几个东西让我一点一点的啃,刚开始的时候真的跑不起几个程序 1.下载tomcat 2.导入程序 3.项目报错,但不指出具体 ...
- kaggle比赛之youtube视频分类示例
1.训练模型:建bucket,建job,提交运行. BUCKET_NAME=gs://${USER}_yt8m_train_bucket_logisticmodel # (One Time) Crea ...
- 【ARDUINO】串口无法打开问题
1.查看是否串口被锁 sudo arduino ls /var/lock sudo rm /var/lock/LCK..ttyACM* 2.查看arduino安装位置 dpkg -S XXXX 3.原 ...
- phpStorm格式化代码快捷键
Ctrl+Alt+L
- drupal7使用数据库api db_query需要注意的地方
写自定义module时候需要从数据库检索数据,用到了数据库的api,用了下面的sql: $record = db_query("SELECT 'sampledate', 'time' FRO ...