The variable layer editing shader was made OpenGL 2.0 compatible.

Fixed a bug in the scaling of colors for the variable layer editing.
This commit is contained in:
bubnikv 2017-02-21 09:39:28 +01:00
parent 006173342c
commit 8aae5bdb28
2 changed files with 3 additions and 3 deletions

View File

@ -1700,8 +1700,8 @@ void main()
float lod = clamp(0.5 * log2(max(dx_vtc*dx_vtc, dy_vtc*dy_vtc)), 0., 1.); float lod = clamp(0.5 * log2(max(dx_vtc*dx_vtc, dy_vtc*dy_vtc)), 0., 1.);
// Sample the Z texture. Texture coordinates are normalized to <0, 1>. // Sample the Z texture. Texture coordinates are normalized to <0, 1>.
vec4 color = vec4 color =
(1. - lod) * texture2DLod(z_texture, vec2(z_texture_col, z_texture_row_to_normalized * (z_texture_row + 0.5 )), 0.) + (1. - lod) * texture2D(z_texture, vec2(z_texture_col, z_texture_row_to_normalized * (z_texture_row + 0.5 )), -10000.) +
lod * texture2DLod(z_texture, vec2(z_texture_col, z_texture_row_to_normalized * (z_texture_row * 2. + 1.)), 1.); lod * texture2D(z_texture, vec2(z_texture_col, z_texture_row_to_normalized * (z_texture_row * 2. + 1.)), 10000.);
// Mix the final color. // Mix the final color.
gl_FragColor = gl_FragColor =
vec4(intensity_specular, intensity_specular, intensity_specular, 1.) + vec4(intensity_specular, intensity_specular, intensity_specular, 1.) +

View File

@ -657,7 +657,7 @@ int generate_layer_height_texture(
cell_first = clamp(0, ncells1-1, int(ceil(lo * z_to_cell1))); cell_first = clamp(0, ncells1-1, int(ceil(lo * z_to_cell1)));
cell_last = clamp(0, ncells1-1, int(floor(hi * z_to_cell1))); cell_last = clamp(0, ncells1-1, int(floor(hi * z_to_cell1)));
for (int cell = cell_first; cell <= cell_last; ++ cell) { for (int cell = cell_first; cell <= cell_last; ++ cell) {
coordf_t idxf = (0.5 * hscale + (h - slicing_params.layer_height)) * coordf_t(palette_raw.size()) / hscale; coordf_t idxf = (0.5 * hscale + (h - slicing_params.layer_height)) * coordf_t(palette_raw.size()-1) / hscale;
int idx1 = clamp(0, int(palette_raw.size() - 1), int(floor(idxf))); int idx1 = clamp(0, int(palette_raw.size() - 1), int(floor(idxf)));
int idx2 = std::min(int(palette_raw.size() - 1), idx1 + 1); int idx2 = std::min(int(palette_raw.size() - 1), idx1 + 1);
coordf_t t = idxf - coordf_t(idx1); coordf_t t = idxf - coordf_t(idx1);