Shder基础学习

Posted 一个不会码代码的小恐龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shder基础学习相关的知识,希望对你有一定的参考价值。

目录

CG常见的数据类型

如何对应


今天介绍的是shader中CG语言中的数据类型

CG常见的数据类型

Float/half/fixed(三个都是浮点数,但是精度不一样)

Integer(整形)

Sampler2D(2D纹理)

SamplerCUBE(3D纹理)

Float

高精度类型,32位,通常用于世界坐标下的位置,纹理UV,或涉及复杂函数的标量计算,如三角函数、幂运算等。

Half

中精度类型,16位,数值范围为[-60000,+60000],通常用于本地坐标下的位置、方向向量、HDR颜色等。

Fixed

低精度类型,11位,数值范围为[-2,+2],通常用于常规的颜色与贴图,以及低精度间的一些运算变量等。

注解:在PC平台不管你Shader中写的是half还是fixed,统统都会被当作float来处理。half与fixed仅在一些移动设备上有效。
比较常用的一个规则是,除了位置和坐标用float以外,其余的全部用half。主要原因也是因为大部分的现代GPU只支持32位与16位,也就是说只支持float和half,不支持fixed。

如何对应

Int/float/Range用浮点值表示,也就是float、half或者fixed,根据自己需要的精度来定义。

Vector/Color用float4、half4或者fixed4表示。

2D类型用sampler2D表示。

3D类型sampler3D表示。

CUBE类型用samplerCUBE表示。

_Color("Color", Color) = (1,1,1,1)
//color的四个参数分别对应RGBA

注解:不管是Vector还是Color,都是由四个同样精度的浮点数值组成的,所以我们在定义的时候才会写成float4、half4或者fixed4.

以上是关于Shder基础学习的主要内容,如果未能解决你的问题,请参考以下文章

201555332盛照宗—网络对抗实验1—逆向与bof基础

DOM探索之基础详解——学习笔记

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

逆向及Bof基础实践

XSS基础学习

20155307刘浩《网络对抗》逆向及Bof基础