|
在我的项目中使用ShadowMap类能显示阴影,但阴影明显不正确(主要是我再在平面上另一位置添加另一模型时其他模型在平面上显示的阴影出错,我试了下不使用shader出现同样的问题);使用的代码如下:
gl_FragColor = gl_Color * shadow2DProj( osgShadow_shadowTexture, gl_TexCoord[1] ).r;
在论坛上翻看了几个ShadowMap的贴子,锐爷推荐用ViewDependentShadowMap 或LightSpacePerspectiveShadowMap,但我直接使用上面的shader无法显示阴影,仿照StandardShadowMap中的源码中写的代码如下:
vec4 colorAmbientEmissive = gl_FrontLightModelProduct.sceneColor;
vec4 color = texture2D( baseTexture, gl_TexCoord[0].xy );
color *= mix( colorAmbientEmissive, gl_Color, shadow2DProj( osgShadow_shadowTexture, gl_TexCoord[1] ).r );
gl_FragColor = color;
阴影还是无法显示。如果我不添加shader阴影显示非常正确,因现在只是在弄阴影,平面上并未贴其他纹理,所以觉得纹理通道就用的默认的。在后面要对平面的纹理和颜色的显示进行动态变化,所以不用shader不行。
参照源码,未使用顶点着色器。求大神们指导下吧! |
|