render.SetLightmapTexture
Açıklama
Önümüzdeki görüntüleme işlemlerinde ışık haritası olarak kullanılacak dokuyu belirler. LightmappedGeneric.
Argümanlar
Ö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