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 ORANGE = vec3(0.8, 0.4, 0.0);
|
||||||
const vec3 LightRed = vec3(0.78, 0.0, 0.0);
|
const vec3 LightRed = vec3(0.78, 0.0, 0.0);
|
||||||
const vec3 LightBlue = vec3(0.73, 1.0, 1.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;
|
uniform vec4 uniform_color;
|
||||||
|
|
||||||
varying vec3 clipping_planes_dots;
|
varying vec3 clipping_planes_dots;
|
||||||
|
@ -75,15 +78,15 @@ void main()
|
||||||
vec3 transformed_normal = normalize(slope.volume_world_normal_matrix * triangle_normal);
|
vec3 transformed_normal = normalize(slope.volume_world_normal_matrix * triangle_normal);
|
||||||
|
|
||||||
if (slope.actived) {
|
if (slope.actived) {
|
||||||
if(world_pos.z<0.1&&world_pos.z>-0.1)
|
alpha = 1.0;
|
||||||
{
|
if(abs(world_pos.z) < 0.1){
|
||||||
color = LightBlue;
|
color = LightBlue;
|
||||||
alpha = 1.0;
|
}
|
||||||
}
|
else if( transformed_normal.z < slope.normal_z - EPSILON){
|
||||||
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);
|
||||||
color = color * 0.7 + LightRed * 0.3;
|
vec3 temp_color = (x_flag^^y_flag) ? COLOR_A : COLOR_B;
|
||||||
alpha = 1.0;
|
color = mix(color,temp_color,0.2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,7 +108,7 @@ void main()
|
||||||
intensity.x += NdotL * LIGHT_FRONT_DIFFUSE;
|
intensity.x += NdotL * LIGHT_FRONT_DIFFUSE;
|
||||||
|
|
||||||
if (show_wireframe) {
|
if (show_wireframe) {
|
||||||
vec3 wireframeColor = show_wireframe ? getWireframeColor(color) : color;
|
vec3 wireframeColor = getWireframeColor(color);
|
||||||
vec3 triangleColor = wireframe(color, wireframeColor, 1.0);
|
vec3 triangleColor = wireframe(color, wireframeColor, 1.0);
|
||||||
gl_FragColor = vec4(vec3(intensity.y) + triangleColor * intensity.x, alpha);
|
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 ORANGE = vec3(0.8, 0.4, 0.0);
|
||||||
const vec3 LightRed = vec3(0.78, 0.0, 0.0);
|
const vec3 LightRed = vec3(0.78, 0.0, 0.0);
|
||||||
const vec3 LightBlue = vec3(0.73, 1.0, 1.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;
|
uniform vec4 uniform_color;
|
||||||
|
|
||||||
in vec3 clipping_planes_dots;
|
in vec3 clipping_planes_dots;
|
||||||
|
@ -77,15 +80,15 @@ void main()
|
||||||
vec3 transformed_normal = normalize(slope.volume_world_normal_matrix * triangle_normal);
|
vec3 transformed_normal = normalize(slope.volume_world_normal_matrix * triangle_normal);
|
||||||
|
|
||||||
if (slope.actived) {
|
if (slope.actived) {
|
||||||
if(world_pos.z<0.1&&world_pos.z>-0.1)
|
alpha = 1.0;
|
||||||
{
|
if(abs(world_pos.z) < 0.1){
|
||||||
color = LightBlue;
|
color = LightBlue;
|
||||||
alpha = 1.0;
|
}
|
||||||
}
|
else if( transformed_normal.z < slope.normal_z - EPSILON){
|
||||||
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);
|
||||||
color = color * 0.7 + LightRed * 0.3;
|
vec3 temp_color = (x_flag^^y_flag) ? COLOR_A : COLOR_B;
|
||||||
alpha = 1.0;
|
color = mix(color,temp_color,0.2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,7 +110,7 @@ void main()
|
||||||
intensity.x += NdotL * LIGHT_FRONT_DIFFUSE;
|
intensity.x += NdotL * LIGHT_FRONT_DIFFUSE;
|
||||||
|
|
||||||
if (show_wireframe) {
|
if (show_wireframe) {
|
||||||
vec3 wireframeColor = show_wireframe ? getWireframeColor(color) : color;
|
vec3 wireframeColor = getWireframeColor(color);
|
||||||
vec3 triangleColor = wireframe(color, wireframeColor, 1.0);
|
vec3 triangleColor = wireframe(color, wireframeColor, 1.0);
|
||||||
frag_color = vec4(vec3(intensity.y) + triangleColor * intensity.x, alpha);
|
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));
|
glsafe(::glGetShaderiv(id, GL_INFO_LOG_LENGTH, ¶ms));
|
||||||
std::vector<char> msg(params);
|
std::vector<char> msg(params);
|
||||||
glsafe(::glGetShaderInfoLog(id, params, ¶ms, msg.data()));
|
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
|
||||||
release_shaders(shader_ids);
|
release_shaders(shader_ids);
|
||||||
|
|
Loading…
Reference in New Issue