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

Wysłany: 2020-12-06, 12:15


xyzzzikk

.gg






Wiek: 18
Na forum: 2774 dni
Posty: 175
Nick w MP: aspyk

Piwa: 6499

Respekt: 30,5

Pytanie, jak zrobi? efekt ruszania np. t?a jak ukazane jest na tym filmie?
https://www.youtube.com/watch?v=kdBDRBeEWDs

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-12-06, 12:44


_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

Zrobi?em co? takiego w do?? prosty spos?b.
PLIK RT.lua

local PATH_SHADER "files/shaders/"

function rt3DCreatew)
    local rt = { }
    rt.w
    rt.h
    rt.shader dxCreateShaderPATH_SHADER.."texture3d.fx" )
    rt.renderTarget dxCreateRenderTargetwhtrue )
    rt.fallback not rt.renderTarget or not rt.shader

    return rt
end

function rt3DDestroyrt )
    if isElementrt.shader then
        destroyElementrt.shader )
        return nil
    end
end

function rt3DSetrt )
    if not rt then return end

    if rt.renderTarget and not rt.fallback then
        dxSetRenderTargetrt.renderTargettrue )
    end
end

function rt3DDrawrtxyw) 
    if rt.fallback then return end

    dxSetShaderValuert.shader"sPicTexture"rt.renderTarget )
    dxDrawImagexywhrt.shader000tocolor255255255245 ), true )
end

function rt3DTransformrtrxryoffset ) 
    if rt.fallback then return end
    if not offset then offset 0 end

    dxSetShaderTransformrt.shaderrxry000offset )
end


PLIK client.lua

local renderTarget false
function login()
        rt3DSetrenderTarget )
        dxDrawImage(00sxsy'img.png'000tocolor(255,255,255255))

        dxSetRenderTarget( )

        if renderTarget then
            rt3DDrawrenderTarget00sxsy )
            local mxmy=getCursorPosition( )

            if isCursorShowing ( ) then
            mx=mx*sx
            my=my*sy

            if not isCursorShowing( ) then
            mxmy=0*sx0*sy
            end

            local rx=-( mx-sx/)/sx*10
            local ry=( my-sy/)/sy*10
    
            rt3DTransformrenderTargetrxry)
        end
    end
end

function startRes()
    addEventHandler('onClientRender'rootlogin)
    showCursor(true)
    if renderTarget then
        rt3DDestroyrenderTarget )
        renderTarget=nil
    end

    renderTarget rt3DCreatesxsy )
    
end
addEventHandler('onClientResourceStart'getRootElement(), startRes)


i texture3d.fx

//
// Example shader - hud_mask.fx
//

#include "matrix.fx"

///////////////////////////////////////////////////////////////////////////////
// Global variables
///////////////////////////////////////////////////////////////////////////////
texture sPicTexture;

float2 gUVPrePosition float20);
float2 gUVScale float);                     // UV scale
float2 gUVScaleCenter float20.50.5 );
float gUVRotAngle float);                   // UV Rotation
float2 gUVRotCenter float20.50.5 );
float2 gUVPosition float20);              // UV position


///////////////////////////////////////////////////////////////////////////////
// Functions
///////////////////////////////////////////////////////////////////////////////


//-------------------------------------------
// Returns UV transform using external settings
//-------------------------------------------
float3x3 getTextureTransform()
{
    return makeTextureTransformgUVPrePositiongUVScalegUVScaleCentergUVRotAnglegUVRotCentergUVPosition );
}

///////////////////////////////////////////////////////////////////////////////
// Techniques
///////////////////////////////////////////////////////////////////////////////
technique hello
{
    pass P0
    {
        // Set up texture stage 0
        Texture[0] = sPicTexture;
        TextureTransform[0] = getTextureTransform();
        TextureTransformFlags[0] = Count2;
        AddressU[0] = Clamp;
        AddressV[0] = Clamp;
        // Color mix texture and diffuse
        ColorOp[0] = Modulate;
        ColorArg1[0] = Texture;
        ColorArg2[0] = Diffuse;
        // Alpha mix texture and diffuse
        AlphaOp[0] = Modulate;
        AlphaArg1[0] = Texture;
        AlphaArg2[0] = Diffuse;
    }
}



Efekt taki sam.
texture3d.fx jako file, RT i client po stronie clitenta + texture3d musisz sobie zmieni? folder

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-12-10, 12:31


xyzzzikk

.gg






Wiek: 18
Na forum: 2774 dni
Posty: 175
Nick w MP: aspyk

Piwa: 6499

Respekt: 30,5

zrobilem tak:
    exports["r_tex3d"]:rt3DSetrenderTarget )
        dxDrawRectangle(screenW 0.2804screenH 0.2930screenW 0.4414screenH 0.0534tocolor(2575125255), false)      
        dxSetRenderTarget( )


na koncu
  if renderTarget then
          exports["r_tex3d"]:rt3DDrawrenderTarget00sxsy )
          local mxmy=getCursorPosition( )
        
          if isCursorShowing ( ) then
          mx=mx*sx
          my=my*sy
        
          if not isCursorShowing( ) then
          mxmy=0*sx0*sy
          end
        
          local rx=-( mx-sx/)/sx*10
          local ry=( my-sy/)/sy*10
        
          exports["r_tex3d"]:rt3DTransformrenderTargetrxry)
        end
        end

oraz
addEventHandler("onClientResourceStart"resourceRoot, function()
  guiSetVisible(uzytkowniktrue)
  guiSetVisible(haslotrue)
  addEventHandler("onClientRender"rootgui)
  showChat(false)
  showCursor(true)
  setPlayerHudComponentVisible("all"false)
  muzyka playSound("muzyka.mp3"true)
  fadeCamera(true)
  triggerServerEvent("sprawdzBana"localPlayer)
  if renderTarget then
    exports["r_tex3d"]: rt3DDestroyrenderTarget )
    renderTarget=nil
end

aa
export w mecie tex3d to tak:
Kod:

<export function="rt3DSet" type="client" />
<export function="rt3DCreate" type="client" />
<export function="rt3DDestroy" type="client" />
<export function="rt3DDraw" type="client" />
<export function="rt3DTransform" type="client" />


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-12-10, 14:53


_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

tworzysz to bez export?w, w mecie na pewno da?e? pierwszy skrypt RT.lua po stronie clienta? musi by? przed.

Postaw piwo autorowi tego posta
 

 
Tagi: efekt :: ruszania
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Odpowiedz do tematu

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