shader入门基础知识七
content cg 流程控制与循环 在前面的章节中shader 入门基础知识五提到过,cg 不支持 switch ,break,default,goto 等关键字,这里不再尝试,下面对 if else 和 for while 进行尝试。 如图,我们对于模型坐标小于 0 的地方给与红色,大于 0 的地方给与绿色,得到的是渐变从红到绿的颜色。 原因是片元着色器的输入是对着色器输出...
content cg 流程控制与循环 在前面的章节中shader 入门基础知识五提到过,cg 不支持 switch ,break,default,goto 等关键字,这里不再尝试,下面对 if else 和 for while 进行尝试。 如图,我们对于模型坐标小于 0 的地方给与红色,大于 0 的地方给与绿色,得到的是渐变从红到绿的颜色。 原因是片元着色器的输入是对着色器输出...
content Cg 入门三 swizzle 操作 通过 swizzle 操作,可以将 float2,或者 float2 的分量重新组成其他的 float3,float4。 这个时候 float2 的 x,y 分别是 1,0 新组成的 float4 则是(1,0,0,1)因此是红色。 可以同时使用分量,顺序也是可以打乱的。这里我们使用 float2 的分量,并且 y 在前,...
content Cg 入门二 C 语言和 Cg 语言的区别联系 前言 这里主要是我个人的理解,大家想要准确的解释,还是建议大家上 nvdia 官网读官方文档 Similar Operations That Must be Expressed Differently There are several changes that force the same operation to...
content Cg 入门 Cg 关键字 in,out,inout in:修辞一个形参只是用于输入,进入函数体时被初始化,且该形参值的改变不会影响实参值,这是典型的值传递方式。 out:修辞一个形参只是用于输出的,进入函数体时并没有被初始化,这种类型的形参一般是一个函数的运行结果; inout:修辞一个形参既用于输入也用于输出,这是典型的引用传递。 out是可以被 ...
content 常用的语义,Cg 中的变量,后续还会有其他的补充 完成第一个实例后 shader 入门基础知识二,一些我们之前还不是很清楚的地方需要扩展。 Cg 代码中与 Properties 关联 前文提过需要使用 Properties 中的代码,需要在 Cg 代码块中声明类型和名称都匹配的变量,这里完善shader 入门基础知识二中的表格,方便之后使用 ...
content 创建我们第一个着色器 着色器模板 Standard Surface Shader 标准表面着色器,模拟现实材质与灯光的关系,书写逻辑更符合普通程序 Unilt Shader 不受光照影响的模板 Shader ,常用于 UI,特效 Image Effect Shader 屏幕后处理定制模板 shader,常见的 Bloom,模糊等效果 Comput...
content 开始编写着色器前我们需要了解的一些基础知识 什么是渲染管线 gpu 内部处理图形信号相互独立的并行单元,一个渲染管线(流水线)是一序列可以并行和按照固定顺序进行的阶段。 Shader 通用的 shader 是渲染流水线的某些特定阶段,例如顶点着色器阶段(vertex shader)和片元着色器阶段(fragment shader) TODO 渲染流水线 ...