我已经有了一个功能强大的光照贴图和光照算法:tiles w/ lightmap
我没有使用OpenGl,我不需要光照阴影,我只是希望光照贴图在光照贴图的顶点之间混合渐变,因此它是平滑的而不是块状的。我看到这样做的一种方法如下:为每个包含光照贴图数据的贴图绘制一个像素,然后使用贴片和插值的大小对其进行放大。但是,我不明白如何做到这一点并使用它
lightmapimage.getScaledInstance(w,h,Image.SCALE_SMOOTH)
只产生与上图相同的效果,速度极慢。
如何以资源节约的方式平滑照明?
答案 0 :(得分:0)
我明白了。对于对基于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);