FIX:add new light for text shape
Jira: STUDIO-2623 Change-Id: I3a189154455040e8c2cb41ff8d8ac065661406ad (cherry picked from commit 5854839c8f552b136cca6b3ff75605fa1e696fd0)
This commit is contained in:
parent
c631a69c32
commit
bcd8c90b4f
|
@ -14,6 +14,9 @@ const vec3 LIGHT_FRONT_DIR = vec3(0.6985074, 0.1397015, 0.6985074);
|
||||||
//#define LIGHT_FRONT_SPECULAR (0.0 * INTENSITY_CORRECTION)
|
//#define LIGHT_FRONT_SPECULAR (0.0 * INTENSITY_CORRECTION)
|
||||||
//#define LIGHT_FRONT_SHININESS 5.0
|
//#define LIGHT_FRONT_SHININESS 5.0
|
||||||
|
|
||||||
|
const vec3 LIGHT_BACK_DIR = vec3(0.1397015, 0.6985074,0.6985074);
|
||||||
|
#define LIGHT_BACK_DIFFUSE (0.3 * INTENSITY_CORRECTION)
|
||||||
|
|
||||||
#define INTENSITY_AMBIENT 0.3
|
#define INTENSITY_AMBIENT 0.3
|
||||||
|
|
||||||
const vec3 ZERO = vec3(0.0, 0.0, 0.0);
|
const vec3 ZERO = vec3(0.0, 0.0, 0.0);
|
||||||
|
@ -32,7 +35,7 @@ uniform SlopeDetection slope;
|
||||||
uniform vec2 z_range;
|
uniform vec2 z_range;
|
||||||
// Clipping plane - general orientation. Used by the SLA gizmo.
|
// Clipping plane - general orientation. Used by the SLA gizmo.
|
||||||
uniform vec4 clipping_plane;
|
uniform vec4 clipping_plane;
|
||||||
|
uniform bool is_text_shape;
|
||||||
// x = diffuse, y = specular;
|
// x = diffuse, y = specular;
|
||||||
varying vec2 intensity;
|
varying vec2 intensity;
|
||||||
|
|
||||||
|
@ -59,7 +62,11 @@ void main()
|
||||||
// Perform the same lighting calculation for the 2nd light source (no specular applied).
|
// Perform the same lighting calculation for the 2nd light source (no specular applied).
|
||||||
NdotL = max(dot(eye_normal, LIGHT_FRONT_DIR), 0.0);
|
NdotL = max(dot(eye_normal, LIGHT_FRONT_DIR), 0.0);
|
||||||
intensity.x += NdotL * LIGHT_FRONT_DIFFUSE;
|
intensity.x += NdotL * LIGHT_FRONT_DIFFUSE;
|
||||||
|
|
||||||
|
if(is_text_shape){
|
||||||
|
NdotL = max(dot(eye_normal, LIGHT_BACK_DIR), 0.0);
|
||||||
|
intensity.x += NdotL * LIGHT_BACK_DIFFUSE;
|
||||||
|
}
|
||||||
model_pos = gl_Vertex;
|
model_pos = gl_Vertex;
|
||||||
// Point in homogenous coordinates.
|
// Point in homogenous coordinates.
|
||||||
world_pos = volume_world_matrix * gl_Vertex;
|
world_pos = volume_world_matrix * gl_Vertex;
|
||||||
|
|
|
@ -1083,6 +1083,7 @@ int GLVolumeCollection::load_object_volume(
|
||||||
GLVolume& v = *this->volumes.back();
|
GLVolume& v = *this->volumes.back();
|
||||||
v.set_color(color_from_model_volume(*model_volume));
|
v.set_color(color_from_model_volume(*model_volume));
|
||||||
v.name = model_volume->name;
|
v.name = model_volume->name;
|
||||||
|
v.is_text_shape = model_volume->get_text_info().m_text.empty();
|
||||||
#if ENABLE_SMOOTH_NORMALS
|
#if ENABLE_SMOOTH_NORMALS
|
||||||
v.indexed_vertex_array.load_mesh(mesh, true);
|
v.indexed_vertex_array.load_mesh(mesh, true);
|
||||||
#else
|
#else
|
||||||
|
@ -1322,6 +1323,7 @@ void GLVolumeCollection::render(
|
||||||
glsafe(::glEnableClientState(GL_VERTEX_ARRAY));
|
glsafe(::glEnableClientState(GL_VERTEX_ARRAY));
|
||||||
glsafe(::glEnableClientState(GL_NORMAL_ARRAY));
|
glsafe(::glEnableClientState(GL_NORMAL_ARRAY));
|
||||||
|
|
||||||
|
shader->set_uniform("is_text_shape", volume.first->is_text_shape);
|
||||||
shader->set_uniform("uniform_color", volume.first->render_color);
|
shader->set_uniform("uniform_color", volume.first->render_color);
|
||||||
shader->set_uniform("z_range", m_z_range, 2);
|
shader->set_uniform("z_range", m_z_range, 2);
|
||||||
shader->set_uniform("clipping_plane", m_clipping_plane, 4);
|
shader->set_uniform("clipping_plane", m_clipping_plane, 4);
|
||||||
|
|
|
@ -260,7 +260,7 @@ private:
|
||||||
class GLVolume {
|
class GLVolume {
|
||||||
public:
|
public:
|
||||||
std::string name;
|
std::string name;
|
||||||
|
bool is_text_shape{false};
|
||||||
static std::array<float, 4> DISABLED_COLOR;
|
static std::array<float, 4> DISABLED_COLOR;
|
||||||
static std::array<float, 4> SLA_SUPPORT_COLOR;
|
static std::array<float, 4> SLA_SUPPORT_COLOR;
|
||||||
static std::array<float, 4> SLA_PAD_COLOR;
|
static std::array<float, 4> SLA_PAD_COLOR;
|
||||||
|
|
Loading…
Reference in New Issue