我正在尝试在ID3D11Texture2D
上使用模板缓冲区来覆盖另一个纹理上的一个纹理的一部分。我计划通过在模板缓冲区上绘制所需的形状然后复制纹理来完成此操作。请提供一些有关2D纹理示例代码的优秀教程,以学习模板缓冲区的使用。 (或者另外一种方式)
答案 0 :(得分:14)
模板掩模101:
*如果不遵循大多数这些规则,通常会导致模板性能最差:您的像素着色器针对每个像素执行,而不会对模板蒙板像素执行早期拒绝。此外,对于较旧的Geforce卡,这也会导致所有后续绘制调用的早期深度拒绝的中断,直到下一帧或深度缓冲器&模板被清除。
模板蒙版实际上很容易生成:
绘制多边形。请注意,在着色器中使用“discard”将阻止模板更新,这是将纹理加载到模板缓冲区中的方式(但仅作为二进制掩码)
禁用模板写入,启用模板测试