zoukankan      html  css  js  c++  java
  • [转]在Ogre中如何关联textunit 与 cg/hlsl/glsl 语言中的 uniform sampler 关联

    http://hi.baidu.com/litterbug23/blog/item/5c1afed083158216a18bb7ea.html

    在Ogre中如何关联textunit 与 cg/hlsl/glsl 语言中的 uniform sampler 关联:

    cg 和 hlsl 中基本上通用:

    pass

    {

    textunit

    {

            textname diffuseMap.jpg

    }

    textunit

    {

            textname normalMap.jpg

    }

    }

    float4 main(tex0: TEXCOORD0,

    uniform sampler diffusemap ,

    unifrom sampler normapmap ):COLOR

    {

    ................

    }

    如果不指定参数的话,那么会按照纹理单元的顺序,与fragment_shader中的sampler顺序保持一致。

    如果纹理单元很多,为了防止错误,最好使用下面的方法确定纹理单元与采样器sampler的关联

    float4 main(tex0: TEXCOORD0,

    uniform sampler diffusemap: register(s0) ,

    unifrom sampler normapmap:register(s1) ) :COLOR 或者

    float4 main(tex0: TEXCOORD0,

    uniform sampler diffusemap: TEXUNIT0 ,

    unifrom sampler normapmap:TEXUNIT0  ):COLOR

    glsl 中关联我还没有验证,在网上找到的资料为

    函数的采样参数需要在顶点程序声明中设置

    fragment_program myFragmentProgramGLSL glsl

    {

    source prog.frag

    default_params

    {    

            param_named diffusemap int 0

            param_named normapmap int 1

    }

    }

    不过好像以前使用 register(sn)好像也可以。有空再去试试。

  • 相关阅读:
    基于go语言的消息推送系统架构分析
    golang IDE 工具liteide打开报错解决方法
    centos 安装ffmpeg 并生成文件截图
    android 微信分享
    函数编程之闭包漫谈(Closure)
    2017-06-26
    本周总结
    一周总结
    一周总结
    一周总结
  • 原文地址:https://www.cnblogs.com/pulas/p/2364538.html
Copyright © 2011-2022 走看看