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

Wysłany: 2020-04-07, 15:15


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Witam, pr?bowa?em ostatnio stworzy? tablice 3D, u?y?em do tego p?tli lecz niestety pojawi?y si? 2 b??dy.

1. Gdy u?ywam dxCreateRenderTarget w osobnym evencie tablice tworz? si? 2 lecz posiadaj? te same napisy.

2. Natomiast gdy dxCreateRenderTarget jest u?yty w p?tli tablice r?wnie? tworz? si? 2 z osobnymi ju? napisami, lecz powoduj? du?e spadki FPS i po chwili znikaj?.

Jest jaki? spos?b na naprawienie tego b??du lub ewentualnie stworzenie tego zasobu z wykorzystaniem innych funkcji, czy mo?e lepiej nie robi? takich rzeczy poniewa? mog? powodowa? du?e obci??enie?

Zas?b:


addEventHandler("onClientResourceStart"resourceRoot,
    function()
        --myRenderTarget dxCreateRenderTarget(8001460)
    end
)

function getPositionFromElementOffset(element,offX,offY,offZ)
    local m getElementMatrix element )
    local x offX m[1][1] + offY m[2][1] + offZ m[3][1] + m[4][1]
    local y offX m[1][2] + offY m[2][2] + offZ m[3][2] + m[4][2]
    local z offX m[1][3] + offY m[2][3] + offZ m[3][3] + m[4][3]
    return xyz
end


addEventHandler('onClientResourceStart'root, function()

    if state ~= 1 then
        addEventHandler('onClientRender'roottablica3d)
        state 1
    end
end)

local tbl={

    {1473.67,-1767.28,18.80+1,"Test",800,1460},
    {1477.44,-1766.86,18.80+1,"Test2",800,1460},

}

function tablica3d()
    for i,v in ipairs(tbl) do

    myRenderTarget dxCreateRenderTarget(v[5], v[6])
    dxSetRenderTarget(myRenderTarget)
    dxDrawText(v[4] , 10800250tocolor255255255alpha ), 3'sans''center''center'truetrue )

    dxSetRenderTarget()
    local tablica=dxDrawMaterialLine3D(v[1] - 0.08v[2], v[3] + 0.7v[1] - 0.08v[2], v[3] - 1.7myRenderTarget2tocolor(255,255,255,255), v[1], v[2]-50v[3] + )
end
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-07, 16:23


Kuks*







Wiek: 15
Na forum: 3030 dni
Posty: 246
Nick w MP: Kuks*

Piwa: 2208

Respekt: 115,8
Respekt: 115,8

Maniekxx, dxCreateRenderTarget nie powinno by? w onClientRender, przez to masz spadki FPS, po chwili brak vramu, przez co znika.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Maniekxx
Wysłany: 2020-04-07, 16:37


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Kuks*, Rozumiem, lecz w przeciwnym wypadku ten sam tekst pojawia si? na ka?dej tablicy, gdy umieszcz? dxCreateRenderTarget przyk?adowo w evencie onClientResourceStart, jest jaki? spos?b aby to naprawi??

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-07, 18:01


Kuks*







Wiek: 15
Na forum: 3030 dni
Posty: 246
Nick w MP: Kuks*

Piwa: 2208

Respekt: 115,8
Respekt: 115,8

Maniekxx, Do ka?dej tablicy mo?na zrobi? inny render target

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Maniekxx
Wysłany: 2020-04-07, 19:53


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Kuks*, Zrobi?em to teraz w taki spos?b, spadki FPS ju? nie wyst?puj? jednak?e tablica nadal po chwili znika, jak ju? wcze?niej wspomnia?em, gdy utworz? j? w innym evencie wtedy na ka?dej tablicy pojawia si? ten sam tekst.


function getPositionFromElementOffset(element,offX,offY,offZ)
    local m getElementMatrix element )
    local x offX m[1][1] + offY m[2][1] + offZ m[3][1] + m[4][1]
    local y offX m[1][2] + offY m[2][2] + offZ m[3][2] + m[4][2]
    local z offX m[1][3] + offY m[2][3] + offZ m[3][3] + m[4][3]
    return xyz
end


addEventHandler('onClientResourceStart'root, function()

    if state ~= 1 then
        addEventHandler('onClientRender'roottablica3d)
        state 1
    end
end)

local tbl={

    {1473.67,-1767.28,18.80+1,"Test",800,1460},
    {1477.44,-1766.86,18.80+1,"Test2",800,1460},

}

function tablica()
    myRenderTarget dxCreateRenderTarget(8001460)
end

function tablica3d()
    tablica()
    for i,v in ipairs(tbl) do
    if myRenderTarget then
    dxSetRenderTarget(myRenderTarget)
    dxDrawText(v[4] , 10800250tocolor255255255alpha ), 3'sans''center''center'truetrue )

    dxSetRenderTarget()
    local tablica=dxDrawMaterialLine3D(v[1] - 0.08v[2], v[3] + 0.7v[1] - 0.08v[2], v[3] - 1.7myRenderTarget2tocolor(255,255,255,255), v[1], v[2]-50v[3] + )
        end
    end
end


Wygl?da to tak:


Napisy nak?adaj? si? na siebie, a chcia?bym aby na ka?dej tablicy by? inny napis z tablicy.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-07, 20:13


Kuks*







Wiek: 15
Na forum: 3030 dni
Posty: 246
Nick w MP: Kuks*

Piwa: 2208

Respekt: 115,8
Respekt: 115,8

Po pierwsze nie mo?esz u?ywa? funkcji tablica w onClientRender, bo po chwili napisy znikn? z powodu braku v-ramu.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Maniekxx
Wysłany: 2020-04-07, 20:21


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Ale gdy wywo?uj? j? np z

 addEventHandler('onClientResourceStart'root, function()

    if state ~= 1 then
        addEventHandler('onClientRender'roottablica3d)
       tablica()
        state 1
    end
end)


To wtedy w?asnie te napisy nak?adaj? si? na siebie, i tablica nie znika. Gdy wywo?uje j? natomiast z funkcji tablica3d to napisy s? na ka?dej inne, lecz po chwili znikaj? wraz z ca?? tablic?. Nie patrz na SS bo on ukazuje tylko b??d jaki wyst?puje w przypadku dodania funkcji tablica() do eventu onClientResourceStart.

W skr?cie, je?li wywo?uje tablica() z funkcji tablica3d to dzia?a ale po chwili wszystko znika.

Gdy robi? to w funkcji onClientResourceStart tablice nie znikaj? lecz tekst si? na siebie nak?ada tak jak w przypadku przedstawionego SS.

Nie do ko?ca wiem jak zrobi? aby te tablice dzia?a?y poprawnie :/
Warunkiem tego aby tekst wy?wietla? si? na obydw?ch tablicach jest to aby wywo?ywanie funkcji tablica() znajdywa?o si? wewn?trz p?tli.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-08, 14:55


Kuks*







Wiek: 15
Na forum: 3030 dni
Posty: 246
Nick w MP: Kuks*

Piwa: 2208

Respekt: 115,8
Respekt: 115,8

Napisa?em dla Ciebie prosty przyk?ad u?ycia, tekst na ka?dym rt b?dzie inny.

local rendery = {
    {rt dxCreateRenderTarget(250200true), text "Siema! TEST 1 1 1 1 1s"pos = {-2401.27197, -603.20117133.16272}},
    {rt dxCreateRenderTarget(250200true), text "Siema1"pos = {-2414.69971, -614.00775132.60869}},
}

addEventHandler("onClientRender"root, function()
    for iv in ipairs(rendery) do
        dxSetRenderTarget(v.rt)
        dxDrawText(v['text'], 00250200tocolor(255255255), 1"default""center""center")
        dxSetRenderTarget()
        dxDrawMaterialLine3D(v.pos[1], v.pos[2], v.pos[3]+2v.pos[1], v.pos[2], v.pos[3], v.rt2)
    end
end)


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Maniekxx
Wysłany: 2020-04-08, 20:55


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Dzi?kuje, teraz wszystko dzia?a poprawnie :) Mo?na zamkn?? temat.

Postaw piwo autorowi tego posta
 

 
Tagi: tablice
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA 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