概要:Unity Cg 编程(关于顶点与片段着色器)

本文永久地址:http://www.omuying.com/article/83.aspx, 【文章转载请注明出处!】

原文链接:http://en.wikibooks.org/wiki/Cg_Programming/Unity

在 Unity 游戏引擎中编写 Cg 程序要比在 OpenGL 或 Direct3D 应用中编写 Cg 程序容易,因为导入的网格和图像(即纹理)有图形用户界面支持,而且多重纹理格式(mipmaps)和法线贴图也会被自动的计算,并且最常用的顶点属性和 uniforms 也都是预定义的,另外我们还可以通过非常简单的命令来设置 OpenGL 和 Direct3D 的状态等等。

教程准备

我们可以从 Unity 下载页面 下载 Windows 和 MacOS 平台下免费版本的 Unity 软件,本系列所有教程都是免费的,但是我们需要注意以下三点:

首先:这系列教程假定你熟悉 Unity,如果你不熟悉 Unity 话,你首先应该参考《Unity 的用户指南》来学习 Unity。
其次:Unity 不区分 Cg(Nvidia 着色器语言)和 HLSL(Direct3D 着色器语言),因为这两种语言非常相似,因此大多数的教程也适用于 HLSL。
此外:Cg 文档有《Nvidia's Cg Tutorial》和《Nvidia's Cg Language Specification》,然而 Unity 对 Cg 编程的具体细节描述比较缺乏,另一方面,Unity 着色器的文档侧重于 Unity 自己的表面着色器,所以 Cg/HLSL 着色器文档是非常缺乏的。因此,如果没有 Cg 相关的知识的话,那么在 Unity 中学习 Cg 编程将是比较困难的,Wikibook 试图在 Unity Cg 编程方面填补这个空缺而不要求你需要 Cg 相关知识。

系列教程

请注意,本系列教程假设你按照下列章节有序的学习,即后面每个章节的教程都假设你熟悉前面章节中的概念和技术,如果你是 CG 或者 Unity 新手,那么你至少要先了解本系列教程的“基础部分”。

基础部分

第一章节:最简单的着色器(关于着色器,材质和游戏对象)
第二章节:RGB 立方体(关于顶点输出参数)
第三章节:在着色器中调试(关于顶点输入参数)
第四章节:世界空间中的着色器(关于 uniforms)

透明的表面

第五章节:剖面模型(关于片段擦除和三角形面剔除)
第六章节:透明度(关于混合)
第七章节:顺序无关的透明度(关于顺序无关的混合)
第八章节:轮廓加强(关于转换法线向量)

基本光照

第九章节:漫反射(关于每顶点漫反射和多光源漫反射)
第十章节:镜面高光(关于每顶点光照)
第十一章节:双面表面(关于双面每顶点光照)
第十二章节:光滑的镜面高光(关于每像素光照)
第十三章节:双面平滑表面(关于双面每像素光照)
第十四章节:多个灯(关于在一个 pass 中遍历处理多个光源)

基本纹理

第十五章节:纹理球(关于纹理球面)
第十六章节:表面纹理光照(关于纹理漫射光照)
第十七章节:光泽纹理(关于光泽贴图)
第十八章节:透明纹理(关于在片段擦除、混合中使用 alpha 纹理)
第十九章节:纹理层(关于多重纹理)

3D 纹理

第二十章节:凹凸表面光照(关于法线贴图)
第二十一章节:凹凸表面投影(关于视差贴图)
第二十二章节:Cookies(关于投影纹理贴图塑造光的形状)
第二十三章节:投影(关于使用投影纹理贴图实现投影)

环境贴图

第二十四章节:表面反射(关于反射贴图)
第二十五章节:弧形玻璃(关于折射贴图)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值