ENH:overhang use chess to render
jira: none Change-Id: I6acf6046a57c6378de2dbe0f0d831d50cef595e5 (cherry picked from commit 3fc313b3dd9d39340907fbfe7dd48f710169e3ca)
This commit is contained in:
parent
e1bc737d1c
commit
998d0322d1
|
@ -21,6 +21,9 @@ const float EPSILON = 0.0001;
|
|||
const vec3 ORANGE = vec3(0.8, 0.4, 0.0);
|
||||
const vec3 LightRed = vec3(0.78, 0.0, 0.0);
|
||||
const vec3 LightBlue = vec3(0.73, 1.0, 1.0);
|
||||
const float CHESS_WIDTH = 2.0;
|
||||
const vec3 COLOR_A = vec3(0.8, 0.8, 0.8);
|
||||
const vec3 COLOR_B = vec3(0.1, 0.1, 0.1);
|
||||
uniform vec4 uniform_color;
|
||||
|
||||
varying vec3 clipping_planes_dots;
|
||||
|
@ -75,15 +78,15 @@ void main()
|
|||
vec3 transformed_normal = normalize(slope.volume_world_normal_matrix * triangle_normal);
|
||||
|
||||
if (slope.actived) {
|
||||
if(world_pos.z<0.1&&world_pos.z>-0.1)
|
||||
{
|
||||
color = LightBlue;
|
||||
alpha = 1.0;
|
||||
}
|
||||
else if( transformed_normal.z < slope.normal_z - EPSILON)
|
||||
{
|
||||
color = color * 0.7 + LightRed * 0.3;
|
||||
alpha = 1.0;
|
||||
alpha = 1.0;
|
||||
if(abs(world_pos.z) < 0.1){
|
||||
color = LightBlue;
|
||||
}
|
||||
else if( transformed_normal.z < slope.normal_z - EPSILON){
|
||||
bool x_flag = mod(world_pos.x, CHESS_WIDTH) < (CHESS_WIDTH / 2.0);
|
||||
bool y_flag = mod(world_pos.y, CHESS_WIDTH) < (CHESS_WIDTH / 2.0);
|
||||
vec3 temp_color = (x_flag^^y_flag) ? COLOR_A : COLOR_B;
|
||||
color = mix(color,temp_color,0.2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -105,7 +108,7 @@ void main()
|
|||
intensity.x += NdotL * LIGHT_FRONT_DIFFUSE;
|
||||
|
||||
if (show_wireframe) {
|
||||
vec3 wireframeColor = show_wireframe ? getWireframeColor(color) : color;
|
||||
vec3 wireframeColor = getWireframeColor(color);
|
||||
vec3 triangleColor = wireframe(color, wireframeColor, 1.0);
|
||||
gl_FragColor = vec4(vec3(intensity.y) + triangleColor * intensity.x, alpha);
|
||||
}
|
||||
|
|
|
@ -21,6 +21,9 @@ const float EPSILON = 0.0001;
|
|||
const vec3 ORANGE = vec3(0.8, 0.4, 0.0);
|
||||
const vec3 LightRed = vec3(0.78, 0.0, 0.0);
|
||||
const vec3 LightBlue = vec3(0.73, 1.0, 1.0);
|
||||
const float CHESS_WIDTH = 2.0;
|
||||
const vec3 COLOR_A = vec3(0.8, 0.8, 0.8);
|
||||
const vec3 COLOR_B = vec3(0.1, 0.1, 0.1);
|
||||
uniform vec4 uniform_color;
|
||||
|
||||
in vec3 clipping_planes_dots;
|
||||
|
@ -77,15 +80,15 @@ void main()
|
|||
vec3 transformed_normal = normalize(slope.volume_world_normal_matrix * triangle_normal);
|
||||
|
||||
if (slope.actived) {
|
||||
if(world_pos.z<0.1&&world_pos.z>-0.1)
|
||||
{
|
||||
color = LightBlue;
|
||||
alpha = 1.0;
|
||||
}
|
||||
else if( transformed_normal.z < slope.normal_z - EPSILON)
|
||||
{
|
||||
color = color * 0.7 + LightRed * 0.3;
|
||||
alpha = 1.0;
|
||||
alpha = 1.0;
|
||||
if(abs(world_pos.z) < 0.1){
|
||||
color = LightBlue;
|
||||
}
|
||||
else if( transformed_normal.z < slope.normal_z - EPSILON){
|
||||
bool x_flag = mod(world_pos.x, CHESS_WIDTH) < (CHESS_WIDTH / 2.0);
|
||||
bool y_flag = mod(world_pos.y, CHESS_WIDTH) < (CHESS_WIDTH / 2.0);
|
||||
vec3 temp_color = (x_flag^^y_flag) ? COLOR_A : COLOR_B;
|
||||
color = mix(color,temp_color,0.2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -107,7 +110,7 @@ void main()
|
|||
intensity.x += NdotL * LIGHT_FRONT_DIFFUSE;
|
||||
|
||||
if (show_wireframe) {
|
||||
vec3 wireframeColor = show_wireframe ? getWireframeColor(color) : color;
|
||||
vec3 wireframeColor = getWireframeColor(color);
|
||||
vec3 triangleColor = wireframe(color, wireframeColor, 1.0);
|
||||
frag_color = vec4(vec3(intensity.y) + triangleColor * intensity.x, alpha);
|
||||
}
|
||||
|
|
|
@ -145,7 +145,8 @@ bool GLShaderProgram::init_from_texts(const std::string& name, const ShaderSourc
|
|||
glsafe(::glGetShaderiv(id, GL_INFO_LOG_LENGTH, ¶ms));
|
||||
std::vector<char> msg(params);
|
||||
glsafe(::glGetShaderInfoLog(id, params, ¶ms, msg.data()));
|
||||
BOOST_LOG_TRIVIAL(error) << "Unable to compile " << shader_type_as_string(type) << " shader of shader program '" << name << "':\n" << msg.data();
|
||||
std::string error_info = msg.data();
|
||||
BOOST_LOG_TRIVIAL(error) << "Unable to compile " << shader_type_as_string(type) << " shader of shader program '" << name << "':\n" << error_info;
|
||||
|
||||
// release shaders
|
||||
release_shaders(shader_ids);
|
||||
|
|
Loading…
Reference in New Issue