g_sky
Açıklama
Bu shader, özellikle haritalarla, bilhassa küp haritalarla (yukarı, aşağı, ön, arka, sol, sağ) kullanılmak üzere tasarlanmıştır. Bir haritanın atmosferini değiştirmeye olanak tanırlar.
Parametreler
number starpos
Yıldız dokusunun kaydırma konumu. Doku kaydırma için kullanılır. Herhangi bir değer olabilir
number starlayers
Kaç katman yıldızın işleneceğini belirtir. 0 ile 4 arasında değerler kabul eder. 0, hiç yıldız işlenmeyeceği anlamına gelir
Örnek
Bu shader ile bir materyalin nasıl oluşturulacağını ve işleneceğini gösteren temel bir örnek.
Bu özel örnek, mevcut gökyüzü kutusunun (skybox) üzerine özel bir gökyüzü kutusu çizer.
Örnek olarak g_Sky'nin varsayılan parametrelerini kullanır.
local sky_material = CreateMaterial("g_Sky_example", "g_Sky", {
["$topcolor"] = "[0 0 1]",
["$bottomcolor"] = "[0 1 1]",
["$fadebias"] = "1.0",
["$hdrscale"] = "1.0",
["$sunnormal"] = "[0 1 0.5]",
["$duskcolor"] = "[1 0.4 0]",
["$duskscale"] = "1",
["$duskintensity"] = "1.0",
["$suncolor"] = "[1 1 1]",
["$sunsize"] = "1",
["$startexture"] = "skybox/starfield",
["$starfade"] = "1",
["$starscale"] = "1",
["$starpos"] = "1",
["$starlayers"] = "0"
})
local maxs = Vector(64, 64, 64)
local mins = -maxs
hook.Add("PostDrawTranslucentRenderables", "", function(a, b, c)
if b or c then
local sun_info = util.GetSunInfo()
sky_material:SetVector("$sunnormal", sun_info.direction)
cam.Start3D(vector_origin, EyeAngles())
render.SetMaterial(sky_material)
cam.IgnoreZ(true)
-- Kutunun içeriden dışarıya doğru işlenmesi için mins ve maxs değerleri değiştirildi
render.DrawBox(vector_origin, angle_zero, maxs, mins, color_white)
cam.IgnoreZ(false)
cam.End3D()
end
end)
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord