http://www.cnblogs.com/Keyle/p/4444217.html

学Shader是不是很枯燥?

如果你和我一样觉得用手写shader这种已经OUT的学习方式来学习Shader,那就和我一起一个换个角度来从ShaderForge学起吧。

我后面的教程路线是这样的 SharderForge学习中穿插《unity shader and effects cookbook》一书中的概念与实践。

欢迎你和我一起探讨这个话题,这是关于一个程序猿如何去学习的方法论。

Email: keyle_xiao@hotmail.com  QQ群: 137728654 StrangeIOC

1.Shader在游戏中的运用如图,我们创建了一个Shaer将其赋予一个Material(材质),然后将一些Texture(贴图)赋予这个材质上的对应Shader(在这个Shader内部对贴图与光照等因素做调整),最终将Material赋予对应的游戏物体,呈现出我们看到样子,这是我们对Shader应用最直观的认识

2.Shader示例

这是一个最简陋的Unity ShaderLab

Shader "MyShader" {Properties {_MyTexture ("My Texture", 2D) = "white" { }// other properties like colors or vectors go here as well
    }SubShader {// here goes the 'meat' of your// - surface shader or// - vertex and fragment shader or// - fixed function shader
    }SubShader {// here goes a simpler version of the SubShader above that// can run on older graphics cards
    }
}

这里我推荐阅读下 李剑英的 剑英陪你玩转图形学 系列博文

3.使用ShaderForge创建一个Shader

创建一个基本Shader,点击Complie进行语法检查

生成Shader文件如下,红色底的是ShaderForge的配置信息可以忽略,或是在Shader写完之后删掉

// Shader created with Shader Forge Beta 0.36
// Shader Forge (c) Joachim Holmer - http://www.acegikmo.com/shaderforge/
// Note: Manually altering this data may prevent you from opening it in Shader Forge
/*SF_DATA;ver:0.36;sub:START;pass:START;ps:flbk:,lico:1,lgpr:1,nrmq:1,limd:1,uamb:True,mssp:True,lmpd:False,lprd:False,enco:False,frtr:True,vitr:True,dbil:False,rmgx:True,rpth:0,hqsc:True,hqlp:False,tesm:0,blpr:0,bsrc:0,bdst:0,culm:0,dpts:2,wrdp:True,ufog:True,aust:True,igpj:False,qofs:0,qpre:1,rntp:1,fgom:False,fgoc:False,fgod:False,fgor:False,fgmd:0,fgcr:0.5,fgcg:0.5,fgcb:0.5,fgca:1,fgde:0.01,fgrn:0,fgrf:300,ofsf:0,ofsu:0,f2p0:False;n:type:ShaderForge.SFN_Final,id:1,x:32719,y:32712;pass:END;sub:END;*/Shader "Shader Forge/NewShader" {Properties {}SubShader {Tags {"RenderType"="Opaque"}Pass {Name "ForwardBase"Tags {"LightMode"="ForwardBase"}CGPROGRAM#pragma vertex vert#pragma fragment frag#define UNITY_PASS_FORWARDBASE#include "UnityCG.cginc"#pragma multi_compile_fwdbase_fullshadows#pragma exclude_renderers xbox360 ps3 flash d3d11_9x #pragma target 3.0struct VertexInput {float4 vertex : POSITION;};struct VertexOutput {float4 pos : SV_POSITION;};VertexOutput vert (VertexInput v) {VertexOutput o;o.pos = mul(UNITY_MATRIX_MVP, v.vertex);return o;}fixed4 frag(VertexOutput i) : COLOR {
// Lighting:float3 finalColor = 0;
/// Final Color:return fixed4(finalColor,1);}ENDCG}}FallBack "Diffuse"CustomEditor "ShaderForgeMaterialInspector"
}

4.ShaderForge能满足我们大多数对于Shader的需求甚至是动画效果

是不是感觉这种东西简单爆了,太容易了?   嗯 对的,可视化操作大大提高了人工编写的效率,变得容易调试了(主要是现在没有什么好的IDE用)

本系列博文并不在Shader的文法上过分深究,而是带入一个轻松愉快的学习环境,先学会如何通过ShaderForge实现,再对比实际文法,祝你玩的愉快!

和Keyle一起学ShaderForge - Overview相关推荐

  1. 和Keyle一起学StrangeIoc – Acknowledgements

    Strange: the IoC framework for Unity 为了向开发者致敬及目录的完整性我还是保留了这一段话,任何一个项目的成功都离不开一群为之奋斗的人 It is hard to a ...

  2. 跟我学Springboot开发后端管理系统5:数据库读写分离

    在Matrix-web后台管理系统中,使用到了数据库的读写分离技术.采用的开源的Sharding-JDBC作为数据库读写分离的框架.Matrix-Web后台数据库这一块采用的技术栈如下: 使用Myba ...

  3. vue created 调用方法_深入解析 Vue 的热更新原理,偷学尤大的秘籍?

    大家都用过 Vue-CLI 创建 vue 应用,在开发的时候我们修改了 vue 文件,保存了文件,浏览器上就自动更新出我们写的组件内容,非常的顺滑流畅,大大提高了开发效率.想知道这背后是怎么实现的吗, ...

  4. 【Linux】一步一步学Linux——man命令(有问题找男人)(13)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 相关描述 05. 参考示例 05. 附录 01. 命令概述 Linux提供了丰富的帮助手册,当你需要 ...

  5. 从零开始学android编程_小白也能学得会!谷歌推出免费的Kotlin和Android开发课程...

    程序员书库(ID:CodingBook) 猿妹编译 链接:https://android-developers.googleblog.com/2020/07/learn-android-and-kot ...

  6. 睡眠 应该用 a加权 c加权_在神经网络中提取知识:学习用较小的模型学得更好...

    在传统的机器学习中,为了获得最先进的(SOTA)性能,我们经常训练一系列整合模型来克服单个模型的弱点. 但是,要获得SOTA性能,通常需要使用具有数百万个参数的大型模型进行大量计算. SOTA模型(例 ...

  7. amazon 使用密码登录_我们通过使用Amazon SageMaker大规模提供机器学习模型学到了什么...

    amazon 使用密码登录 by Daitan 通过大潭 我们通过使用Amazon SageMaker大规模提供机器学习模型学到了什么 (What We Learned by Serving Mach ...

  8. java 学到什么实习_我的外展实习从今天开始! 到目前为止,这是我已经完成并学到的东西。...

    java 学到什么实习 by Toni Shortsleeve 通过托尼·肖特里夫(Toni Shortsleeve) 我的外展实习从今天开始! 到目前为止,这是我已经完成并学到的东西. (My Ou ...

  9. 边做边学:《 Inter Planetary File System》简介

    by Niharika Singh 由Niharika Singh 边做边学:< Inter Planetary File System>简介 (Learn by doing: a nic ...

  10. Kaggle官网免费课程:从Python到机器学习,4小时学完一门,48小时掌握数据科学...

    点击我爱计算机视觉标星,更快获取CVML新技术 赖可 发自 凹非寺 量子位 报道 | 公众号 QbitAI 听说过Kaggle官网的免费"微课"吗? 想学Python .机器学习. ...

最新文章

  1. 提高SQL的查询效率
  2. 员外陪你读论文:DeepWalk: Online learning of Social Representations
  3. sony右键延迟的解决方案
  4. Linux系统中解压缩指令汇总
  5. 我国云计算还处于初步阶段,产业标准需规划
  6. EF架构~对AutoMapper实体映射的扩展
  7. mysql 插入毫秒数据_MySQL存储毫秒数据的方法
  8. RUBY之父松本行弘:我的编程人生
  9. 解析常见网络钓鱼攻击方法
  10. 学校计算机硬件管理制度,学校规章制度之计算机硬件管理制度.doc
  11. 火山引擎虚拟数字人技术与应用
  12. 微型计算机外部设备接口,第五章 微型计算机输入输出接口
  13. Python爬虫与信息提取(五)爬虫实例:爬取新浪微博热搜排名
  14. 【EndNote文献管理】批量导入删除引用
  15. Kali与编程:Winserver 2019搭建dhcp服务器
  16. 股市知识:ST的股票可以买吗
  17. iPad、iPad Pro反复自动重启怎么办?
  18. 外汇券商TFS-ICAP因误导客户并使用虚假报告被FCA处罚340万英镑
  19. angular中组件changeDetection为ChangeDetectionStrategy.OnPush时的学习
  20. collect2.exe | [Error] ld returned 1 exit status怎么办

热门文章

  1. 电商数据分析的4大思维和8类指标
  2. e5服务器系列天梯图,至强e5系列cpu天梯图_2020年5月至强e5天梯图排行
  3. Excel下的数据挖掘:学生成绩统计分析实战之一分三率和离均率
  4. 海康威视相机 RTSP 传输延迟解决方案
  5. VM下安装ubuntu教程
  6. 吉林大学珠海学院计算机录取分数线,大学介绍 | 吉林大学珠海学院(附录取分数线,重点专业)...
  7. 20135202闫佳歆——家庭作业汇总
  8. C4D常用操作——挤压+倒角详解
  9. 图像处理(八)图像插值算法
  10. autojs开发的ip地址查询工具开源代码免费分享