lua - LOVE2D 映射像素错误
问题描述
因此,当我尝试将此 rgb 值映射到我的数据时:
image=love.image.newImageData(WIDTH,HEIGHT,"rgba16f")
image:mapPixel(pixelFunction)
image2=love.graphics.newImage(image)
function pixelFunction(x, y, r, g, b, a)
return 0,50,0,255
end
如您所见,这类似于 (0,255,0,255) 不是我想要的 rgb 值,实际上它似乎只能渲染最大红色绿色或蓝色值,从而使函数变得无意义
解决方案
从只生成极端颜色这一事实可以猜到,该值50
超出了动态范围。以 1 的分数 (0, 50/255, 0, 1) 使用 rgba 表示确实会产生深绿色。
(0,50,0,255)曾经在爱情10中工作。根据wiki,它应该在爱情11中使用您似乎设置的“rgba16f”。但事实并非如此。继续他们的错误报告部分。
另外,请注意,该问题的最小可重复示例应该按照以下方式完成:
WIDTH=300; HEIGHT=300;
imageData=love.image.newImageData(WIDTH,HEIGHT,'rgba16f')
function pixelFunction(x, y, r, g, b, a)
return 0,50/255,0,255
end
imageData:mapPixel(pixelFunction)
image=love.graphics.newImage(imageData)
function love.draw()
love.graphics.draw(image,0,0)
end
是的,你搞砸了定义和使用的顺序。