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.