Blur

  • Initiateur de la discussion Joe Leroi
  • Date de début
  • Initiateur de la discussion
Joe Leroi

Joe Leroi

Chuck Norris
Messages
4 368
Score réaction
933
Points
605
salut, si tu passe ici c'est que tu cherche à m'aider, et bien mon soucis c'est que je souhaite faire une rounded box, mais en blur. Or je ne sait pas ce qui faut rentrer, chez mis cela :

Code:
 draw.RoundedBox( 0, 12, ScrH() - 162, ScrW() / 4, 150, Color(0, 0, 0, 190))
Et sur cette roundedbox, j'aurais besoin de mettre du blur. Comment faire ?
 
EglyKozz

EglyKozz

Psychopathe
Messages
1 627
Score réaction
359
Points
310
C'est dans une frame ?
 
  • Initiateur de la discussion
Joe Leroi

Joe Leroi

Chuck Norris
Messages
4 368
Score réaction
933
Points
605
EglyKozz

EglyKozz

Psychopathe
Messages
1 627
Score réaction
359
Points
310
Taink

Taink

El Magnifico
Messages
5 292
Score réaction
2 720
Points
965
Joe Leroi à dit:
salut, si tu passe ici c'est que tu cherche à m'aider, et bien mon soucis c'est que je souhaite faire une rounded box, mais en blur. Or je ne sait pas ce qui faut rentrer, chez mis cela :

Code:
 draw.RoundedBox( 0, 12, ScrH() - 162, ScrW() / 4, 150, Color(0, 0, 0, 190))
Et sur cette roundedbox, j'aurais besoin de mettre du blur. Comment faire ?
https://facepunch.com/showthread.php?t=1464767
Ils en parlent, mais j'avoue que comme je m'intéresse pas vraiment au Glua je pourrais pas l'expliquer ^^'
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Up.
 
Alain LeThug

Alain LeThug

Psychopathe
Messages
1 012
Score réaction
211
Points
280
@Valfunde t'en avait pas fait un ?
 
Fred-Tension

Fred-Tension

Geek
Messages
51
Score réaction
14
Points
65
Voilà ça dépend de ce que tu veut faire hud/panel
Pour un panel c'est ceci
,
Code:
 local blur = Material("pp/blurscreen") local function blurPanel(panel, amount) local x, y = panel:LocalToScreen(0, 0) local scrW, scrH = ScrW(), ScrH() surface.SetDrawColor(255, 255, 255) surface.SetMaterial(blur) for i = 1, 6 do blur:SetFloat("$blur", (i / 3) * (amount or 6)) blur:Recompute() render.UpdateScreenEffectTexture() surface.DrawTexturedRect(x * -1, y * -1, scrW, scrH) end end
local Frame = vgui.Create("DFrame")
Frame:SetPos(670, 370)
Frame:SetSize(500, 230)
Frame:SetTitle("")
Frame:SetVisible(true)
Frame:SetDraggable(true)
Frame:SetBackgroundBlur(true)
Frame:SetMouseInputEnabled(true)
Frame:SetKeyboardInputEnabled(true)
Frame:ShowCloseButton(true)
Frame:MakePopup()
Frame.Paint = function( self, w, h ) blurPanel( self, 5 ) draw.RoundedBox(0, 0, 0, self:GetWide(), self:GetTall(), Color(0, 0, 0, 100)) draw.RoundedBox(0, 0, 0, self:GetWide(), 30, Color(70, 70, 70, 255)) end

Et pour un HUD,
Code:
local blur = Material( "pp/blurscreen" )
local function drawBlur( x, y, w, h, layers, density, alpha ) surface.SetDrawColor( 255, 255, 255, alpha ) surface.SetMaterial( blur ) for i = 1, layers do blur:SetFloat( "$blur", ( i / layers ) * density ) blur:Recompute() render.UpdateScreenEffectTexture() render.SetScissorRect( x, y, x + w, y + h, true ) surface.DrawTexturedRect( 0, 0, ScrW(), ScrH() ) render.SetScissorRect( 0, 0, 0, 0, false ) end
end
hook.Add("HUDPaint", "FredHUD", function() drawBlur( 12, ScrH() - 162, ScrW() / 4, 150, 3, 6, 255 ) draw.RoundedBox( 0, 12, ScrH() - 162, ScrW() / 4, 150, Color(0,0,0,100) )
end)
Qui donne : https://i.imgur.com/SBI7IXU.jpg
 
Dernière édition:
  • J'aime
Réactions: EglyKozz
  • Initiateur de la discussion
Joe Leroi

Joe Leroi

Chuck Norris
Messages
4 368
Score réaction
933
Points
605
Fred-Tension à dit:
Voilà ça dépend de ce que tu veut faire hud/panel
Pour un panel c'est ceci
,
Code:
local blur = Material("pp/blurscreen") local function blurPanel(panel, amount) local x, y = panel:LocalToScreen(0, 0) local scrW, scrH = ScrW(), ScrH() surface.SetDrawColor(255, 255, 255) surface.SetMaterial(blur) for i = 1, 6 do blur:SetFloat("$blur", (i / 3) * (amount or 6)) blur:Recompute() render.UpdateScreenEffectTexture() surface.DrawTexturedRect(x * -1, y * -1, scrW, scrH) end end
local Frame = vgui.Create("DFrame")
Frame:SetPos(670, 370)
Frame:SetSize(500, 230)
Frame:SetTitle("")
Frame:SetVisible(true)
Frame:SetDraggable(true)
Frame:SetBackgroundBlur(true)
Frame:SetMouseInputEnabled(true)
Frame:SetKeyboardInputEnabled(true)
Frame:ShowCloseButton(false)
Frame:MakePopup()
Frame.Paint = function( self, w, h ) blurPanel( self, 5 ) draw.RoundedBox(0, 0, 0, self:GetWide(), self:GetTall(), Color(0, 0, 0)) draw.RoundedBox(0, 0, 0, self:GetWide(), 30, Color(0, 0, 0)) end

Et pour un HUD, je t'envoi ça attend un peu que je re trouve le code.
Ok merci et pour le moment je crée un hud donc c'est pour hud
 
Fred-Tension

Fred-Tension

Geek
Messages
51
Score réaction
14
Points
65
Voilà j'ai mis a jour.
 
  • Initiateur de la discussion
Joe Leroi

Joe Leroi

Chuck Norris
Messages
4 368
Score réaction
933
Points
605
Fred-Tension à dit:
Voilà ça dépend de ce que tu veut faire hud/panel
Pour un panel c'est ceci
,
Code:
local blur = Material("pp/blurscreen") local function blurPanel(panel, amount) local x, y = panel:LocalToScreen(0, 0) local scrW, scrH = ScrW(), ScrH() surface.SetDrawColor(255, 255, 255) surface.SetMaterial(blur) for i = 1, 6 do blur:SetFloat("$blur", (i / 3) * (amount or 6)) blur:Recompute() render.UpdateScreenEffectTexture() surface.DrawTexturedRect(x * -1, y * -1, scrW, scrH) end end
local Frame = vgui.Create("DFrame")
Frame:SetPos(670, 370)
Frame:SetSize(500, 230)
Frame:SetTitle("")
Frame:SetVisible(true)
Frame:SetDraggable(true)
Frame:SetBackgroundBlur(true)
Frame:SetMouseInputEnabled(true)
Frame:SetKeyboardInputEnabled(true)
Frame:ShowCloseButton(false)
Frame:MakePopup()
Frame.Paint = function( self, w, h ) blurPanel( self, 5 ) draw.RoundedBox(0, 0, 0, self:GetWide(), self:GetTall(), Color(0, 0, 0)) draw.RoundedBox(0, 0, 0, self:GetWide(), 30, Color(0, 0, 0)) end

Et pour un HUD,
Code:
local blur = Material( "pp/blurscreen" )
local function drawBlur( x, y, w, h, layers, density, alpha ) surface.SetDrawColor( 255, 255, 255, alpha ) surface.SetMaterial( blur ) for i = 1, layers do blur:SetFloat( "$blur", ( i / layers ) * density ) blur:Recompute() render.UpdateScreenEffectTexture() render.SetScissorRect( x, y, x + w, y + h, true ) surface.DrawTexturedRect( 0, 0, ScrW(), ScrH() ) render.SetScissorRect( 0, 0, 0, 0, false ) end
end
hook.Add("HUDPaint", "FredHUD", function() drawBlur( 12, ScrH() - 162, ScrW() / 4, 150, 3, 6, 255 ) draw.RoundedBox( 0, 12, ScrH() - 162, ScrW() / 4, 150, Color(0,0,0,100) )
end)
Qui donne : https://i.imgur.com/SBI7IXU.jpg
Fred-Tension à dit:
Voilà j'ai mis a jour.
Merci. Je passe en résolu j'ai pas encore test mais à le voir sa doit être correct
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Fred-Tension à dit:
Voilà ça dépend de ce que tu veut faire hud/panel
Pour un panel c'est ceci
,
Code:
local blur = Material("pp/blurscreen") local function blurPanel(panel, amount) local x, y = panel:LocalToScreen(0, 0) local scrW, scrH = ScrW(), ScrH() surface.SetDrawColor(255, 255, 255) surface.SetMaterial(blur) for i = 1, 6 do blur:SetFloat("$blur", (i / 3) * (amount or 6)) blur:Recompute() render.UpdateScreenEffectTexture() surface.DrawTexturedRect(x * -1, y * -1, scrW, scrH) end end
local Frame = vgui.Create("DFrame")
Frame:SetPos(670, 370)
Frame:SetSize(500, 230)
Frame:SetTitle("")
Frame:SetVisible(true)
Frame:SetDraggable(true)
Frame:SetBackgroundBlur(true)
Frame:SetMouseInputEnabled(true)
Frame:SetKeyboardInputEnabled(true)
Frame:ShowCloseButton(false)
Frame:MakePopup()
Frame.Paint = function( self, w, h ) blurPanel( self, 5 ) draw.RoundedBox(0, 0, 0, self:GetWide(), self:GetTall(), Color(0, 0, 0)) draw.RoundedBox(0, 0, 0, self:GetWide(), 30, Color(0, 0, 0)) end

Et pour un HUD,
Code:
local blur = Material( "pp/blurscreen" )
local function drawBlur( x, y, w, h, layers, density, alpha ) surface.SetDrawColor( 255, 255, 255, alpha ) surface.SetMaterial( blur ) for i = 1, layers do blur:SetFloat( "$blur", ( i / layers ) * density ) blur:Recompute() render.UpdateScreenEffectTexture() render.SetScissorRect( x, y, x + w, y + h, true ) surface.DrawTexturedRect( 0, 0, ScrW(), ScrH() ) render.SetScissorRect( 0, 0, 0, 0, false ) end
end
hook.Add("HUDPaint", "FredHUD", function() drawBlur( 12, ScrH() - 162, ScrW() / 4, 150, 3, 6, 255 ) draw.RoundedBox( 0, 12, ScrH() - 162, ScrW() / 4, 150, Color(0,0,0,100) )
end)
Qui donne : https://i.imgur.com/SBI7IXU.jpg
Super sympa de ta part :)

Donc du coup la première partie du code pour panel permet de créer la texture blur en gros
et la seconde c'est le panel et pour placer la texture Blur il faut faire "blurPanel(self , 5) ?"
 
Fred-Tension

Fred-Tension

Geek
Messages
51
Score réaction
14
Points
65
@Feytone
Oui donc ça, c'est pour créer la texture dans ton fichier,
Tu ne dois pas forcément toucher ce code.

Code:
local blur = Material("pp/blurscreen") local function blurPanel(panel, amount) local x, y = panel:LocalToScreen(0, 0) local scrW, scrH = ScrW(), ScrH() surface.SetDrawColor(255, 255, 255) surface.SetMaterial(blur) for i = 1, 6 do blur:SetFloat("$blur", (i / 3) * (amount or 6)) blur:Recompute() render.UpdateScreenEffectTexture() surface.DrawTexturedRect(x * -1, y * -1, scrW, scrH) end end
Sinon si tu veut un peut toucher le niveau du blur, tu peut changer
blurPanel( self, 5 ) -- le 5
Mais je te conseil de le mettre a "3".
 
Dernière édition:
Jaqueline_Québec

Jaqueline_Québec

Geek
Messages
17
Score réaction
7
Points
90
Fred-Tension à dit:
Voilà ça dépend de ce que tu veut faire hud/panel
Pour un panel c'est ceci
,
Code:
local blur = Material("pp/blurscreen") local function blurPanel(panel, amount) local x, y = panel:LocalToScreen(0, 0) local scrW, scrH = ScrW(), ScrH() surface.SetDrawColor(255, 255, 255) surface.SetMaterial(blur) for i = 1, 6 do blur:SetFloat("$blur", (i / 3) * (amount or 6)) blur:Recompute() render.UpdateScreenEffectTexture() surface.DrawTexturedRect(x * -1, y * -1, scrW, scrH) end end
local Frame = vgui.Create("DFrame")
Frame:SetPos(670, 370)
Frame:SetSize(500, 230)
Frame:SetTitle("")
Frame:SetVisible(true)
Frame:SetDraggable(true)
Frame:SetBackgroundBlur(true)
Frame:SetMouseInputEnabled(true)
Frame:SetKeyboardInputEnabled(true)
Frame:ShowCloseButton(true)
Frame:MakePopup()
Frame.Paint = function( self, w, h ) blurPanel( self, 5 ) draw.RoundedBox(0, 0, 0, self:GetWide(), self:GetTall(), Color(0, 0, 0, 100)) draw.RoundedBox(0, 0, 0, self:GetWide(), 30, Color(70, 70, 70, 255)) end

Et pour un HUD,
Code:
local blur = Material( "pp/blurscreen" )
local function drawBlur( x, y, w, h, layers, density, alpha ) surface.SetDrawColor( 255, 255, 255, alpha ) surface.SetMaterial( blur ) for i = 1, layers do blur:SetFloat( "$blur", ( i / layers ) * density ) blur:Recompute() render.UpdateScreenEffectTexture() render.SetScissorRect( x, y, x + w, y + h, true ) surface.DrawTexturedRect( 0, 0, ScrW(), ScrH() ) render.SetScissorRect( 0, 0, 0, 0, false ) end
end
hook.Add("HUDPaint", "FredHUD", function() drawBlur( 12, ScrH() - 162, ScrW() / 4, 150, 3, 6, 255 ) draw.RoundedBox( 0, 12, ScrH() - 162, ScrW() / 4, 150, Color(0,0,0,100) )
end)
Qui donne : https://i.imgur.com/SBI7IXU.jpg
exactement ce que je cherchais, merci
 
Discord d'entraide
Rejoignz-nous sur Discord