游戏开发论坛

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

D3D9 中的像素 Test & Blending 流程

[复制链接]

36

主题

100

帖子

725

积分

高级会员

Rank: 4

积分
725
发表于 2010-11-24 18:50:00 | 显示全部楼层 |阅读模式

在做一个模板缓存(stencil buffer)应用过程中,想了解一下光栅化之后像素的具体流程。在网上查了一下,发现不少文章说得有些混乱。自己花时间查清了,做个笔记,如有错误,也请指正。

在图元经过几何管道处理后,最后转化成屏幕空间中的三角形(或线段),对其光栅化后产生一系列像素以在屏幕上显示出来。对于每个像素:

1. 首先送入Pixel Shader运算,输出 RGB,Alpha 和 Z depth(可选)。

2. 接着做 Scissor Test

   相关api: SetScissorRect(CONST RECT* pRect);
            GetScissorRect(RECT* pRect);
            D3DRS_SCISSORTESTENABLE;
            D3DCAPS9.RasterCaps->D3DPRASTERCAPS_SCISSORTEST;

3. 接着做 Alpha Test

   相关api: D3DRS_ALPHATESTENABLE;
            D3DRS_ALPHAREF;
            D3DRS_ALPHAFUNC;
            D3DCAPS9.AlphaCmpCaps;

4. 接着做 Stencil Test 和 Depth Test (这俩个人理解是可以看作一起做的)

   相关api: D3DRS_STENCILENABLE;
            D3DRS_STENCILFAIL;      ( if the stencil test fails )
            D3DRS_STENCILZFAIL;     ( if the stencil test passes and the depth test fails )
            D3DRS_STENCILPASS;      ( if both the stencil and the depth tests pass )
            D3DRS_STENCILFUNC;
            D3DRS_STENCILREF;
            D3DRS_STENCILMASK;
            D3DRS_STENCILWRITEMASK;

            D3DRS_ZENABLE;
            D3DRS_ZWRITEENABLE;
            D3DRS_ZFUNC;

5. Specular Add

   相关api: D3DRS_SPECULARENABLE;

6. Fog

   相关api: D3DRS_FOGENABLE;
            D3DRS_FOGCOLOR;

7. Alpha Blend

   相关api: D3DRS_ALPHABLENDENABLE;
            D3DRS_SRCBLEND;
            D3DRS_DESTBLEND;
               
8. Dithering
               
   相关api: D3DRS_DITHERENABLE;



最后输出到Render Target。  点这儿看更多...

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
发表于 2010-11-25 09:09:00 | 显示全部楼层

Re: D3D9 中的像素 Test & Blending 流程

http://www.xmission.com/~legalize/book/preview/poster/pipeline-9.0.png

36

主题

100

帖子

725

积分

高级会员

Rank: 4

积分
725
 楼主| 发表于 2010-11-25 13:17:00 | 显示全部楼层

Re: Re: D3D9 中的像素 Test & Blending 流程

好图,谢了!
不过specular&fog位置在dx9文档中是这样的:

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

本版积分规则

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

GMT+8, 2025-8-17 17:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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