render.PushRenderTarget

  render.PushRenderTarget( ITexture texture = nil, number x = 0, number y = 0, number w = texture:Width(), number h = texture:Height() )

Açıklama

Mevcut render hedefini ve viewport'u RT yığınına iter, ardından yeni bir render hedefi ve viewport belirler. Eğer viewport belirtilmezse, bunun yerine render hedefinin boyutları kullanılır.

Bu, mevcut render hedefinin ve viewport'un önceden kaydedildiği render.SetRenderTarget ve render.SetViewPort çağrılarına benzer, ancak viewport ekran sınırlarına kırpılmaz.

Ayrıca bakınız: render.PopRenderTarget.

Eğer render hedefine 2D modunda render yapmak istiyorsanız ve ekranla aynı boyutta değilse, cam.Start2D ve cam.End2D kullanın.
Eğer render hedefi ekrandan daha büyükse, surface kütüphanesi ile yapılan render'lama, DisableClipping fonksiyonunu çağırmadığınız sürece ekran sınırlarına kırpılacaktır.

Argümanlar

1 ITexture texture = nil
Kullanılacak yeni render hedefi.
Ana oyun çerçeve arabelleğini (frame buffer) itmek için nil olarak ayarlanabilir.
2 number x = 0
Viewport'un X başlangıç noktası.
3 number y = 0
Viewport'un Y başlangıç noktası.
4 number w = texture:Width()
Viewport'un genişliği.
5 number h = texture:Height()
Viewport'un yüksekliği

Örnek

Özel oluşturulmuş bir Render Target dokusu kullanan bir materyalin nasıl oluşturulacağını gösterir.

-- Render hedefini oluştur local exampleRT = GetRenderTarget( "example_rt", 1024, 1024 ) -- Render hedefine çizim yap render.PushRenderTarget( exampleRT ) cam.Start2D() -- Arka planı çiz surface.SetDrawColor( 0, 0, 0, 255 ) surface.DrawRect( 0, 0, 1024, 1024 ) -- Ön plana bazı şeyler çiz surface.SetDrawColor( 255, 0, 0, 255 ) surface.DrawRect( 0, 0, 256, 256 ) cam.End2D() render.PopRenderTarget() local customMaterial = CreateMaterial( "example_rt_mat", "UnlitGeneric", { ["$basetexture"] = exampleRT:GetName(), -- "example_rt" de kullanabilirsiniz ["$translucent"] = 1, ["$vertexcolor"] = 1 } ) hook.Add( "HUDPaint", "ExampleDraw", function() surface.SetDrawColor( 255, 255, 255, 255 ) surface.SetMaterial( customMaterial ) surface.DrawTexturedRect( 0, 0, customMaterial:GetTexture( "$basetexture" ):Width(), customMaterial:GetTexture( "$basetexture" ):Height() ) end )
Çıktı: Sol üst köşenizde çizilmiş, sol üst köşesinde 256x256 boyutunda kırmızı bir kare bulunan, 1024x1024 boyutunda siyah bir render hedefi.

Örnek

Render hedefleriyle alfa kanalını nasıl kullanabileceğinizi gösterir.

render.PushRenderTarget( texture ) render.OverrideAlphaWriteEnable( true, true ) render.ClearDepth() render.Clear( 0, 0, 0, 0 ) -- Buraya bir şeyler çizin render.OverrideAlphaWriteEnable( false ) render.PopRenderTarget()

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord