• Render Target is not working for the model
    4 replies, posted
I was able to make it work in 3d2d but I can't really get it work with the model. Help me lua kings! [img]http://i.imgur.com/AIPlzzf.png[/img] [lua] if (SERVER) then return end local targetEntity = "models/hunter/tubes/tube4x4x1.mdl" print("examine") RENDER_TARGET_SCREENS = RENDER_TARGET_SCREENS or {} function createRT(id) local renderTarget = GetRenderTarget("RT_TEXTURE_"..id, 512, 512, false) local mat = CreateMaterial("RT_TEXTURE_"..id, "VertexLitGeneric") mat:SetTexture("$basetexture", renderTarget) RENDER_TARGET_SCREENS[id] = {mat, renderTarget} return RENDER_TARGET_SCREENS[id] end function getRT(id) return RENDER_TARGET_SCREENS[id] end function freeRT(rt) if (RENDER_TARGET_SCREENS[id] == rt) then RENDER_TARGET_SCREENS[id] = nil end end for k, v in ipairs(ents.GetAll()) do if (IsValid(v) and v.GetModel and v:GetModel() and v:GetModel():lower() == targetEntity) then v:CallOnRemove("clearRT", function() if (v.rt) then freeRT(v.rt) end end) function v:renderRT() if (v.rt) then -- this is a perfect render target dealio. render.PushRenderTarget(v.rt[2]) cam.Start2D() render.OverrideAlphaWriteEnable( true, true ) render.ClearDepth() render.Clear( 0, 0, 0, 255 ) surface.SetDrawColor(255,0,0) surface.DrawRect(math.sin(RealTime()*20)*-100 + 100, 0, 100, 50) render.OverrideAlphaWriteEnable( false ) cam.End2D() render.PopRenderTarget() v.rt[1]:SetTexture('$basetexture', v.rt[2]) end end v.RenderOverride = function() if (!v.rt) then createRT(v:EntIndex()) end v.rt = getRT(v:EntIndex()) if (v.rt) then v:renderRT() cam.Start3D2D(v:GetPos(), v:GetAngles(), 1) surface.SetDrawColor(255,255,255) surface.SetMaterial(v.rt[1]) surface.DrawTexturedRect(0, 0, 512, 512) cam.End3D2D() end if (IsValid(v.rt[1])) then print(v.rt[1]) end render.MaterialOverride(v.rt[1]) v:DrawModel() render.MaterialOverride() end end end [/lua]
Are you getting any errors? This function should be giving you some: [lua]function freeRT(rt) if (RENDER_TARGET_SCREENS[id] == rt) then RENDER_TARGET_SCREENS[id] = nil end end[/lua](id is nil)
Currently It's not about Freeing RT. It's all about applying Lua-Generated Textures/Materials to the Model.
apparently it's okay to read a nil index of a table... I have no idea why. Nevermind. Can you be more specific instead of just a code dump?
Solved Duplicate working material and write on em
Sorry, you need to Log In to post a reply to this thread.