I create render target:
local WIDTH = render.get_window_width()
local HEIGHT = render.get_window_height()
self.blurred_pred = render.predicate({"blurred"})
local color_params = { format = render.FORMAT_RGBA,
width = WIDTH,
height = HEIGHT,
min_filter = render.FILTER_LINEAR,
mag_filter = render.FILTER_LINEAR,
u_wrap = render.WRAP_CLAMP_TO_EDGE,
v_wrap = render.WRAP_CLAMP_TO_EDGE }
local depth_params = { format = render.FORMAT_DEPTH,
width = WIDTH,
height = HEIGHT,
u_wrap = render.WRAP_CLAMP_TO_EDGE,
v_wrap = render.WRAP_CLAMP_TO_EDGE }
self.blur_target_1 = render.render_target("blur_target_1", {[render.BUFFER_COLOR_BIT] = color_params, [render.BUFFER_DEPTH_BIT] = depth_params })
And them draw it:
render.enable_texture(0, self.blur_target_1, render.BUFFER_COLOR_BIT)
render.draw(self.blurred_pred)
render.disable_texture(0, self.blur_target_1)
It works good, but my shaders works slow. Okay, i have old solution (from anchient PC methods) - i reduce size of render-target! Like this:
local WIDTH = render.get_window_width()/2
local HEIGHT = render.get_window_height()/2
…oops??? result looks render-target have texcoords (0 , 0)…(0.5 , 0.5).
Why only half of my screen displayed?
Regular rendering output don’t depends of render target size, because vertex shader produce output in range 0…1
Please, help me understand how its works in Defold.