|
楼主 |
发表于 2011-1-26 10:09:05
|
显示全部楼层
viewMatrix 是这样定义的viewMatrix.makeLookAt(osg::vec3d(0,0,1000),osg::vec3d(0,0,0),osg::Vec3d(0.0,1.0f,0.0f));
proMatrix 是这样定义的proMatrix.makePerspective(30.0f,1.0f,0.1f,10000.0f);
然后就是用unifrom 把这两个变量传递进去。
输出的话是这样的:
因为当前的这个使用shader的图形是一个四边形,并且在场景的中央,所以,我就把得到的pro1.x,pro1.y当做是纹理坐标,然后贴图,发现,正好能贴到一个图的中心部分,差不多是吻合的,vec4 mapColor=texture2D(ShadowTexture,pro1.xy);
输出这个颜色的话,感觉上是正好取了相关的位置了,
然后我再输出pro1.z 即glFragColor=pro1.z 当前的这个四边形图形的颜色就全部为白色了,
然后,我又输出gl_FragColor=pro1.z/10.0f; 输出颜色就全是黑色了。。就是这样了。。。
并且,我在这个投影下,渲染到纹理,把场景输出到纹理,发现四边形也是包含在场景中的。。位置关系应该是正常的。 |
|