|
楼主 |
发表于 2009-12-27 10:20:46
|
显示全部楼层
我说的详细一些 老大给出一个可以操作的方法:
海军教程中所用的那个坦克(T72-tank.flt) 有上下两部分, 这两部分的的纹理分别为 单元0和单元1
炮管在地上的阴影和坦克在地上的阴影为 单元4和单元5
我想给每一个纹理的象素点 乘以 一个因子 此因子角度,距离等因素有关, 即每一象素点的因子都是不同的, 这个因子存在于外部文件中, 我希望每个一个纹理对应一个构造的Texture2D, 里面包含对应的因子, 这样在GLSL的顶点着色器中查找 因子, 在片元着色器中 乘以这个因子, 但是怎么知道是当前顶点对应哪个纹理单元呢?
另外 我试验过 在程序中设置
osg::Uniform * baseTexture = new osg::Uniform("baseTexture",0);
但是没有指定 0 对应的texture 在GLSL中就会对 所有纹理进行操作
然而
osg::Uniform * baseTexture = new osg::Uniform("baseTexture",1);
模型就消失了 但是模型中存在 纹理单元1 啊 |
|