游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1629|回复: 2

D3D设置什么标志实现加法和减法混合等特效?

[复制链接]

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
发表于 2009-9-18 16:41:00 | 显示全部楼层 |阅读模式
D3D设置什么标志实现加法和减法混合等特效?我的书里没有介绍

14

主题

127

帖子

133

积分

注册会员

Rank: 2

积分
133
发表于 2009-9-18 18:00:00 | 显示全部楼层

Re:D3D设置什么标志实现加法和减法混合等特效?

是纹理混合吗?
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中.


多用GOOGLE啊

32

主题

235

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2009-9-18 18:06:00 | 显示全部楼层

Re:D3D设置什么标志实现加法和减法混合等特效?

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-20 12:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表