- Timestamp:
- Jan 24, 2013, 12:26:16 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lol/image/color.h
r2219 r2271 89 89 float K = 0.f; 90 90 91 if (src. g < src.b)91 if (src.b - src.g > 1e-20f) 92 92 src = src.rbg, K = -1.f; 93 93 94 if (src. r < src.g)94 if (src.g - src.r > 1e-20f) 95 95 src = src.grb, K = -2.f / 6.f - K; 96 96 … … 113 113 float K = 0.f; 114 114 115 if (src.g < src.b) 115 /* FIXME: this appears to be needed for numerical stability on 116 * i386 hardware using -ffast-math. Otherwise if (src.g < src.b) 117 * would suffice. */ 118 if (src.b - src.g > 1e-20f) 116 119 src = src.rbg, K = -1.f; 117 120 118 if (src. r < src.g)121 if (src.g - src.r > 1e-20f) 119 122 src = src.grb, K = -2.f / 6.f - K; 120 123 … … 137 140 { 138 141 float tmp = (2 - src.y) * src.z; 139 return vec3(src.x, src.y * src.z / (1.f - abs(1.f - tmp)), 0.5f * tmp); 142 return vec3(src.x, 143 src.y * src.z / (min(tmp, 2.f - tmp) + 1e-20f), 144 0.5f * tmp); 140 145 } 141 146 … … 151 156 { 152 157 float tmp = src.y * (0.5f - abs(0.5f - src.z)); 153 return vec3(src.x, 2.f * tmp / (src.z + tmp ), src.z + tmp);158 return vec3(src.x, 2.f * tmp / (src.z + tmp + 1e-20f), src.z + tmp); 154 159 } 155 160
Note: See TracChangeset
for help on using the changeset viewer.