Tweak convex hull node and transparent object shader

Now we render at least a vague hint at lighting instead of nothing at
all.
This commit is contained in:
Arjen Hiemstra 2016-07-27 18:02:31 +02:00
parent 6af0f28f32
commit 823ab61cc5
2 changed files with 13 additions and 23 deletions

View file

@ -23,7 +23,7 @@ class ConvexHullNode(SceneNode):
self._original_parent = parent self._original_parent = parent
# Color of the drawn convex hull # Color of the drawn convex hull
self._color = Color(35, 35, 35, 192) self._color = Color(0.4, 0.4, 0.4, 1.0)
# The y-coordinate of the convex hull mesh. Must not be 0, to prevent z-fighting. # The y-coordinate of the convex hull mesh. Must not be 0, to prevent z-fighting.
self._mesh_height = 0.1 self._mesh_height = 0.1

View file

@ -1,7 +1,7 @@
[shaders] [shaders]
vertex = vertex =
uniform highp mat4 u_viewProjectionMatrix;
uniform highp mat4 u_modelMatrix; uniform highp mat4 u_modelMatrix;
uniform highp mat4 u_viewProjectionMatrix;
uniform highp mat4 u_normalMatrix; uniform highp mat4 u_normalMatrix;
attribute highp vec4 a_vertex; attribute highp vec4 a_vertex;
@ -10,7 +10,6 @@ vertex =
varying highp vec3 v_vertex; varying highp vec3 v_vertex;
varying highp vec3 v_normal; varying highp vec3 v_normal;
varying highp vec2 v_uvs;
void main() void main()
{ {
@ -19,56 +18,47 @@ vertex =
v_vertex = world_space_vert.xyz; v_vertex = world_space_vert.xyz;
v_normal = (u_normalMatrix * normalize(a_normal)).xyz; v_normal = (u_normalMatrix * normalize(a_normal)).xyz;
v_uvs = a_uvs;
} }
fragment = fragment =
uniform mediump vec4 u_ambientColor; uniform mediump vec4 u_ambientColor;
uniform mediump vec4 u_diffuseColor; uniform mediump vec4 u_diffuseColor;
uniform highp vec3 u_lightPosition; uniform highp vec3 u_lightPosition;
uniform highp vec3 u_viewPosition;
uniform mediump float u_opacity; uniform mediump float u_opacity;
uniform sampler2D u_texture;
varying highp vec3 v_vertex; varying highp vec3 v_vertex;
varying highp vec3 v_normal; varying highp vec3 v_normal;
varying highp vec2 v_uvs;
void main() void main()
{ {
// Copied from platform.shader, removed texture mediump vec4 finalColor = vec4(0.0);
mediump vec4 final_color = vec4(0.0);
/* Ambient Component */ /* Ambient Component */
final_color += u_ambientColor; finalColor += u_ambientColor;
highp vec3 normal = normalize(v_normal); highp vec3 normal = normalize(v_normal);
highp vec3 light_dir = normalize(u_lightPosition - v_vertex); highp vec3 lightDir = normalize(u_lightPosition - v_vertex);
/* Diffuse Component */ /* Diffuse Component */
highp float n_dot_l = clamp(dot(normal, light_dir), 0.0, 1.0); highp float NdotL = clamp(abs(dot(normal, lightDir)), 0.0, 1.0);
final_color += (n_dot_l * u_diffuseColor); finalColor += (NdotL * u_diffuseColor);
final_color.a = u_opacity; gl_FragColor = finalColor;
gl_FragColor.a = u_opacity;
gl_FragColor = final_color;
} }
[defaults] [defaults]
u_ambientColor = [0.3, 0.3, 0.3, 1.0] u_ambientColor = [0.1, 0.1, 0.1, 1.0]
u_diffuseColor = [1.0, 1.0, 1.0, 1.0] u_diffuseColor = [0.4, 0.4, 0.4, 1.0]
u_opacity = 0.5 u_opacity = 0.5
u_texture = 0
[bindings] [bindings]
u_viewProjectionMatrix = view_projection_matrix
u_modelMatrix = model_matrix u_modelMatrix = model_matrix
u_viewProjectionMatrix = view_projection_matrix
u_normalMatrix = normal_matrix u_normalMatrix = normal_matrix
u_lightPosition = light_0_position u_lightPosition = light_0_position
u_viewPosition = camera_position
[attributes] [attributes]
a_vertex = vertex a_vertex = vertex
a_normal = normal a_normal = normal
a_uvs = uv0