Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2021-09-04, 20:54


Yami

Mapper / Uczeń LUA






Wiek: 25
Na forum: 3059 dni
Posty: 379

Piwa: 97

Respekt: 235
Respekt: 235Respekt: 235

Siemka
Mam problem z blurem
Ot?? u?ywam kodu kt?ry wykorzystuje shadery blurV, blurH oraz mtahelper i problem w tym ?e nie wida? za nim dxDraw?w oraz hudu.
https://imgur.com/LdQ1asc

Wie kto? jak to naprawi??

[ Dodano: 2021-09-04, 20:57 ]
Kod lua
Kod:


local scx, scy = guiGetScreenSize()

Settings = {}
Settings.var = {}
Settings.var.blur = 1
Settings.var.optim = 4 -- dzieli rozdzielczo?? w efekcie mniejsza ilosc pixeli do renderowania (nieco psuje jakosc)
Settings.screenRectangle = {}

local current

function createShader()
if getVersion ().sortable < "1.1.0" then
outputChatBox( "Resource is not compatible with this client." )
return
end
myScreenSource = dxCreateScreenSource( scx/Settings.var.optim, scy/Settings.var.optim )
blurHShader,tecName = dxCreateShader( "shaders/blurH.fx" )
blurVShader,tecName = dxCreateShader( "shaders/blurV.fx" )
bAllValid = myScreenSource and blurHShader and blurVShader
if not bAllValid then
outputChatBox( "Could not create some things. Please use debugscript 3" )
end
end
createShader()



function blur_createBlurRenctagle(bool)
if bool then
Settings.screenRectangle = {pos_x, pos_y, size_x, size_y}
createShader()
addEventHandler( "onClientHUDRender", root, blur_render2)
else
if isElement (blurHShader) and isElement (blurVShader) then
Settings.screenRectangle = {}
destroyElement (blurVShader)
destroyElement (blurHShader)
end
removeEventHandler( "onClientHUDRender", root, blur_render2)
end
end

function preRender ()
if not Settings.var then
return
end
RTPool.frameStart()
dxUpdateScreenSource( myScreenSource )
current = myScreenSource
current = applyGBlurH( current, Settings.var.blur )
current = applyGBlurV( current, Settings.var.blur )
dxSetRenderTarget()
end
addEventHandler ("onClientRender", root, preRender)

function dxDrawBluredRectangle (pos_x, pos_y, size_x, size_y, color)
if bAllValid then
dxDrawImageSection ( pos_x, pos_y, size_x, size_y, pos_x/Settings.var.optim, pos_y/Settings.var.optim, size_x/Settings.var.optim, size_y/Settings.var.optim, current, 0,0,0, color)
end
end

-----------------------------------------------------------------------------------
-- Apply the different stages
-----------------------------------------------------------------------------------
function applyGBlurH( Src, blur )
if not Src then return nil end
local mx,my = dxGetMaterialSize( Src )
local newRT = RTPool.GetUnused(mx,my)
if not newRT then return nil end
dxSetRenderTarget( newRT, true )
dxSetShaderValue( blurHShader, "TEX0", Src )
dxSetShaderValue( blurHShader, "TEX0SIZE", mx,my )
dxSetShaderValue( blurHShader, "BLUR", blur )
dxDrawImage( 0, 0, mx, my, blurHShader )
return newRT
end

function applyGBlurV( Src, blur )
if not Src then return nil end
local mx,my = dxGetMaterialSize( Src )
local newRT = RTPool.GetUnused(mx,my)
if not newRT then return nil end
dxSetRenderTarget( newRT, true )
dxSetShaderValue( blurVShader, "TEX0", Src )
dxSetShaderValue( blurVShader, "TEX0SIZE", mx,my )
dxSetShaderValue( blurVShader, "BLUR", blur )
dxDrawImage( 0, 0, mx,my, blurVShader )
return newRT
end


-----------------------------------------------------------------------------------
-- Pool of render targets
-----------------------------------------------------------------------------------
RTPool = {}
RTPool.list = {}

function RTPool.frameStart()
for rt,info in pairs(RTPool.list) do
info.bInUse = false
end
end

function RTPool.GetUnused( mx, my )
-- Find unused existing
for rt,info in pairs(RTPool.list) do
if not info.bInUse and info.mx == mx and info.my == my then
info.bInUse = true
return rt
end
end
-- Add new
local rt = dxCreateRenderTarget( mx, my )
if rt then
RTPool.list[rt] = { bInUse = true, mx = mx, my = my }
end
return rt
end


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
olgiibaba
Wysłany: 2021-09-05, 21:40


_jvneczek







Wiek: 22
Na forum: 4326 dni
Posty: 1513
Nick w MP: _jvneczek

Piwa: 3949

Respekt: 337,5
Respekt: 337,5Respekt: 337,5Respekt: 337,5

Czekaj, na blurze chcesz rysowa? dxDrawy i tak dalej? musisz wtedy ustawi? postgui na true w nich.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-09-05, 23:21


Yami

Mapper / Uczeń LUA






Wiek: 25
Na forum: 3059 dni
Posty: 379

Piwa: 97

Respekt: 235
Respekt: 235Respekt: 235

Nie nie, ja chc? na dxdrawach rysowa? blur, ?eby przyk?adowo dxDrawText by? zablurowany albo ?eby dxDrawImage by? zablurowany

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-09-06, 22:24


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3302 dni
Posty: 391
Nick w MP: kamison

Piwa: 594

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

"Yami" napisał/a:

Nie nie, ja chc? na dxdrawach rysowa? blur, ?eby przyk?adowo dxDrawText by? zablurowany albo ?eby dxDrawImage by? zablurowany


No to najzwyczajniej w ?wiecie robisz na tej samej pozycji blur co znaki.

tekst "blur na tek?cie"
100
y 100
size_xsize_y dxGetTextSize(tekst)
dxDrawText (tekst " reszta bez blura"xy)
dxDrawBluredRectangle(xysize_xsize_y)

Nie wiem czy to b?dzie dobrze, dawno nie pisa?em w mta.

Podpis
Coś tam kiedyś robiłem.

DC: kamison_.
Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-09-08, 18:06


_jvneczek







Wiek: 22
Na forum: 4326 dni
Posty: 1513
Nick w MP: _jvneczek

Piwa: 3949

Respekt: 337,5
Respekt: 337,5Respekt: 337,5Respekt: 337,5

Czy problem zosta? rozwi?zany?

Postaw piwo autorowi tego posta
 

 
Tagi: blur
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Blur Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku