码迷,mamicode.com
首页 > 编程语言 > 详细

【Unity】Shader编程 基础总结

时间:2015-06-19 11:51:09      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:unity   shader   着色器   

Shader编程一直是一个比较难入门难上手的主题,本篇对Unity Shader编程的一些基础和要点进行了总结。

包括Shader编程相关知识图谱、Shader编程相关数据类型、Shader核心结构体等(后续继续补充)。

每个部分相互独立,可以单独参考,亦可作为一个整体参考。


博文首发:http://blog.csdn.net/duzixi


一、Shader编程知识图谱

个人对Shader编程的理解凝在四个字:色即是光。

无论是要手写Shader程序,还是利用各类Shader制作插件(如ShaderForge)制作Shader,关于“光”的知识是一定要有的。

技术分享

(.xmind源文件下载地址:http://www.duzixi.com/doc/ShaderStudy.xmind


二、Shader编程数据类型

Shader编程中比较麻烦的一点是,同一个变量在不同的语法阶段表示的方式不同,常用变量类型对照如下:

硬件平台

CPU

(接口:Inspector面板设置)

GPU

变量类型

C#脚本语言

ShaderLab 属性

Cg语言

纹理贴图

Texture

2D

sampler2D

颜色

Color

Color

fixed4 / half4

3D贴图

Cubemap

Cube

sampleCUBE

4元素向量

Vector4

Vector

float4

浮点数

float

Float

float

浮点范围

float 

Range

float

矩形纹理

Texture

Rect

sampleRect



三、Shader核心结构体

(1)顶点着色器输入结构体

成员类型

成员名

?? 结构体也可以自定义,但是必须有位置信息

appdata_base

appdata_tan

appdata_full

appdata_img

float4

vertex

位置

1

1

1

1

float3

normal

法线

1

1

1


float4

tangent

切线


1

1


fixed4

color

顶点颜色



1


float4

texcoord

纹理坐标0

1

1

1

1

fixed4

texcoord1

纹理坐标1



1



(2)表面着色器输出结构体

SurfaceOutput

half3

Abedo

反射光

half3

Normal

法线

half3

Emission

自发光

half

Specular

高光

half

Alpha

透明度



【Unity】Shader编程 基础总结

标签:unity   shader   着色器   

原文地址:http://blog.csdn.net/duzixi/article/details/46559153

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!