gpt4 book ai didi

c++ - Stencil Buffer 有什么用?

转载 作者:行者123 更新时间:2023-11-28 02:04:13 25 4
gpt4 key购买 nike

我知道这类似于 z-buffer,发生在输出合并阶段。并比较ref值和buffer值来决定该点是否可以通过。

不过,我觉得它能实现的效果,总能用一个普通的buffer来实现。当我们使用渲染到纹理,并将其用作着色器资源 View 时,将其输入到像素着色器。然后判断并决定是否手动裁剪该像素。代码是这样的:如果(比较值) 剪辑(0);由于stencil buffer可以用common buffer代替,所以我们还是用它。那能不能用图形硬件的加速?(一些特殊说明)

最佳答案

“输出合并”是渲染中的关键性能路径之一,因此它一直保持“固定功能”,而现代 GPU 的许多其他方面已经变得可编程。除了可以使用 alpha 混合进行的测试类型之外,您还可以在同一 channel 中对模板数据进行类似的测试:

struct D3D11_DEPTH_STENCIL_DESC
{
BOOL DepthEnable;
D3D11_DEPTH_WRITE_MASK DepthWriteMask;
D3D11_COMPARISON_FUNC DepthFunc;
BOOL StencilEnable;
UINT8 StencilReadMask;
UINT8 StencilWriteMask;
struct D3D11_DEPTH_STENCILOP_DESC
{
D3D11_STENCIL_OP StencilFailOp;
D3D11_STENCIL_OP StencilDepthFailOp;
D3D11_STENCIL_OP StencilPassOp;
D3D11_COMPARISON_FUNC StencilFunc;
} FrontFace, BackFace;
};

模板缓冲区用于许多技术,例如阴影、反射、贴花等。参见 wikipedia .

关于c++ - Stencil Buffer 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38214979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com