顺序无关半透明:Weighted Blended

      所有基于排序的 OIT 算法实际上都需要大量的计算资源,不管是基于图元的排序还是基于像素的排序。   Blend 中的 OVER 操作   Blend 计算的基本思想是: C_f=C_1+(1-\alpha_1)C_0  这里,与上一篇博客 顺序无关半透明:Depth Peeling 中的定义一样,C_0 表示 premultiplied-alpha color,预先乘上了 \alph […]

顺序无关半透明:Depth Peeling

      由于光栅化渲染 API 只能保存一个像素的深度(通常为最近像素的深度),所以光栅化渲染天生具有半透明渲染的劣势。通过到相机的距离对图元进行排序可能有所帮助,但排序是计算密集型的,必须在每一帧完成,而且如果图元相互交错,就会出现无法修复的错误。 Depth peeling   Depth peeling 的中文意思是深度剥离,本质也类似。先渲染最远的一层深度的像素,然后将它剥离掉,然后再 […]

关于std::shared_ptr的思考与探究

      智能指针(管理指针的模板类)是 C++11 之后添加的新特性,它们非常有用,但是智能指针经常会带来内存碎片。游戏程序的内存往往非常紧张,所以这里探究了一下 std::shared_ptr 的内存分配以及内存同步的问题。   测试使用的是 vc141 x86 平台。 std::shared_ptr 内存分配   std::shared_ptr 的原理是引用计数。相比裸指针,智能指针需要在 […]

Bitnami