- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
shader入门教程
HELLO SHADER 主讲人:虚拟橙子 什么是SHADER 程序化着色器,最初的概念是采用一系列类似汇编语言的指令直接对GPU进行操作,改变3D显示中的顶点、像素,做到一些特殊的效果 经过多年的发展,语言体系逐渐成熟,多家公司及机构开发了自己的语言标准,目前我们常见的有以下几种: 语言 应用平台 开发商 HLSL directX mircosoft CG directX Nvidia GL OpenGL SGI GLES 手机等嵌入式设备 Khronos UNITY3D SHADER分类 语言 适用平台 阴影 参考 Fixed Function Shader PC、Mac、移动设备 无 U3d Reference VertexFragment Shader PC、Mac 无 CG、HLSL Surface Shader PC、Mac 有 CG、HLSL 那些有可能是让你停下来的原因 学习shader是否需要知道复杂的GPU指令? 完全不需要,最初的shader确实是采用类似汇编的GPU语言来编写,但经过多年的进化,现在已经十分规范了。 学习shader是否要有非常专业的图形学和数学知识? 这个可以有,当然越专业越好!但意思并不是说不懂图形学就不能写shader了,即使做不到那么专业,你也可以学shader,就比方说你可能会C++,但是你不一定要用它来写一套windows系统,但你完全可以用它做个计算器,仍然很管用。 HELLO SHADER 这段程序做了最简单的事情:把一个物体的表面颜色赋值成了红色。 当我们剔除shader当中的大部分,以最简单的结构去看它的时候,你会发现,其实shader就是一个函数,而这个函数所做的事情,不过就是指定输出的颜色而已 HELLO SHADER 稍微做下更改,这次我们把输出的自发光通道赋以绿色,结果中我们看到,自发光是不受环境光影响的 至此,我们得出结论,shader其实只不过是让一个物体表面以什么颜色显示而已,就这么简单 从哪里开始?到哪里结束?(SURFACE SHADER) CG语言段起点 CG语言段终点 文件头: #pragma surface surf SimpleLambert #pragma surface: 声明是surface shader surf:surface shader的入口函数名称定义 SimpleLambert:自定义的光照模式函数名称(实际的函数都要在此名称基础上加Lighting前缀) 执行顺序(SURFACE SHADER) 1 2 Shader程序的执行顺序: 1.执行surface shader 的入口函数,计算表面颜色,返回给SurfaceOutput 结构体 2.执行光照模式函数,用surf函数返回的SurfaceOutput参数计算高光颜色,最终输出到屏幕中的3D物体表面 注意:可能你看过很多没有光照模式函数的代码段,但那并不意味着没有光照模式函数,打开Unity\Editor\Data\CGIncludes文件夹中的Lighting.cginc文件,你就会找到默认的Lambert和BlinnPhong两种光照模式函数了,当然,你也可以找到surf函数中形参中的SurfaceOutput结构体的定义,他是固定的,不可以自己定义 形参(SURFACE SHADER) Surface shader的形参结构体Input可以由以下参数构成: uv_TextureName – 贴图坐标1(TextureName例如MainTex) uv2_TextureName – 贴图坐标2 float3 viewDir – 视点方向 float4 with COLOR semantic – 颜色 float4 screenPos – 屏幕坐标系中的点坐标 float3 worldPos – 世界坐标系中的点坐标 float3 worldRefl - 世界坐标系下的反射向量 float3 worldNormal - 世界坐标系下的法线 float3 worldRefl; INTERNAL_DATA float3 worldNormal; INTERNAL_DATA 通过简单的例子认识SHADER 我们知道,在u3d的shader中,一般情况下,习惯把高光贴图放到_MainTex的Alpha通道内,如左图 这样的确省了一张贴图,但并不是我们所习惯的,因此我们想把它提取出来,为这个shader增加一个高光通道的设置 通过简单的例子认识SHADER 1.为shader在u3d的属性面板中增加一个贴图通道 2.增加一个变量与属性面板对应,以便能够在程序中使用 3.在Input结构体中增加这个贴图通道的uv,但
您可能关注的文档
- 2016年安徽省公务员面试概述和礼仪讲解(很有用哦).ppt
- 2016江苏高中信息技术考试理论题库-4.1信息技术与社会.pdf
- 2016法理学考试试题库.doc
- 2016营改增专题培训讲解.ppt
- 2016班会初中女生健康讲解课件.ppt
- 2016班会青春期生理卫生知识讲解--男生篇.ppt
- 2016青少年预防艾滋病知识讲解.ppt
- 2017-2018学年七年级数学(成都)北师大版下册课件:专题一幂运算易错题(共13张).ppt
- 2017-2018教科版科学探索宇宙.ppt
- 20171220h2s-职业健康知识讲解.ppt
- 河南省郑州市第一中学2017-2018学年高一下学期周测物理试题(325)扫描版含答案.doc
- 山西省怀仁县第一中学2017-2018学年高二下学期第一次月考生物试题扫描版.doc
- 河南省六市高三下学期第一次联考试题(3月)理科综合扫描版含答案.doc
- 四川省高三全国Ⅲ卷冲刺演练(一)文综地理试卷扫描版含答案.doc
- 河南省洛阳市高三第二次统考文综试卷扫描版含答案.doc
- 甘肃省靖远县高三下学期第二次联考理科综合试题扫描版含答案.doc
- 问题导学法在办公场景中的实施策略及效果评估.docx
- 退休后的个人品牌打造与传播策略.docx
- 问题解决在办公流程优化中的应用.docx
- 问题导向的办公环境创新设计.docx
最近下载
- 《哪吒之魔童闹海》开学第一课收心哪吒2主题班会课件课件(图文).pptx VIP
- 2025年江苏南京市浦口区城管局所属浦口园林工程有限公司招聘笔试参考题库附带答案详解.pdf
- 思想政治-职业道德与法治第2课让美德照亮幸福人生.pptx VIP
- 乡镇消防安全知识培训课件.pptx VIP
- 2025届合肥市高三一模数学试卷(含答案).docx VIP
- 毕业论文-基于单片机的智能空气加湿器系统设计与实现 .pdf VIP
- 推动架夹具设计说明书 (有图).pdf
- 201610某某村户用光伏会销营销案.pdf
- 人教版地理八年级下册青藏地区课件(共39页)(共39张PPT).ppt
- 部编版小升初新七年级语文暑假衔接讲义第01讲:风流雅韵——《世说新语》(学生版+解析).docx VIP
文档评论(0)