我已经有了一个实用的光照贴图和光照算法:tiles w/ lightmap
我没有使用OpenGl,我不需要光线投射的阴影,我只想让光照贴图在光照贴图的顶点之间混合一个渐变,这样它就是平滑的而不是块状的。我看到的一种方法如下:为每个包含光照贴图数据的瓦片绘制一个像素的图像,然后使用瓦片的大小和插值来放大它。然而,我不知道如何做到这一点,使用这个lightmapimage.getScaledInstance(w,h,Image.SCALE_SMOOTH)简单地产生与上图相同的效果,只是速度慢得令人难以置信。我如何以一种资源高效的方式平滑照明?
发布于 2017-08-30 06:28:41
我想通了。对于任何对基于2D瓦片的平滑照明感兴趣的人,这里是我的解决方案:将光照贴图绘制到一个小比例图像之后,每个像素代表一个瓦片,使用类型为双线性的AffineTransformOp。(瓦片大小为10x10)
BufferedImage after = new BufferedImage(lightmap.getWidth()*10, lightmap.getHeight()*10, BufferedImage.TYPE_INT_ARGB);
AffineTransform at = new AffineTransform();
at.scale(10, 10);
AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR);
after = scaleOp.filter(lightmap, after);
g.drawImage(after,0,0,null);https://stackoverflow.com/questions/45948732
复制相似问题