コード例 #1
0
ファイル: frag.c プロジェクト: zx-zheng/visShadow
/*-----------------------------------------------------------------*
  Color Red-Green  Shade Blue-Yellow+L
 *-----------------------------------------------------------------*/
vec3 valuetoshadowcolorRGshadeBYL(float value, float shadewide, float shadow){
  float l = L + shadewide *shaderange*1*1 - shadowrange*(1-shadow) * 1;
  float a = (value-0.5)* lab_a * 1, b = 1*lab_b* shadewide * 1;
  vec3 xyz = LabtoXYZ(l,a,b);
  //return vec3(l/100);
  return RGBnonlinearRGB(XYZtoRGB(xyz));
}
コード例 #2
0
ファイル: frag.c プロジェクト: zx-zheng/visShadow
vec3 valuetocolor(float value){
  float lab_a = 0.7, lab_b = 0.5, lab_c = 0.7, lab_d = 0.6;
  float labangle = 
    radians(lab_a*100.0+(270.0-lab_a*100.0+(lab_b-0.5)*100.0)*(1.0-value));
  vec3 xyz = LabtoXYZ(lab_d*100.0,
		      (value-0.5)*30 + 0*lab_c*100.0*cos(labangle),
		      0*lab_c*100.0*sin(labangle));
  vec3 rgb = XYZtoRGB(xyz);
  return RGBnonlinearRGB(rgb);
}
コード例 #3
0
ファイル: fragshadow.c プロジェクト: zx-zheng/visShadow
void main(){
  vec2 shadowTexCoord = Geom.screentexcoord * 0.5 + 0.5;
  shadowTexCoord.y = 1 - shadowTexCoord.y;
  shadowTexCoord *= shadowTexCoordSize;
  float shadow =  texture(shadowTex, shadowTexCoord).x;
  Color =
    vec4
    (RGBnonlinearRGB
	 (XYZtoRGB
	  (LabtoXYZ
	   (inColorLab.x - shadowRange * (1 - shadow), 
	    inColorLab.y, 
	    inColorLab.z))), 1);
}
コード例 #4
0
void ColorSpace::LabtoXYZ (CoImage* pIn, CoImage* pOut)
{
	assert (pIn->GetType() == MAT_Tfloat);
	assert (pOut->GetType() == MAT_Tfloat);
	float* prX = pIn->m_matX.data.fl[0];
	float* prY = pIn->m_matY.data.fl[0];
	float* prZ = pIn->m_matZ.data.fl[0];
	
	float* pbR = pOut->m_matX.data.fl[0];
	float* pbG = pOut->m_matY.data.fl[0];
	float* pbB = pOut->m_matZ.data.fl[0];
	
	for (int i = 0; i < pIn->GetHeight() * pIn->GetWidth(); i ++)
	{
		LabtoXYZ(prX[i], prY[i], prZ[i], &pbR[i], &pbG[i], &pbB[i]);
	}
}
コード例 #5
0
/// <summary>
/// Converts CIELab to RGB.
/// </summary>
void ColorSpace::LabtoRGB(float l, float a, float b, BYTE* red, BYTE* green, BYTE* blue)
{
	float x,y,z;
	LabtoXYZ(l, a, b, &x,&y,&z);
	XYZtoRGB(x,y,z,red,green,blue);
}
コード例 #6
0
ファイル: Image.cpp プロジェクト: NanYoMy/ImageAbstraction
void Image::LabtoRGB(pixel3f *source, pixel4b *destination)
{
	LabtoXYZ(source);
	XYZtoRGB(source, destination);
}
コード例 #7
0
ファイル: frag.c プロジェクト: zx-zheng/visShadow
/*-----------------------------------------------------------------*
  Color Red-Green
 *-----------------------------------------------------------------*/
vec3 valuetoshadowcolorRG(float shadow, float value){
  float l = 75 - 40*(1-shadow), a = (value-0.5)*100*1.4, b = 0;
  vec3 xyz = LabtoXYZ(l,a,b);
  return RGBnonlinearRGB(XYZtoRGB(xyz));
}
コード例 #8
0
ファイル: frag.c プロジェクト: zx-zheng/visShadow
vec3 valuetocolorRG(float value){
  float l = 75, a = (value-0.5)*100*1.4, b = 0;
  vec3 xyz = LabtoXYZ(l,a,b);
  return RGBnonlinearRGB(XYZtoRGB(xyz))+vec3(0.1,0.1,0);
}
コード例 #9
0
ファイル: frag.c プロジェクト: zx-zheng/visShadow
vec3 valuetocolorYB(float value){
  float l = 75, a = 0, b = (value-0.5)*100;
  vec3 xyz = LabtoXYZ(l,a,b);
  return RGBnonlinearRGB(XYZtoRGB(xyz));
}
コード例 #10
0
ファイル: frag.c プロジェクト: zx-zheng/visShadow
/*-----------------------------------------------------------------*
  Color Red-Green  Shade Blue-Yellow b
 *-----------------------------------------------------------------*/
vec3 valuetoshadowcolorRGshadeBY(float value, float shadewide, float shadow){
  float l = 75 - 30*(1-shadow), 
    a = (value-0.5)*100*1.4 * 0, b = -shadewide * 0;
  vec3 xyz = LabtoXYZ(l,a,b);
  return RGBnonlinearRGB(XYZtoRGB(xyz));
}