def test_spectrum_to_rgb2(self): mgr = ColorManager() runtime = Runtime() mgr.to_RGB_asm([runtime], 'spectrum_to_rgb') spec1 = mgr.create_spectrum((0.66,0.88, 0.11)) mc = create_assembler().assemble(self.asm_code1(mgr)) ds = runtime.load("test", mc) ds["sp1.values"] = spec1.to_ds() runtime.run("test") rgb = mgr.to_RGB(spec1) rgb2 = ds['rgb'] self.assertAlmostEqual(rgb.r, rgb2[0], 4) self.assertAlmostEqual(rgb.g, rgb2[1], 4) self.assertAlmostEqual(rgb.b, rgb2[2], 4)
def test_spectrum_to_rgb2(self): mgr = ColorManager() runtime = Runtime() mgr.to_RGB_asm([runtime], 'spectrum_to_rgb') spec1 = mgr.create_spectrum((0.66, 0.88, 0.11)) mc = create_assembler().assemble(self.asm_code1(mgr)) ds = runtime.load("test", mc) ds["sp1.values"] = spec1.to_ds() runtime.run("test") rgb = mgr.to_RGB(spec1) rgb2 = ds['rgb'] self.assertAlmostEqual(rgb.r, rgb2[0], 4) self.assertAlmostEqual(rgb.g, rgb2[1], 4) self.assertAlmostEqual(rgb.b, rgb2[2], 4)
def test_sampled_spec_to_rgb(self): code = """ vec = spectrum_to_rgb(spec1) """ col_mgr = ColorManager(spectral=True) rgb = col_mgr.create_spectrum((0.2, 0.3, 0.2)) vec = Vector3(0.0, 0.0, 0.0) props = {'spec1': rgb, 'vec': vec} bs = BasicShader(code, props, col_mgr=col_mgr) runtime = Runtime() bs.prepare([runtime]) #print (bs.shader._code) bs.execute() val = bs.shader.get_value('vec') val2 = col_mgr.to_RGB(rgb) self.assertAlmostEqual(val.x, val2.r, places=5) self.assertAlmostEqual(val.y, val2.g, places=5) self.assertAlmostEqual(val.z, val2.b, places=5)
def test_sampled_spec_to_rgb(self): code = """ vec = spectrum_to_rgb(spec1) """ col_mgr = ColorManager(spectral=True) rgb = col_mgr.create_spectrum((0.2, 0.3, 0.2)) vec = Vector3(0.0, 0.0, 0.0) props = {'spec1':rgb, 'vec':vec} bs = BasicShader(code, props, col_mgr=col_mgr) runtime = Runtime() bs.prepare([runtime]) #print (bs.shader._code) bs.execute() val = bs.shader.get_value('vec') val2 = col_mgr.to_RGB(rgb) self.assertAlmostEqual(val.x, val2.r, places=5) self.assertAlmostEqual(val.y, val2.g, places=5) self.assertAlmostEqual(val.z, val2.b, places=5)