render.SetLightmapTexture

  render.SetLightmapTexture( ITexture tex )

Açıklama

Önümüzdeki görüntüleme işlemlerinde ışık haritası olarak kullanılacak dokuyu belirler. LightmappedGeneric.

Argümanlar

1. Çıkartma tex
Işık haritası olarak kullanılacak doku.

Örnek

Üzerinde LightmappedGeneric malzemesi olan bir ağ oluşturur.

-- Lightmapped, ağ için kullanacağımız genel malzeme. local meshMat = Material( "concrete/concretefloor001a" ) - Mesh zirveleri (MeshVertex yapı biçimi değil, sadece benzer bir şey) -- Fark edin ki 2 UV koordinat kanalımız var, biri doku için bir tanesi ışık haritası için. local meshVertices = { { pos = Vector( 0, 0, 0 ), u0 = 0, v0 = 0, u1 = 0, v1 = 0, n = Vector( 1, 0, 0 ) }, { pos = Vector( 0, 100, 0 ), u0 = 1, v0 = 0, u1 = 3, v1 = 0, n = Vector( 1, 0, 0 ) }, { pos = Vector( 0, 100, -100 ), u0 = 1, v0 = 1, u1 = 3, v1 = 3, n = Vector( 1, 0, 0 ) }, { pos = Vector( 0, 0, -100 ), u0 = 0, v0 = 1, u1 = 0, v1 = 3, n = Vector( 1, 0, 0 ) }, } -- Harita kökeninde ağ oluşturmak için bu komutu çalıştırın. concommand.Add( "meshtest", function() -- Lightmap doku olarak kullanılacak bir render hedefi oluşturmak meshLightmap = GetRenderTarget( "test_mesh_lightmap", 128, 128, false ) -- görselleştirme için bazı şeyler ile ışık haritası doku doldurmak render.PushRenderTarget( meshLightmap ) cam.Start2D() -- Monoton griye ışık haritasını sıfırla render.Clear( 128, 128, 128, 255 ) -- Karanlık bir dikdörtgen çiziyoruz render.SetColorMaterial() surface.SetDrawColor( 80, 80, 80, 255 ) surface.DrawRect( 32, 32, 64, 64 ) -- Ve bazı renk metinleri, neden olmasın! Lightmaps RGB rengi destekler draw.SimpleText( "This is lightmap", "DermaDefault", 64, 64, Color( 255, 0, 0, 255 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER ) cam.End2D() render.PopRenderTarget() Kullanacağınız malzemeyi vermeyi unutmayın. - Malzemenin gölgelemeci, örgü ağının bazı özelliklerini tanımlar. -- özellikle (LightmappedGeneric her bir zirveye 2 UV kanalı depolamasını gerektiriyor, -- örneğin. Bu durum önemlidir) myTestMesh = Mesh( meshMat ) -- Ağı oluşturmak mesh.Begin( myTestMesh, MATERIAL_QUADS, 1 ) for i, vertex in pairs( meshVertices ) do mesh.Position( vertex.pos ) - Yapı koordinatları 0 kanalına gidiyor. mesh.TexCoord( 0, vertex.u0, vertex.v0 ) -- Işık haritası doku koordinatları 1 numaralı kanala gidiyor. mesh.TexCoord( 1, vertex.u1, vertex.v1 ) mesh.Normal( vertex.n ) mesh.AdvanceVertex() end mesh.End() end ) hook.Add( "PostDrawOpaqueRenderables", "LightmappedMeshTest", function() if myTestMesh and myTestMesh ~= NULL then render.SetMaterial( meshMat ) render.SetLightmapTexture( meshLightmap ) myTestMesh:Draw() end end )
Çıkış:

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