版权声明:David Wang原创ARCore文章,仅供学习研究之用,不得用于任何商业目的,未经授权不得转载! https://blog.csdn.net/yolon3000/article/details/82820361
一、vertex & fragment shaders基本结构
Shader "DavidWang/vertexAndFragment"{ SubShader{ pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag void vert(in float2 objPos:POSITION, out float4 pos:POSITION) { pos = float4(objPos,0,1); } void frag(out float4 col:COLOR) { col = float4(1,0,0,1); } ENDCG } } Fallback "Mobile/VertexLit" }
二、profile
三、Cg基本数据类型
数据类型 | 说明 |
---|---|
float | 32 位浮点数据,一个符号位。浮点数据类型被所有的 profile 支持。 |
half | 16 位浮点数据。 |
int | 32 位整形数据,有些 profile 会将 int 类型作为 float 类型使用。 |
fixed | 12 位定点数,被所有的 fragment profiles 所支持。 |
bool | 布尔数据,通常用于 if 和条件操作符( ?: ) ,布尔数据类型被所有的profiles 支持。 |
simpler* | 纹理对象的句柄( the handle to a texture object ) ,分为 6 类: sampler, sampler1D, sampler2D, sampler3D, samplerCUBE, 和 samplerRECT 。 |
注意: 向量最长不能超过 4 元, 即在 Cg 程序中可以声明 float1 、 float2 、 float3 、float4 类型的数组变量,但是不能声明超过 4 元的向量。
参考文献
1、Cg语言的基础 Cg语言的基础
2、profile和基本数据类型 profile和基本数据类型
文章来源: ARCore之路-环境理解之Cg语言