33 lines
1.0 KiB
Python
33 lines
1.0 KiB
Python
|
|
from __future__ import division, print_function
|
|
|
|
from panda3d.core import PNMImage, Vec3
|
|
|
|
|
|
def approx(roughness):
|
|
return 1.0 - 0.5 * roughness
|
|
|
|
for i in range(11):
|
|
r = i / 10.0
|
|
fname = "batch_compare/Gold-R" + str(r) + ".png"
|
|
|
|
img = PNMImage(fname)
|
|
# color = (img.get_xel(img.get_x_size() // 2 + 3, img.get_y_size() // 2))
|
|
color = (img.get_xel(256, 47))
|
|
|
|
color.x = pow(color.x, 2.2)
|
|
color.y = pow(color.y, 2.2)
|
|
color.z = pow(color.z, 2.2)
|
|
|
|
# print(color)
|
|
|
|
basecolor = Vec3(1, 0.867136, 0.358654)
|
|
|
|
ref_r, apprx_r = color.x, approx(r) * (0.5 + 0.5 * basecolor.x)
|
|
ref_g, apprx_g = color.y, approx(r) * (0.5 + 0.5 * basecolor.y)
|
|
ref_b, apprx_b = color.z, approx(r) * (0.5 + 0.5 * basecolor.z)
|
|
print("Roughness:", r, ", color = ", ref_r, ref_g, ref_b, "vs", apprx_r, apprx_g, apprx_b)
|
|
l = abs(ref_r - apprx_r) + abs(ref_g - apprx_g) + abs(ref_b - apprx_b)
|
|
print(" --> ", l)
|
|
# print("Roughness:", r, ", color = ", ref, "vs", apprx, " =\t", abs(ref - apprx) * 100.0)
|