gpt4 book ai didi

java - 基于 2D Tile 的平滑照明

转载 作者:行者123 更新时间:2023-11-30 06:31:45 25 4
gpt4 key购买 nike

我已经有了一个可用的光照贴图和光照算法:tiles w/ lightmap

我没有使用 OpenGl,我不需要光线转换阴影,我只是希望光照贴图在光照贴图顶点之间混合渐变,使其平滑而不是 block 状。我看到完成此操作的一种方法如下:为包含光照贴图数据的每个图 block 绘制一个像素的图像,然后使用图 block 的大小和插值将其放大。但是我不明白如何做到这一点并使用它lightmapimage.getScaledInstance(w,h,Image.SCALE_SMOOTH)只是产生与上图相同的效果,只是速度慢得多。如何以资源高效的方式平滑光照?

最佳答案

我明白了。对于任何对基于 2D 图 block 的平滑光照感兴趣的人,这是我的解决方案:将光照贴图绘制为每个像素代表一个图 block 的小比例图像后,使用双线性类型的 AffineTransformOp。(图 block 大小是 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);

关于java - 基于 2D Tile 的平滑照明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45948732/

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