[lua]
test_rt = GetRenderTargetEx("test", 1024, 1024, RT_SIZE_NO_CHANGE, MATERIAL_RT_DEPTH_NONE, 8, 4, IMAGE_FORMAT_RGBA8888)
render.PushRenderTarget(test_rt)
render.OverrideAlphaWriteEnable( true, true )
render.ClearDepth()
render.Clear(0, 0, 0, 0)
render.OverrideAlphaWriteEnable( false )
render.PopRenderTarget()
drawing_mat = CreateMaterial("Peek", "UnlitGeneric")
drawing_mat:SetInt("$vertexalpha", 1)
drawing_mat:SetInt("$alphatest", 1)
drawing_mat:SetTexture("$basetexture", test_rt)
hook.Add("HUDPaint", "ughh", function()
render.PushRenderTarget(test_rt)
cam.Start2D()
surface.SetDrawColor(Color(255, 0, 0))
surface.DrawRect(20, 200, 100, 100)
cam.End2D()
render.PopRenderTarget()
surface.SetDrawColor(Color(255, 255, 255, 255))
surface.SetMaterial(drawing_mat)
surface.DrawTexturedRect(0, 0, 512, 512)
end)
[/lua]
This code should render a [b]transparent[/b] rendertarget with a red box on the left, yet it results in this, and I have no clue on why it is doing that, any tip or are rendertargets still broken?
[img_thumb]https://dl.dropboxusercontent.com/u/8845827/ShareX/Garry%27s_Mod_2015-12-13_01-54-21.jpg[/img_thumb]
IIRC when you create your material, some parameters (like alphatest) must be specified immediately, or they won't take effect. Try doing it like this:
[code]
CreateMaterial(name, "UnlitGeneric", {["$alphatest"] = "1", ["$vertexcolor"] = "1"})
[/code]
EDIT:
Calling [img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/IMaterial/Recompute]IMaterial:Recompute[/url] is supposed to fix that too, but I haven't tried.
Sorry, you need to Log In to post a reply to this thread.