Unity3d shader 教程一 准备
Cg编程
游戏引擎中的Cg编程对于OpenGL或Direct3D应用程序,Unity比Cg编程要容易得多。网格和图像(即纹理)的导入由图形用户界面支持; mipmap和法线贴图可以自动计算; 最常见的顶点属性和uniforms是预定义的; OpenGL和Direct3D状态可以通过非常简单的命令设置,等等
准备
可以在Unity的下载页面下载适用于Windows和MacOS的免费版Unity 。所有包含的教程与免费版本一起使用。
应该注意几点:
- 首先,这部分是关于Unity的顶点和片段着色器。这种着色器编程特别灵活,可以让您编写非常高效的着色器,这在渲染性能有限时(例如在移动设备上)通常很重要。它也对图像效果非常有用,并且了解GPU如何工作。如果要考虑Unity的标准照明,编程顶点和片段着色器就不太有用。(在这种情况下,Surface
Shader更适合Unity)- 其次,这部分假设读者对Unity很熟悉。如果不是这样,读者应该参考Unity手册(Unity基础知识,资源工作流程和主窗口)的前三部分。
- 第三,Unity不区分Cv(Nvidia的阴影语言)和DirectX 9风格的HLSL(Direct3D 9中的着色语言),因为这两种语言非常相似; 因此,大多数这些教程也适用于DirectX 9风格的HLSL。
- 此外,Cg由Nvidia的Cg教程和Nvidia的Cg语言规范记录。但是,这些描述缺少特定于Unity的细节。另一方面,Unity的着色器文档专注于Unity的ShaderLab语法,并假定读者熟悉Cg。因此,在Unity中学习Cg编程,而没有Cg的先前知识可能是相当困难的。这本wikibook试图通过在Unity中提供Cg编程的介绍来弥补这个差距,而无需事先知道Cg。
教程
请注意,这些教程假定您按照它们在这里呈现的顺序阅读它们,即每个教程将假设您熟悉以前教程中介绍的概念和技术。如果您是Cg或Unity的新手,请至少阅读“基础知识”部分的教程。(以此警告!)
基础知识
- 最小着色器(关于着色器,材质和游戏对象)
- RGB立方体(关于顶点输出参数)
- 着色器的调试(关于顶点输入参数)
- 世界空间阴影(关于uniforms)
透明曲面
- 剔除(关于丢弃片段和三角面剔除)
- 透明度(关于混合)
- 顺序无关的半透明渲染(关于顺序无关的混合)
- 轮廓增强(关于转换法线)
基本照明
- 漫反射(关于逐顶点的漫反射照明和不同种类的多种光源)
- 镜面高光(关于逐顶点的照明)
- 双面显示(约双面逐顶点照明)
- 平滑的镜面高光(关于逐像素照明)
- 平滑的双面显示(关于双面逐像素照明)
- 多个光源(关于在一个着色器过程中处理多个光源)
基本贴图
- 纹理球体(关于纹理球体)
- 纹理表面光照(关于漫射照明的纹理)
- 光照贴图(关于光照贴图)
- 透明纹理(关于使用alpha纹理丢弃片段,Alpha Test和混合)
- 纹理层(关于多重纹理)
3D纹理
- 弯曲表面光照(关于正常映射)
- 凹凸表面的投影(关于视差映射)
- Cookies(关于塑造光的投影纹理贴图)
- 投影机(投影机投影纹理贴图)
环境映射
- 反射曲面(关于反射映射)
- 弯曲玻璃(关于折射映射)
- Skyboxes(关于渲染环境地图作为背景)
- 多光源(关于图像照明)
照明变化
- 拉丝金属(关于各向异性镜面反射)
- 轮廓的镜面高光(关于镜面反射的菲涅尔因子)
- 天光漫反射(关于半球照明)
- 半透明表面(关于背光的漫反射和前向散射传输)
- 半透明体(关于散射照明,减少对比度和弥漫背光在轮廓上的传播)
- 球体的软阴影(关于渲染球体的阴影和半影)
- Toon Shading(关于非真实感渲染)
非标准顶点变换
- 屏幕叠加(关于从对象空间到屏幕空间的直接转换)
- 广告牌(关于对象的视图对齐投影)
- 非线性变形(关于顶点混合)
- 飞机上的阴影(关于将阴影投射到飞机上)
图像效果和计算着色器
- 最小图像效果(关于片段着色器的基本图像后期处理)
- 计算图像效果(关于使用计算着色器进行图像效果处理)
- 计算颜色直方图(关于使用计算着色器计算颜色直方图)
- 计算最亮的像素(关于使用计算着色器找到最亮的像素)
杂项
- 贝塞尔曲线(Bézier曲线和样条曲线)
- Hermite曲线(关于立方体Hermite曲线和splines)
- 旋转(欧拉角和四元数)
- 虚拟现实投影(关于离轴透视投影)
- 镜像(关于渲染平面镜与渲染纹理)
Unity3d shader 教程一 准备相关推荐
- [译]Unity3D Shader教程(五)Surface Shader Basics
目录 1 Summary 2 Conversion to simple Surface Shader 3 Standard Lighting Properties 4 Implement a few ...
- Unity3d shader 教程三 RGB立方体
本教程讨论顶点输出参数和片段输入参数.假设您熟悉"最小的着色器"部分. 在本教程中,我们将编写一个着色器来渲染一个类似于下图所示的RGB多维数据集.表面上每个点的颜色由其坐标确定; ...
- [译]Unity3D Shader教程(二)HLSL
目录 1 HLSL? 2 Builtin Types 3 Vector Values 4 Matrix Values 5 Textures 6 Math 7 Custom Types 8 Variab ...
- 【游戏渲染】【译】Unity3D Shader 新手教程(1/6)
http://gad.qq.com/article/detail/7175490 该文章来自用户转载 点击阅读原文 刚开始接触Unity3D Shader编程时,你会发现有关shader的文档相当散, ...
- Unity3D Shader 新手教程(1/6)
刚开始接触Unity3D Shader编程时,你会发现有关shader的文档相当散,这也造成初学者对Unity3D Shader编程望而却步.该系列教程的第一篇文章(译者注:即本文,后续还有5篇文章) ...
- 【译】Unity3D Shader 新手教程(1/6)
刚开始接触Unity3D Shader编程时,你会发现有关shader的文档相当散,这也造成初学者对Unity3D Shader编程望而却步.该系列教程的第一篇文章(译者注:即本文,后续还有5篇文章) ...
- Unity3D Shader基础教程
此教程将指引你如何建立自己的Shaders,让你的游戏场景看起来更好.Unity配备了强大的阴影和材料的语言工具称为ShaderLab,以程式语言来看,它类似于CgFX和Direct3D的语法,它不只 ...
- Unity3D Shader官方教程翻译(三)
Unity3D Shader官方教程翻译(三) 1.Shader语法:Pass 1个Pass块可以使一个几何物体被一次渲染. Pass { [Name and Tags] [RenderSetup] ...
- Unity3D Shader入门指南(二)
关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...
最新文章
- 2022华为首个「天才少年」,是从绩点1.8逆袭的复旦博士
- Linux系统上用Sigil创建和编辑 EPUB 文件
- 英语作文 计算机新技术对生活的影响,急求一篇电脑对于未来生活影响的英语作文,50分 200词左右...
- stm32篇--系统初始化
- Qt Creator定位项
- 事业单位考试计算机科学与技术试题的答案,事业单位考试计算机基础知识试题答案...
- multipartfile前端怎么传_前端那些事如何更好管理 Api 接口
- php mysql 条件查询语句_where 查询条件-Medoo - 高效的轻量级PHP数据库框架, 提高开发效率!...
- 【python数字信号处理】——scipy库设计滤波器(IIR为例)、绘制滤波器频谱响应、IIR滤波器滤波、读写wav音频文件
- excel下划线转驼峰公式
- JAVA对List进行手动分页
- go mysql delete_go 操作mysql、增删改查
- Python入门--模块,from,import,自定义模块
- viewpager中fragment的生命周期管理
- wps显示ntko签章服务器,ntko-系统内装有OFFICE和WPS,如何让IE加载NTKOOFFICE时以office打开文件而不是以WPS打...
- 十六进制换算成二进制、八进制、十进制
- MemoryBarrier方法
- 谷歌/FOFA搜索引擎使用
- Android学生信息管理系统
- Java汉语转拼音首字母并大写利用Pinyin4j(多音字识别)(中午括号识别)
热门文章
- Pycharm中Qt designer的配置,.ui文件转.py文件,运行.py
- 【阅读笔记】Mutual CRF-GNN for Few-shot Learning
- 通过阿里云api获取ecs主机信息
- java 动态线程池_线程池的参数动态调整
- python数据分析 - T检验与F检验:二组数据那个更好?(一)
- 【场景削减】拉丁超立方抽样方法场景削减(Matlab代码实现)
- android搜索功能以及显示历史纪录带清除按钮
- 小学生打扫计算机教室的简报,简报第33期:我校开展“清扫校园”卫生大扫除活动...
- 我从外包公司辞职了!
- 免费的高匿名爬虫代理池不求人|高可用、高匿名、代理池详解及搭建推荐