Скажу, понятие, чтобы создать карту, состоящую из кубов с неоновой эстетикой, такие как: Как сделать эффект ретро/неона/свечения, используя шейдеры?
В настоящее время у меня есть этот вершинный шейдер:
// Uniforms
uniform mat4 u_projection;
uniform mat4 u_view;
uniform mat4 u_model;
// Vertex atributes
in vec3 a_position;
in vec3 a_normal;
in vec2 a_texture;
vec3 u_light_direction = vec3(1.0, 2.0, 3.0);
// Vertex shader outputs
out vec2 v_texture;
out float v_intensity;
void main()
{
vec3 normal = normalize((u_model * vec4(a_normal, 0.0)).xyz);
vec3 light_dir = normalize(u_light_direction);
v_intensity = max(0.0, dot(normal, light_dir));
v_texture = a_texture;
gl_Position = u_projection * u_view * u_model * vec4(a_position, 1.0);
}
И этот пиксельный шейдер:
in float v_intensity;
in vec2 v_texture;
uniform sampler2D u_texture;
out vec4 fragColor;
void main()
{
fragColor = texture(u_texture, v_texture) * vec4(v_intensity, v_intensity, v_intensity, 1.0);
}
Как я могу использовать это для создания неонового эффекта, например, в примере для 3D-кубов? Кубы - это просто модели с сеткой/материалом. Единственное изменение - установить цвет материала черным, а контуры - ярко-розовым или синим (возможно, с сиянием).
Любая помощь приветствуется. :)
Имеет смысл. Я мог бы создать черную текстуру с яркими очертаниями и отобразить ее, а также добавить эффект цветения с помощью шейдера. Думаю, это было бы более простым решением, чем все это в шейдере. Я попробую это сейчас, но любые другие предложения или примеры были бы хороши. – NightShift
Существует хорошая статья о цветении в реальном времени в GPU Gems: http://http.developer.nvidia.com/GPUGems/gpugems_ch21.html. Код устарел, но теория может быть полезна. – BDL
Сохраните скорость заполнения и визуализируйте линии LINES или треугольники, представляющие линии. –