public Entities(GLProgram program, SceneGraph scene) : base(program) { var numPointLights = 0; var plights = new LightingShaders.PointLight[4]; using (program.Scope()) { foreach (var pointLight in scene.Root.Traverse().OfType <PointLight> ()) { plights[numPointLights++] = new LightingShaders.PointLight { position = pointLight.Position, intensity = pointLight.Intensity, linearAttenuation = pointLight.LinearAttenuation, quadraticAttenuation = pointLight.QuadraticAttenuation }; } pointLights &= plights; var samp = new Sampler2D[4]; for (int i = 0; i < samp.Length; i++) { samp[i] = new Sampler2D(i + 1).LinearFiltering().ClampToEdges(Axes.All); } samplers &= samp; diffuseMap &= new SamplerCube(5).LinearFiltering().ClampToEdges(Axes.All); lighting = new LightingUniforms(program, scene); transforms = new TransformUniforms(program); shadows = new CascadedShadowUniforms(program, new Sampler2DArray(0).LinearFiltering().ClampToEdges(Axes.All)); } }
public Materials(GLProgram program) : base(program) { using (program.Scope()) { transforms = new TransformUniforms(program); diffuseMap &= new Sampler2D(0).LinearFiltering(); normalMap &= new Sampler2D(1).LinearFiltering(); heightMap &= new Sampler2D(2).LinearFiltering(); } }
private Terrain(GLProgram program, SceneGraph scene, Vec3 skyCol) : base(program) { transforms = new TransformUniforms(program); lighting = new LightingUniforms(program, scene); shadows = new CascadedShadowUniforms(program, new Sampler2DArray(0).LinearFiltering().ClampToEdges(Axes.All)); using (program.Scope()) { skyColor &= skyCol; sandSampler &= new Sampler2D(1); rockSampler &= new Sampler2D(2); grassSampler &= new Sampler2D(3); } }
private Panels() { texture = new TextureUniforms(_panelShader, new Sampler2D(0).NearestColor() .ClampToEdges(Axes.X | Axes.Y)); transform = new TransformUniforms(_panelShader); }
private MaterialPanels(GLProgram program) : base(program) { Texture = new TextureUniforms(_panelShader, new Sampler2D(0).NearestColor()); Transform = new TransformUniforms(_panelShader); }
public Materials(GLProgram program) : base(program) { using (program.Scope ()) { transforms = new TransformUniforms (program); diffuseMap &= new Sampler2D (0).LinearFiltering ().ClampToEdges (Axes.All); normalMap &= new Sampler2D (1).LinearFiltering ().ClampToEdges (Axes.All); } }