Ogre

——静下心,坐坐……
posts - 4, comments - 2, trackbacks - 0, articles - 3
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

D3D纹理混合方式

Posted on 2010-03-26 12:06 alpha 阅读(864) 评论(1)  编辑 收藏 引用

D3D纹理混合方式:

摘自: http://blog.readnovel.com/article/htm/tid_1066443.html
D3DTOP_DISABLE: 禁用纹理层颜色输出.
D3DTOP_SELECTARG1:将该纹理层的第一个混合参数直接输出.对于D3DTSS_COLOROP,则输出由 D3DTSS_COLORARG1指定的第一个表示RGB的参数;对于D3DTSS_ALPHAOP,则输出由D3DTSS_ALPHAARG1指定的第 一个表示ALPHA的参数.
D3DTOP_SELECTARG2:同上.
D3DTOP_MODULATE:将两个混合参数相乘后输出.
D3DTOP_MODULATE2X: 将两个混合参数相乘后再乘以2输出.
D3DTOP_MODULATE4X:将两上混合参数相乘后再乘以4输出.
D3DTOP_ADD:将 两上混合参数相加后输出.
D3DTOP_ADDSIGNED:将两个混合参数相加后减去0.5输出.(可以这样理解:本来范围在[0,1]里,减 0.5使其范围限制在[-0.5, 0.5]中.这样相加后,比较暗的部分,即负数部分,将对原来的纹理产生衰减,而较亮部分则对原来的纹理增强.可用作细节纹理.如果有的显卡不支持 D3DTOP_ADDSIGNED方式,可考虑采用D3DTOP_MODULATE2X来模拟这种效果).
D3DTOP_ADDSIGNED2X: 同上,结果再乘以2输出.
D3DTOP_SUBTRACT:将两个混合参数相减后输出.
D3DTOP_ADDSMOOTH:将两个混合参 数的和减去两个混合参数的积.

D3DTSS_COLORARG1 与 D3DTSS_COLORARG2 可以指定的纹理混合参数:
D3DTA_CURRENT:前一个 纹理层的输出颜色.如果在第0层,则为漫反射颜色.
D3DTA_DIFFUSE:像素的漫反射颜色值.这种颜色是在使用GOURAUD着色模式时 对顶点的漫反射颜色插值得到的.
D3DTA_TEXTURE:当前纹理的颜色值.
D3DTA_TFACTOR:参数值为 SetRenderState()通过D3DRS_TEXTURE_EFACTOR设置的系数值.
D3DTA_SPECULAR:参数值为像素的 镜面反射颜色值.这种颜色是在使用高洛德着色模色时对顶点的镜面反射颜色插值得到的.
D3DTA_SELECTMASK:该状态在设置纹理参数时 不起作用.
D3DTA_TEMP:参数值存储在一个临时寄存器中.
D3DTA_CONSTANT:参数值为一个常数值.
D3DTA_COMPLEMENT: 该参数必须与以上任意一个参数同时设置(或操作?),表示用一减去原参数.
D3DTA_ALPHAREPLICATE:该参数必须与以上除了 D3DTA_COMPLEMENT之外的任一参数同时设置,表示将原参数的ALPHA值复制到R,G,B中.

Feedback

# re: D3D纹理混合方式  回复  更多评论   

2010-03-27 09:33 by Davy.xu
使用shader或者直接进入DX10后,你会发现这个API的参数基本就费了

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理