摘要:
一、快速高斯模糊 1.1 背景 高斯模糊在wiki上定义为一种图像模糊滤波器,使用正态分布计算每个像素输出颜色。正态分布函数和图像如下所示: \[G(u,v)=\frac{1}{2\pi\delta^2}e^{(-u^2+v^2)/(2\delta^2)} \] 由图可以发现,当 阅读全文
摘要:
一、访问者模式(Visitor) osg中节点node系统是一个庞大复杂的类层次体系,包括叶节点Geode、组节点Group、变换节点Transform、几何节点Drawable等等,他们都是Node的子类。开发功能时,想要访问到某个节点的子节点只能通过getChildren()接口获取到No 阅读全文
摘要:
一、三维空间多段线几何 1 应用背景 opengl常用glLineWidth命令设置线宽,此线宽在透视投影中不会随着相机远近变化而缩放。项目中高版本glLineWidth命令失效,需要考虑如何快速、方便、宽度不变的多段线几何。方案a:纯shader绘制曲线,绘制到一个二维平面上,然后将平面旋转 阅读全文
摘要:
一、基础概念 1、SSAO:通过将褶皱、孔洞和非常靠近墙面变暗的方法,近似模拟间接光照。SSAO称为屏幕空间环境光遮蔽 ,使用屏幕空间场景的深度而不是真实的几何体数据来确定遮蔽量,速度快效果好。 2、实现原理:根据物体表面法线方向生成一个半球随机深度采样,主要看物体周围深度值大小,通过这个值来确定是 阅读全文
摘要:
osg使用整理(11):延迟渲染 一、基础概念 前向渲染流程:顶点着色器->图元装配成点线三角形->几何着色器->裁剪剔除->光栅化(片元着色器)->透明度测试、深度测试。 延迟渲染流程:顶点着色器->图元装配成点线三角形->几何着色器->裁剪剔除->光栅化输出G-Buffer,存储每个像素的属性信 阅读全文
摘要:
1. Shadow Mapping原理 思路很简单,将相机放到光源处,观察到的物体部分就是光照部分,没观察到的就是阴影,它被自身或其他物体遮挡住了。我们知道可以通过深度缓冲来保存面片到相机间的相对距离关系,离相机最近的物体会遮挡其他相同位置的物体面片,于是我们可以首先将相机放在光源处,这样得到的深度 阅读全文
摘要:
实用的空间几何方法 设点表示为 P (x,y,z),直线表示为过点P (x,y,z) 和方向direction (x,y,z),平面表示为过点P (x,y,z) 和法线方向norm (x,y,z)。 代数符号 * 表示向量点积, \(\cdot\) 表示向量叉积,||表示向量模长,norma 阅读全文
摘要:
1.1 单光源直接光照 void main() { //创建小球几何 osg::ref_ptr<osg::ShapeDrawable> sphere =new osg::ShapeDrawable; sphere->setShape(new osg::Sphere(osg::Vec3(0,0,0), 阅读全文
摘要:
基于物理的渲染(2):渲染方程 \[L_o(p,ω_o)=∫_Ωf_r(p,ω_i,ω_o)L_i(p,ω_i)n⋅ω_idω_i \] 其中\(L_o\)为P点的出射辐射率,\(f_r\)是P点入射方向到出射方向光的反射比,也叫双向反射分布函数(BRDF),\(L_i\)是P点入射光辐射率。渲染方 阅读全文
摘要:
基于物理的渲染(1):基本概念 1 背景 基于物理的渲染即Physically Based Rendering (PBR) ,也被称为PBS,指一定程度上满足物理规律的渲染工作流,比Phong模型相比渲染的效果更加真实。它在由Disney在SIGGRAPH 2012 会议上提出的一种BRDF模型之后 阅读全文