public Camera() { uniformBufferGL = new UniformBufferGL(CameraUniformBlock.UniformBlockGL); #if false if (Configuration.useOpenRL) { uniformBufferRL = new UniformBufferRL(CameraUniformBlock.UniformBlockRL); } #endif parameters = new CameraParameters(uniformBufferGL /*uniformBufferRL*/); }
//public static UniformBufferRL UniformBufferRL; public static void Initialize( string blockName, int maxLightCount ) { UniformBlockGL = new UniformBlockGL(blockName); UniformBlockGL.AddInt(spec.Count); UniformBlockGL.AddVec4(spec.Exposure); UniformBlockGL.AddVec4(spec.Bias); UniformBlockGL.AddVec4(spec.AmbientLightColor); UniformBlockGL.AddVec4(spec.Color, maxLightCount); UniformBlockGL.AddVec4(spec.Direction, maxLightCount); UniformBlockGL.AddMat4(spec.WorldToLight, maxLightCount); UniformBlockGL.AddMat4(spec.WorldToShadow, maxLightCount); UniformBlockGL.Seal(); var bufferGL = UniformBufferGL = new UniformBufferGL(UniformBlockGL); #if false IUniformBuffer bufferRL = null; if (Configuration.useOpenRL) { UniformBlockRL = new UniformBlockRL(blockName); UniformBlockRL.AddInt(spec.Count); UniformBlockRL.AddVec4(spec.Exposure); UniformBlockRL.AddVec4(spec.Bias); UniformBlockRL.AddVec4(spec.AmbientLightColor); UniformBlockRL.AddVec4(spec.Color, maxLightCount); UniformBlockRL.AddVec4(spec.Direction, maxLightCount); UniformBlockRL.AddMat4(spec.WorldToLight, maxLightCount); UniformBlockRL.AddMat4(spec.WorldToShadow, maxLightCount); UniformBlockRL.Seal(); UniformBufferRL = new UniformBufferRL(UniformBlockRL); } #endif Count = new MultiInts(spec.Count, new Ints(1, 1), bufferGL /*bufferRL*/); Exposure = new MultiFloats(spec.Exposure, new Floats(4, 1), bufferGL /*bufferRL*/); Bias = new MultiFloats(spec.Bias, new Floats(4, 1), bufferGL /*bufferRL*/); AmbientLightColor = new MultiFloats(spec.AmbientLightColor, new Floats(4, 1), bufferGL /*bufferRL*/); WorldToLight = new MultiFloats(spec.WorldToLight, new Floats(16, maxLightCount), bufferGL /*bufferRL*/); WorldToShadow = new MultiFloats(spec.WorldToShadow, new Floats(16, maxLightCount), bufferGL /*bufferRL*/); Direction = new MultiFloats(spec.Direction, new Floats(4, maxLightCount), bufferGL /*bufferRL*/); Color = new MultiFloats(spec.Color, new Floats(4, maxLightCount), bufferGL /*bufferRL*/); }