作者TheGate (门)
看板GameDesign
标题[请益] opengl 手电筒
时间Sat Nov 17 22:57:37 2012
大家好
目前在练习opengl的时候遇到一些问题
我想作一个2D动作游戏的画面
类似小朋友下楼梯这种
然後场景全部都是黑的
玩家脚色有一个手电筒照出来
被照到的地方才会显示
像这样
http://ppt.cc/vX8b
(照到餐桌)
目前想法是用一个大的黑色图片
挖出照明的地方设为透明
这样只要把场景画完
把这张图盖上去就好了
不过有几问题
第一个就是这样照地板/天花板的话 光会穿透照到楼上或楼下的空间
另外就是没办法在场景中增加第二个独立光源
因为两个光源彼此位置会不同
没办法用遮罩的方式来做
不知道该用什麽方式解决
我知道opengl本身有光源设定
不过这种光源我不知道要怎麽设定才能像图片这样黑白分明
不会散射?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.234.103
※ 编辑: TheGate 来自: 140.114.234.103 (11/17 22:58)
1F:→ tsl3333:Stencil Buffer可以解决你一些问题 11/18 00:14
这个似乎是内建的遮罩?
研究看看
2F:推 Bencrie:之前不是有板友分享过即时软体阴影的演算法? 11/18 00:25
3F:→ Bencrie:#1FCCfWSG 这篇不知道是不是你要的 XD 11/18 00:27
这方法太强大了ORZ 可能不适用
毕竟我不用影子 而且希望光线只有一个距离 而不是慢慢减弱到无
※ 编辑: TheGate 来自: 140.114.79.114 (11/18 11:01)
4F:→ tsl3333:你可以用你说的方法 一张类似你要照亮的地方设成透明 11/18 11:31
5F:→ tsl3333:盖上去之後 在用stenil buffer去滤掉你说的可能会照到 11/18 11:32
6F:→ tsl3333:楼上楼下的问题 11/18 11:32
7F:→ tsl3333:stencil buffer一.一 打太快漏字 11/18 11:33