gpt4 book ai didi

c++ - 2D 照明 - 使光线不穿过墙壁

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:03 26 4
gpt4 key购买 nike

我有一张碰撞图,有些地方我想成为光源。光源提供的光实际上是我可以看到地面的形状。现在看起来像这样:

enter image description here

所以光线穿过墙壁。我想让它看起来像这样:

enter image description here

(我用深黄色标记了与墙壁的碰撞)

因此光线在遇到墙壁时停止。我想得到正确的光的形状,最好是包含它的位图)

我的第一个想法是从光源转换光线并检查它们何时与墙碰撞(我知道该怎么做),但是我需要例如每 0.001 度转换一次光线,所以时间太长了产生光。其次是灯的形状并不总是圆形,有时可以是椭圆形或半椭圆形,甚至是三角形或圆形的一部分。通常,我的位图带有不会发生任何碰撞的光线,我想稍微减去它以使其看起来像第二张图像。

最后一件事,我使用的是 allegro 4.2.1,但是之前提到的所有位图都是包含 0 和 1 的二维数组。

感谢您的帮助,抱歉问题太长,英语不好。

最佳答案

基本思想是计算墙壁的阴影区域,而不是为其着色。

This article应该给你一个好的开始。

关于c++ - 2D 照明 - 使光线不穿过墙壁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10702448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com