我很好奇如何处理场景中的许多灯光。给定角色扮演游戏中非常大的地图,其中包括地牢(其中有灯光)等。我知道延迟照明,但这只能回答如何渲染许多灯光。但是我的问题更多:如何不渲染很多灯光。仅渲染影响场景的灯光显然是可取的,但是我不知道将其存档的技术/算法。没有人希望甚至能够渲染500个点光源,仅仅是因为地图上的某个地方。但是,人们不能只是从灯光到玩家的直线,并测试两者之间是否有直线。距离似乎也不是一个好的指标。(阳光?)
tl; dr:如何找出仅影响渲染的灯光会影响场景?
OpenGL或DirectX?
—
克拉韦米尔
例如,对于点和圆锥贴图,可以使用咬合剔除-点光源只是一个球体。随处可见定向光
—
Kikaimaru 2012年
@Darkwings您基本上在这里描述blubb的要求。我怎么走?好吧,我认为这里的解决方案只是步行!(为我工作。);-)“您需要知道该光源是否在视锥中照亮某些东西。” <- 正是他所要的,他想知道他该怎么做。^^虽然来自Kikaimaru的圆锥体/球体可能会有所帮助。
—
cooky451
对于OP来说,检查视锥不是很明显,因为他提到的只是距离。每盏灯将具有一些参数来确定这一点。如果使用定向光,它们将到达任何地方,聚光灯将具有目标区域(因此可以通过矢量平面相交来解决),依此类推。考虑到如果确实有很多灯光彼此非常接近,那么最好进行近似(用于阴影投射),因此您应该更多地考虑要影响场景的灯光。IE:古董吊灯上的100支蜡烛可以单灯处理。
—
Darkwings,2012年