• Rendertarget transparency issue (again)
    1 replies, posted
[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.