• Starting Animated Texture on First Frame?
    1 replies, posted
So I've got an animated material for Garry's Mod, specifically an overlay. I used code on my entities to make the overlay start and stop at specific times on a player, problem is, the overlay will start on a random frame. Is there a way in the code or .vmt to start the animated texture on the first frame? I don't want to have to skip through multiple post processes every 0.1 second just to get the frames right. Any ideas?
DrawMaterialOverlay doesn't interact with animated textures or expose the material it uses, so you'd have to homebrew it yourself. [code]local lastTexture = nil local mat_Overlay = nil local function AltDrawMaterialOverlay( texture, refractamount, first ) if ( texture ~= lastTexture or mat_Overlay == nil ) then mat_Overlay = Material( texture ) lastTexture = texture end if ( mat_Overlay == nil ) then return end if first then mat_Overlay:SetInt( "$frame", 0 ) end render.UpdateScreenEffectTexture() // FIXME: Changing refract amount affects textures used in the map/models. mat_Overlay:SetFloat( "$envmap", 0 ) mat_Overlay:SetFloat( "$envmaptint", 0 ) mat_Overlay:SetFloat( "$refractamount", refractamount ) mat_Overlay:SetInt( "$ignorez", 1 ) render.SetMaterial( mat_Overlay ) render.DrawScreenQuad() end AltDrawMaterialOverlay( "your overlay", refract, however you want to determine if we should reset the animation )[/code] Something like that might work.
Sorry, you need to Log In to post a reply to this thread.