3D引擎:Horde3D:读取Shader文件流程(二)

首先,根据[[ ]]来判断 FX, VS_*, FS_*部分

然后,将FX部分给 fxCode字符串, VS_*, FS_*分别交给 CodeResource 并依次存放在 _codeSections vector中。

之后,
  会解析 FX部分, 这部分先会设置  uniform默认的值,float / float4 类型,变量存储在 _uniforms里 存放, Sampler的 路径名,存放在 _samplers里  该路径名,存放的就是 Fragment Shader的 Sampler变量 要使用的 图片

   解析FX部分的 context 段,
    context端 定义了 该context下  一些渲染的模式,以及 Vertex Shader 和 Fragment Shader的 名字
最后,
  根据这些名字,CodeResource类会找到 相应的 Shader 代码段
  然后 调用 ShaderResouce类的compileContexts方法,该方法会继续调用 Renderer类的 方法 对 Shader 进行 Compile,Link等。

CodeResource 类主要存储的就是 Vertex Shader  和 Fragment Shader的代码段,这些代码段 在文件里  都有一个名字[[ VS_* ]]/ [[ FS_* ]]的名字, 
每一对VS, FS 在 [[ FX ]]里 对应一个 context, 每个代码段会有一个 id存储在context里。  根据这些context 的属性, CodeResource 对相应的代码段执行 操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值