http://blog.csdn.net/u011047171/article/details/46928463 Stencil Buffer&Stencil Test 在开始前先吐槽下unity的官方文档,说实话关于stencil ,官方文档真的是可以不要了,除了记流水账般解释了下各个参数的作用,作为例子的shader也是让人一头雾水,整个文档看下来,你发觉stencil是用来干嘛的,怎么操作,仍然不知道.好在unity的shaderlab 和D3D,OpenGL等shader语言是一致的,还…
模板测试(Stencil Test)是现代渲染流水线的一环,其中涉及到的就是模板缓冲(Stencil Buffer),模板缓冲可以用来制作物体的遮罩.轮廓描边.阴影.遮挡显示等等效果 目录 Stencil 常见语法格式 关键字 自定义一些值 Comp比较函数 Operation 模板测试判断依据 轮廓描边 思路+Code 产生的问题 实现Unity遮罩的方法 非欧几里得空间 遮罩的处理 多个面互相不干扰 代码部分 基于Stencil的镜面效果 如何反转? 传送矩阵的工具物体 MirrorObj…
我们现在需要创建深度/模板缓冲区. 如§4.1.5所述,深度缓冲区只是一个2D纹理,用于存储最近的可见对象的深度信息(如果使用模板(stencil),则也会存储模板信息). 纹理是一种GPU资源,因此我们通过填写描述纹理资源的D3D12_RESOURCE_DESC结构,然后调用ID3D12Device :: CreateCommittedResource方法来创建一个. D3D12_RESOURCE_DESC结构定义如下: typedef struct D3D12_RESOURCE_DESC {…
刚在草稿箱里发现了这篇充满特色的好日志.发表之. ------------------吃货的分割线---------------------------------------- Stencil Buffer,就好像是在蛋糕表面撒糖粉时用的糖粉筛. 能通过测试的糖粉(片元)就会撒到(绘制到)蛋糕表面(当前颜色缓存,可以不).…
这是一道在<Introduction to 3D Game Programming with DirectX 11>上的练习题. 要求把某个像素点上的Depth Complexity(深度复杂度?)可视化输出.Depth Complexity即某个点上有多少次depth test. 根据题目中的提示,我们可以用stencil buffer完成. 简要步骤如下: 绘制场景,设置DepthStencilState为stencil test永远通过,通过后stencil buffer中的值+1.这样…
在windows API搭建的OpenGL窗口中使用模板缓冲,需要在像素格式描述表中设置stencil buffer位宽为8,这样窗口会自动生成stencil buffer,然后可以在opengl环境下使用模板缓冲了. 一个渲染物体轮廓的示例,绿色为小长方体的边框 void Display() { glEnable(GL_DEPTH_TEST); glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE); glClear(GL_COLOR_BUFFER_BIT | GL…
在D3D11中,有depth/stencil buffer,它们和framebuffer相对应,如下图所示,framebuffer中一个像素,有相对应的depth buffer和stencil buffer值: D3D11中,depth buffer和stencil buffer一起定义,比如DXGI_FORMAT_D24_UNORM_S8_UINT,是指用一个无符号24位的值做为像素的深度缓冲值,并把它映射到[0,1],用一个8位的值表示像素stencil值,并把它映射到[0,255].注意:…
原文:Directx11教程(50) 输出depth/stencil buffer的内容      有时候,我们需要查看depth/stencil buffer的内容,比如上一章中,我们要查看stencil buffer,看看我们设置的stencil值是否起作用,这时就要输出depth/stencil buffer内容,但这些内容在gpu中,我们并不能直接查看,需要通过纹理copy,资源映射的方式,拷贝到system memory中才可以直接查看.      下面是输出depth/stencil…
原文:Directx11教程(48) depth/stencil buffer的作用      在D3D11中,有depth/stencil buffer,它们和framebuffer相对应,如下图所示,framebuffer中一个像素,有相对应的depth buffer和stencil buffer值:         D3D11中,depth buffer和stencil buffer一起定义,比如DXGI_FORMAT_D24_UNORM_S8_UINT,是指用一个无符号24位的值做为像素…
均值模糊(Box Blur) 概述 因为公司手游项目需求.须要一个适合手机平台的模糊效果,同一时候须要开放一个參数便于调节模糊值.我首先想到的就是ps里面的均值模糊. 查资料能够知道均值模糊是一种高速的图像模糊技术,相比与传统的卷积模糊(如高斯模糊),均值模糊能够更加有效率的完毕对图像模糊.在unity官方自带imageeffect包也有一个blur的屏幕特效,用的就是均值模糊算法,仅仅只是他仅仅採样了离原像素上下左右模糊半径(Blur Spread)距离的四个像素进行平均处理.然后做迭代(It…