opengl的光体积计算与绘制
lightvolume的Python项目详细描述
此包提供模块lightvolume,该模块提供cffi绑定 到trylock/visibility。这又是一个C++实现的the visibility algorithm详细记录(具有令人敬畏的交互式演示)。 在红团游戏网站上。
API
首先,导入lightvolume:
import lightvolume
然后,我们可以创建多个阴影投射体:
objects = [ lightvolume.rect(0, 0, 500, 500), # outer bounds - this is needed lightvolume.rect(20, 30, 10, 20), lightvolume.rect(290, 300, 100, 300), ]
最后,我们可以在这个场景中渲染灯光投射的照明区域(opengl 上下文必须已经创建并设置了相应的总帐状态:
light = 90, 200 lightvolume.draw_light(light, objects)
此模块旨在与适当的着色器一起使用,以提供 衰减、曲面交互(如凹凸贴图)等。