ZLib?这个和ZIP的那个ZLib不是一个东西的:)
这是我们在99年制作的一个游戏底层,
即时光影,看到Diablo2想到的,对于每个人物来说,增加Z轴的信息,那样就可以通过x、y、z 3个坐标来计算其明暗度,可以实现真实的光影效果
从图上看的话,就是裙子这些最突出的地方,被下面的光最小照亮
下面是当时的说明文档:
基于Z缓冲的光影演示
ZIP 包 67K
方向键、ESC键
这是我写的基于Z缓冲的光影演示的第二个演示,主要是想达到Diablo II那样的效果,这还是最基础的运用Z缓冲。
和上一个区别不是很大。
目前,诸如多光源、多色光(每个光源的颜色都不同)基本上都可以实现了,只是还有些BUG,所以就没有拿出来;怎么做基本上都已经了解了,虽然和我当初设想的不太一样,但应该是没什么太大的问题的。
这几天恐怕没什么时间写了,过些日子再说吧。
处理Z缓冲的代码是用C写成的,简单的将平方和开方用查表来计算。应该还有大幅优化的余地。
实际上还有很多地方我认为无法解决,譬如高出的椅背应该会挡住一部分的光,但目前无法实现,分成两个部分来解决一定会很耗资源,而且这么小的地方相当不划算,好在实际使用中不一定会用到这种东东。
希望能和大家探讨一下!
特别感谢云风提供的RLA解码代码。
![](/images/load.gif)