filament专注于渲染,场景管理相对简单。 常见场景管理中的空间管理、碰撞检测、LOD、GUI、filament中为都没有
1 .“场景”(Scene )场景是渲染物体、光源等的容器,可以在其中添加和删除对象。
创建和销毁“场景”。
engine * engine=engine :3360 create (; Scene* scene=engine-createScene (; engine-destroy(Scene; 2 .“天空盒”(skybox skybox )是包含整个场景的完整空间(Scene )。 目前在基于纹理(立方体贴图)的天空盒
创建和销毁天空盒(SkyBox )。
文件:3360 engine * engine=文件:3360 engine :3360 create (; filament :3360 indirect light * skybox=filament :3360 skybox 3360: builder (.environment (cube map ) ) ) ) engine-destroy(Skybox; 3 .边界框(Box )轴向3D边界框定义中心和半范围。
/* * center oft he3 dbox */math :3360 float3center={ };/* * halfextentfromthecenteronall3axis */math :3360 float3half extent={ }; 4 .“间接光”(IndirectLight )间接光(IndirectLight )用于模拟环境光。 创建环境中的高动态范围图像,并使用工具cmgen进行处理以获取所需的间接照明。 现在的间接光是局限于表示来自无穷远处的全局照明
创建和销毁间接光。
文件:3360 engine * engine=文件:3360 engine :3360 create (; filament : indirect light * environment=filament 3360: indirect light 3360: builder ().reflections (cube map ) ) engine-destroy (环境; 5 .摄影机(摄影机)摄影机)包含观察场景的位置和方向,还控制投影和曝光参数。
创建和销毁摄影机(摄影机)。
文件:3360 engine * engine=文件:3360 engine :3360 create (; filament : camera * mycamera=engine-create camera (; mycamera-set projection (45,16.0/9.0,0.1,1.0 ); mycamera-look at ({ 0,1.60,1 },{ 0,0,0 } ); engine-destroy(mycamera )6.灯光)场景中的灯光类型
yedmj(directionalLights )点光源(point lights )聚光灯(post light )创建并丢弃。
文件:3360 engine * engine=文件:3360 engine :3360 create (; utils :3360 entity sun=utils : entity manager.get ().create; filament :3360灯光管理器:3360 builder (type : sun ).castshadows ) true ).build ) engine,sun ); engine-getLightManager ().destroy ) sun; 7 .“视图”(View )视图包含渲染场景所需的状态信息。 例如,场景、摄影机、视口、渲染参数。 view对象很大且占用大量内存,因此不建议使用过多的view对象。 关于技术:
多重采样抗锯齿(MSAA,多重采样阴影贴图(动态分辨率)渲染质量级别)