物件整体透明实现
来源:互联网 发布:多普达p660软件下载 编辑:程序博客网 时间:2024/05/01 17:13
在网上没找到参考代码,自己想了两个办法
1。将物件渲染到纹理上,再把纹理混合到主表面上。zbuffer不用切换,依然使用主表面的zbuffer,这样层次不会乱。这种做法只需要渲染一次,代码稍微复杂点。
2。将整个物件做两次渲染,第一次关闭颜色缓存的渲染,打开zbuffer,作一次渲染。第二个pass打开颜色缓存,作alpha混合 。以为深度值在第一pass已经改变,所以深度值大的点不会输出,也就不会影响到透明效果了。这个因为要作两次渲染,效率可能要低点。我没实际测试过,估计的。这个方法代码最简单了。如果用shader,那更简单了,直接在在shader里面写两个pass就好了。当然物件不能跨technique渲染。
technique RenderSceneWithTexture1Light
{
pass P0
{
VertexShader = compile vs_1_1 RenderSceneVS( 1, true, false );
PixelShader = compile ps_1_1 RenderScenePS( true ); // trivial pixel shader (could use FF instead if desired)
AlphaBlendEnable = false;
ColorWriteEnable = 0;
}
pass P1
{
VertexShader = compile vs_1_1 RenderSceneVS( 1, true, false );
PixelShader = compile ps_1_1 RenderScenePS( true ); // trivial pixel shader (could use FF instead if desired)
AlphaBlendEnable = true;
SrcBlend = SRCALPHA;
DestBlend = INVSRCALPHA;
ColorWriteEnable = 0xFFFFFFF;
}
}
- 物件整体透明实现
- 实现整体不透明而局部透明的效果(附例子)
- frame实现整体刷新
- NS2的整体实现
- eclipse实现整体缩进
- Dhtml:用ondrag事件简单的实现鼠标拖动物件.
- Dhtml:用ondrag事件简单的实现鼠标拖动物件.
- Dhtml:用ondrag事件简单的实现鼠标拖动物件.
- 用ondrag事件简单的实现鼠标拖动物件
- 关键技术实现,整体架构确定
- sparkSQL的整体实现框架
- 如何实现Iframe透明
- 透明位图实现
- vb实现透明窗体
- JS 透明层实现
- 透明窗体的实现
- 如何实现Iframe透明
- 实现透明水印
- the rose
- JavaMail直接发送邮件
- webmq
- NS笔记1:分裂对象模型
- 第十四課(単語、文型、例文、会話)
- 物件整体透明实现
- 检验电子邮件地址是否真实
- 潜心研究RUBY
- JRuby 1.0发布:实现JVM对Ruby的兼容
- log4j使用进阶[转]
- Javascript操作DOM元素实现多段图决策问题
- 如何在C++中动态分配二维数组
- Adobe Apollo命名AIR Web应用媲美桌面软件[转]
- OPENT完全破解安装