Alpha test是可以通过测试然后丢弃不需要渲染的像素的。顾名思义就是根据他的alpha值与某特定值比较。
这个技术做腐蚀效果,某些电影特技如:可以让一个人慢慢各个部位褪色,最后消失……等,而且不需要消耗什么计算时间。
计算公式:
IF as(Openration function)ref == true THEN
accept pixel
ELSE reject pixel
例如,下面的代码:
gd3dDevice->SetRenderState(D3DRS_ALPHATESTENABLE, true);//开启alpha test
gd3dDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);//后面参数是比较函数,就是说大于等于alpha值100的像素才渲染
gd3dDevice->SetRenderState(D3DRS_ALPHAREF, 100);//设置比较值
比如做一个栏杆效果,可以用贴图做,而不用用立体几何画出来再实时渲染,这样会慢很多,
上面右边那幅画是带了Alpha Channel的图。大家可以用Photoshop来自己手动加上这个通道。一般bmp图像文件就支持保持Alpha Channel。Jpe应该是不支持的。
我们可以利用右边的图片来做一个如下一样的篱笆效果图:
只需要用一个四方体几何图形,然后用texturing技术就可以轻易的做出这样的效果图来。
Reference:
Introduction to 3D Game Programming with DirectX9.0C
分享到:
相关推荐
使用该软件可以让你检测任意图片格式,png,jpeg, jpg , bmp, gif, tiff等的每个像素的rgb还有alpha通道的值。只要一动鼠标就可以检测到。 可以运行在windows, linux,mac
一个运用ALPHA通道处理透明图标的实例,基于VB.NET,效果可以看截图,对VB新手朋友很有帮助。
VB.NET Alpha透明通道处理实例,效果可以看截图,对VB新手朋友很有帮助。
基于FPGA的Alpha半透明图像叠加算法硬件实现.pdf
seeThru, HTML5视频与alpha通道透明度 seeThru - 带alpha通道透明度的HTML5视频 这个包为 HTML5 <video> 元素中缺少alpha通道添加了"支撑点"。 以前称为 jquery seethru""在视频中,你的HTML5视频源被渲
alpha-video-html5使用序列帧和canvas两种方法分别实现html5下的alpha通道视频
alphapng 用于从透明 png 文件中分离 alpha 和 rgb 通道的最小 cli 工具。 RGB 通道将保存在压缩的 jpg 文件中,Alpha 通道将保存在简化的 Png 中。 如果您可以稍后以编程方式组合通道(例如在画布中),它可用于...
Hareverse Alpha Test 5.4.exe
通过Win32编程技术实现位图的透明功能 内含源代码和位图资源 主要用于我的博文的资源下载,博文地址: http://blog.csdn.net/crocodile__/article/details/10156817
VB.net源码,通过HLSL shader对图像进行灰度变成不透明度的处理。通过自定义控件利用MediaPlayer播放透明通道视频。利用ShaderEffect实时处理的视频帧作为OpacityMask蒙版。
1、直接setAlpha是改变整个view的透明度 getBackground().setAlpha只是改变view的背景的透明度 2、有背景才能够设置透明度。 必须先设置背景,之后才能设置背景的透明度,不能直接getBackground().setAlpha。
带Alpha通道的的webm格式的视频。
这个代码详细示例了API函数AlphaBlend把图片透明过渡的动画特效,一个比较易学的示例.
我们常见的RGB图像通常只有R、G、B三个通道,在图像处理的过程中会遇到往往需要向图像中添加透明度信息,如公司logo的设计,其输出图像文件就需要添加透明度,即需要在RGB三个通道的基础上添加alpha通道信息。...
AlphaBlend图片透明过渡动画特效-精品源代码
为了能够使用Alpha制作出半透明的效果,要在D3D设备上调用一个函数来启用它。这个函数就是SetRenderState。下面就是启用Alpha混合的典型用法: [cpp] view plaincopy <pre name="code" class="cpp"> // 设置Alpha...
这是在网上下载的资料,支持wicne5.0(包含)的版本和windows mobile
在各类有关.Net的技术论坛上常有人问如何实现透明的图像或图形效果,答案很简单,就是Alpha Blending技术。Alpha Blending技术是一个混合各种颜色值并产生透明效果的过程。具体的实现原理也很简单:在GDI+中,任何一...
GUI方案中ALPHA通道处理介绍。。。。。。。。。。。。。。
为了能够使用Alpha制作出半透明的效果,要在D3D设备上调用一个函数来启用它。这个函数就是SetRenderState。下面就是启用Alpha混合的典型用法: [cpp] view plaincopy <pre name="code" class="cpp"> // 设置Alpha...