메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

아래와 같은 코드를 사용해 이미지에 색상을 적용할 수 있다.

hamster = love.graphics.newImage("hamster.png")


love.graphics.setColor(1, 0, 0) -- 빨간색으로 그리기

love.graphics.draw(hamster)

love.graphics.setColor(1, 1, 1)


하지만 이미지를 하얗게 그리고 싶다면?


love.graphics.setColor(1, 1, 1) -- 하얀색으로 그리기...가 안된다

love.graphics.draw(hamster)

love.graphics.setColor(1, 1, 1)


love.graphics.setColor() 함수는 색상값을 곱하는 형식으로 동작하므로 (1을 백날 곱해봐야 1일 뿐...)

위의 코드로는 이미지가 하얗게 적용되지 않는다.

이미지를 하얗게 만들고 싶으면 쉐이더를 써야 한다.

아래는 예제 코드:


local whiteoutshader = love.graphics.newShader[[
vec4 effect(vec4 color, Image texture, vec2 textureCoords, vec2 screenCoords){
    return vec4(1, 1, 1, Texel(texture, textureCoords).a) * color;
}
]]

function love.load()
    hamster = love.graphics.newImage("hamster.png")
end

function love.draw()
    love.graphics.draw(hamster, 100, 100)
    
    love.graphics.setShader(whiteoutshader)
    love.graphics.draw(hamster, 200, 100)
    love.graphics.setShader()
end

분류 :
조회 수 :
41
등록일 :
2020.11.23
04:11:56 (*.149.251.217)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=818650
List of Articles