简单模型场景的辐射度算法研究与实践

2019-01-30 08:05苏静孔令德
电子技术与软件工程 2019年2期
关键词:高光效果图立方体

文/苏静 孔令德

1 引言

辐射度方法主要依靠的是光能,它将物理学中的热辐射运用进算法。为了便于计算,在建立模型场景的时候假设场景中的面片数值是恒定的;这就表示着要计算精确的辐射度图像,模拟场景中的几何部分必须细分为更小的区域,或者说面片,然后再把一个个小的区域组合起来得到最后的图像。

2 构建场景模型

场景模型是直观反映算法的一个工具,通过模型间颜色的相互影响能较为清楚的辨别出算法实现是否实现,或者说实现的难易程度。

2.1 构建平面模型

首先创建一个平面模型,平面方程为:

通过平面方程,我们需要在平面方程上随机的取点(x,y,z),方程中的系数A、B、C、D是4个常数,通过三条方程求解方程组的办法求解出这4个常数。

图1:模拟场景效果图

然后通过已知点与场景中的各个面求交,交点通过像素连接形成平面图像。

2.2 构建圆锥模型

假设圆锥的高度为h,圆锥底面圆的半径为r,则圆锥的方程为:

建立三维坐标系,原点位于底面中心,则圆锥面的参数方程为:

2.3 构建球体模型

球体方程为:

球心位于三维坐标的原点,设球面的半径为r,则球面的参数方程为:

2.4 构建半立方体模型

在构建整体的场景模型前,我们首先要构建一个半立方体模型,半立方体技术早在之前被许多学者研究过。半立方体是指除去正面的一个盒子模型,定义盒子底面中心的点坐标为(0,0,0),并且将半立方体分为五个平面,在定义平面大小的同时,将自发光、漫反射、镜面高光、反射等结构体一起定义进去。

3 实践效果

图2:模拟场景效果图

场景为室内的一个球体和一个圆锥,左侧的墙面为蓝色,右侧墙面为绿色,上面的墙面为淡蓝色,后面的墙面为红色。在左上角设置高光,在辐射度的影响下,球体表面分别呈现出四面墙的颜色,而右侧的圆锥只受到右侧绿色墙面的辐射影响所以只显示绿色效果,模拟场景效果图如图1。

改变颜色亮度和高光位置方向,重新绘制场景。可见通过改变高光位置,模型物体在平面上显示的阴影方向改变;通过改变颜色亮度,墙面和顶部的颜色因为辐射度辐射到物体模型上的颜色更加明显,模拟场景的效果图如图2。

4 结束语

本文仅仅完成了简单模型场景的辐射度算法实践,其中还有很多内容需要更深入研究。诸如计算形状因子、对场景面片集合映射的改进处理。在计算辐射度方程时其他迭代算法没有实践值得再去挖掘研究。

猜你喜欢
高光效果图立方体
见证彼此高光
叠出一个立方体
室内外效果图作品
想做联名爆款?超级飞侠、熊出没、奥特曼等“高光”IP等你来聊
释放出来自HDR的高光力量 Optoma奥图码UHZ880
立方体星交会对接和空间飞行演示
折纸
基于Moldflow 的高光无痕电视前壳注射模具设计