当前位置: 首页 > news >正文

常州网站制作/宁波网站推广优化公司怎么样

常州网站制作,宁波网站推广优化公司怎么样,郑州高端定制网站,开发平台官网Texture alpha 前两篇分别学习了Vertex alpha和Material alpha,今天来研究一下Texture alpha,所谓Texture alpha就是使用Texture的alpha通道进行混合,这需要texture包含alpha通道。所以首先要为texture添加alpha通道。 为texture添加alpha通道…

Texture alpha

前两篇分别学习了Vertex alpha和Material alpha,今天来研究一下Texture alpha,所谓Texture alpha就是使用Texture的alpha通道进行混合,这需要texture包含alpha通道。所以首先要为texture添加alpha通道。

为texture添加alpha通道

使用DirectX texture tool添加

一般的图片格式都是不包含alpha通道的,使用DX的texture tool可以为texture添加alpha通道,这实际上是做一次格式转换,没有alpha通道的texture格式一般是R8G8B8格式,转换后的格式就是A8R8G8B8或者R8B8G8A8格式,这里A表示alpha值。

用texture tool打开图片后,可以看到图片的当前格式,如下图,可知当前格式为X8R8G8B8,不包含alpha通道。

在菜单中选择Format-Change surface format,在下拉列表中选择A8R8G8B8,这样就为texture添加了alpha通道,只是通道还是空的,没有alpha值。

找一张alpha通道的图片,比如下面这张,这张图片的颜色不是为了显示,而是用来控制颜色的透明程度,在这里黑色表示完全不透明,白色表示完全透明,由黑到白透明度逐渐增加,下面这张图片混合后的效果就是一个圆形的纹理。

在texture tool的菜单上选择File - Open on to alpha channel of this surface并选择上面的图片。这样就将这个图片作为alpha channel加入了前一个图片中,效果如下。

混合

下面的代码使用texture的alpha控制texture的颜色,第一行启用alpha混合,第五六行设置颜色值的来源,这里指定来源为texture,第九十行设置alpha值的来源,这里指定来源为texture,因为我们使用的就是texture的alpha通道,最后三行设置混合因子及混合操作。

复制代码
 1 // Enable alpha blending
 2 g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, true);
 3 
 4 // Set color source and operation, color from texture
 5 g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
 6 g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP,   D3DTOP_SELECTARG1);
 7 
 8 //Set alpha source and operation, alpha from texture alpha channel
 9 g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
10 g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAOP,   D3DTOP_SELECTARG1);
11 
12 // Set blend factor and blend operation
13 g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND,  D3DBLEND_SRCALPHA);
14 g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
15 g_pd3dDevice->SetRenderState(D3DRS_BLENDOP,   D3DBLENDOP_ADD);
复制代码

效果图

如果想同时使用顶点的颜色和纹理的颜色,那么可以将定点定义为如下格式。

复制代码
struct Vertex
{float x, y, z ; // Vertex positionDWORD color;    // Vertex colorfloat u, v ;    // Texture coordinates
};#define VertexFVF D3DFVF_XYZ | D3DFVF_TEX1 | D3DFVF_DIFFUSE
复制代码

然后定义是个顶点用来绘制Quad

复制代码
Vertex Quad[] = 
{{-5.0f,  5.0f, 0, g_Color,    0,    0},    // 1{ 5.0f,  5.0f, 0, g_Color, 1.0f,    0},    // 2{-5.0f, -5.0f, 0, g_Color,    0, 1.0f},    // 4{ 5.0f, -5.0f, 0, g_Color, 1.0f, 1.0f},    // 3
} ;
复制代码

混合的时候,在设置颜色来源时,将Arg1设置为纹理,Arg2设置为顶点颜色,操作设置为Modulate。alpha值的来源仍然设置为texture alpha channel。

复制代码
// Set color source and operation, color from texture
g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP,   D3DTOP_MODULATE);//Set alpha source and operation, alpha from texture alpha channel
g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAOP,   D3DTOP_SELECTARG1);// Set blend factor and blend operation
g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND,  D3DBLEND_SRCALPHA);
g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
g_pd3dDevice->SetRenderState(D3DRS_BLENDOP,      D3DBLENDOP_ADD);
复制代码

效果图,这里我们设置顶点的diffse color为蓝色,所以最终的结果就是蓝色加上纹理的颜色。

Happy Coding!!!

==


本文转自zdd博客园博客,原文链接:http://www.cnblogs.com/graphics/archive/2012/08/31/2649943.html,如需转载请自行联系原作者

http://www.jmfq.cn/news/4888387.html

相关文章:

  • 企业做网站的目的/站长工具查询seo
  • 做网站怎么打空格/网络营销策略ppt
  • 湖北营销型网站建设多少钱/搜索引擎营销简称为
  • 网站兼职做计划赚小钱/网络营销公司哪家可靠
  • 武汉网站建设兼职2017/百度关键字优化
  • 建设执业资格注册中心官方网站/怎样搭建网站
  • 自己如何做简单网站/搜索引擎优化的方法有哪些?
  • 沧州网站的公众号/营销推广活动方案
  • 做衣服网站有哪些/百度推广费用多少
  • 合肥网站优化/seo实战密码在线阅读
  • 网站建设杭州滨江/白帽优化关键词排名seo
  • 建立独立网站需要注册公司吗/百度最新推广产品
  • 网站顶级导航制作方法/北京百度公司总部电话
  • wordpress调用网站标题/视频营销
  • wordpress查询页面/青岛seo网站排名优化
  • php 网站/新东方培训机构官网
  • 微餐饮网站建设用途/什么是整合营销并举例说明
  • 做sorry动图的网站/深圳网站建设的公司
  • 做平面设计的网站/为什么sem的工资都不高
  • 主流网站风格/免费代理浏览网页
  • wordpress前台编辑/seo优化是什么
  • 公司品牌vi设计是什么/百度优化seo
  • 做静态网站的参考文献/济南网络优化厂家
  • 购彩网站建设/抖音seo查询工具
  • 正能量网站入口不用下载免费/成功的网络营销案例
  • 网站建设合同附件/哪些店铺适合交换友情链接
  • 上海网站怎么备案表/北京做百度推广的公司
  • 大连模板开发建站/中国十大品牌策划公司
  • 网站宣传册怎么做的/做app推广去哪找商家
  • 南京建设委网站首页/上海疫情最新消息