kong fixes
This commit is contained in:
@@ -135,8 +135,8 @@ function make_mesh_run(data: material_t, layer_pass: i32 = 0): node_shader_conte
|
|||||||
node_shader_write_frag(kong, "var f0: float3 = lerp3(float3(0.04, 0.04, 0.04), basecol, metallic);");
|
node_shader_write_frag(kong, "var f0: float3 = lerp3(float3(0.04, 0.04, 0.04), basecol, metallic);");
|
||||||
kong.frag_vvec = true;
|
kong.frag_vvec = true;
|
||||||
node_shader_write_frag(kong, "var dotnv: float = max(0.0, dot(n, vvec));");
|
node_shader_write_frag(kong, "var dotnv: float = max(0.0, dot(n, vvec));");
|
||||||
// node_shader_write_frag(kong, "var env_brdf: float2 = senvmap_brdf[int2(float2(roughness, 1.0 - dotnv) * 256.0)].xy;");
|
// node_shader_write_frag(kong, "var env_brdf: float2 = senvmap_brdf[uint2(float2(roughness, 1.0 - dotnv) * 256.0)].xy;");
|
||||||
node_shader_write_frag(kong, "var env_brdf: float4 = senvmap_brdf[int2(float2(roughness, 1.0 - dotnv) * 256.0)];");
|
node_shader_write_frag(kong, "var env_brdf: float4 = senvmap_brdf[uint2(float2(roughness, 1.0 - dotnv) * 256.0)];");
|
||||||
node_shader_add_constant(kong, "envmap_num_mipmaps: int", "_envmap_num_mipmaps");
|
node_shader_add_constant(kong, "envmap_num_mipmaps: int", "_envmap_num_mipmaps");
|
||||||
node_shader_add_constant(kong, "envmap_data: float4", "_envmap_data"); // angle, sin(angle), cos(angle), strength
|
node_shader_add_constant(kong, "envmap_data: float4", "_envmap_data"); // angle, sin(angle), cos(angle), strength
|
||||||
node_shader_write_frag(kong, "var wreflect: float3 = reflect(-vvec, n);");
|
node_shader_write_frag(kong, "var wreflect: float3 = reflect(-vvec, n);");
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ function make_paint_run(data: material_t, matcon: material_context_t): node_shad
|
|||||||
node_shader_add_constant(kong, "gbuffer_size: float2", "_gbuffer_size");
|
node_shader_add_constant(kong, "gbuffer_size: float2", "_gbuffer_size");
|
||||||
node_shader_add_constant(kong, "inp: float4", "_input_brush");
|
node_shader_add_constant(kong, "inp: float4", "_input_brush");
|
||||||
|
|
||||||
node_shader_write_frag(kong, "var tex_coord_inp: float2 = gbuffer2[int2(constants.inp.x * constants.gbuffer_size.x, constants.inp.y * constants.gbuffer_size.y)].ba;");
|
node_shader_write_frag(kong, "var tex_coord_inp: float2 = gbuffer2[uint2(constants.inp.x * constants.gbuffer_size.x, constants.inp.y * constants.gbuffer_size.y)].ba;");
|
||||||
|
|
||||||
kong.frag_out = "float4[4]";
|
kong.frag_out = "float4[4]";
|
||||||
node_shader_add_texture(kong, "texpaint");
|
node_shader_add_texture(kong, "texpaint");
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ fun mask_colorid_vert(input: vert_in): vert_out {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun mask_colorid_frag(input: vert_out): float4 {
|
fun mask_colorid_frag(input: vert_out): float4 {
|
||||||
var coord: int2 = int2(0, 0);
|
var coord: uint2 = uint2(0, 0);
|
||||||
var colorid_c1: float4 = texpaint_colorid[coord];
|
var colorid_c1: float4 = texpaint_colorid[coord];
|
||||||
var colorid_c2: float4 = sample_lod(texcolorid, texcolorid_sampler, input.tex, 0.0);
|
var colorid_c2: float4 = sample_lod(texcolorid, texcolorid_sampler, input.tex, 0.0);
|
||||||
if (colorid_c1.x != colorid_c2.x || colorid_c1.y != colorid_c2.y || colorid_c1.z != colorid_c2.z) {
|
if (colorid_c1.x != colorid_c2.x || colorid_c1.y != colorid_c2.y || colorid_c1.z != colorid_c2.z) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
function make_blur_run(kong: node_shader_t) {
|
function make_blur_run(kong: node_shader_t) {
|
||||||
node_shader_write_frag(kong, "var tex_coord_inp: float2 = gbuffer2[int2(sp.x * constants.gbuffer_size.x, sp.y * constants.gbuffer_size.y)].ba;");
|
node_shader_write_frag(kong, "var tex_coord_inp: float2 = gbuffer2[uint2(sp.x * constants.gbuffer_size.x, sp.y * constants.gbuffer_size.y)].ba;");
|
||||||
|
|
||||||
node_shader_write_frag(kong, "var basecol: float3 = float3(0.0, 0.0, 0.0);");
|
node_shader_write_frag(kong, "var basecol: float3 = float3(0.0, 0.0, 0.0);");
|
||||||
node_shader_write_frag(kong, "var roughness: float = 0.0;");
|
node_shader_write_frag(kong, "var roughness: float = 0.0;");
|
||||||
@@ -30,7 +30,7 @@ function make_blur_run(kong: node_shader_t) {
|
|||||||
node_shader_add_constant(kong, "brush_direction: float3", "_brush_direction");
|
node_shader_add_constant(kong, "brush_direction: float3", "_brush_direction");
|
||||||
node_shader_write_frag(kong, "var blur_direction: float2 = constants.brush_direction.yx;");
|
node_shader_write_frag(kong, "var blur_direction: float2 = constants.brush_direction.yx;");
|
||||||
node_shader_write_frag(kong, "for (var i: int = 0; i < 7; i += 1) {");
|
node_shader_write_frag(kong, "for (var i: int = 0; i < 7; i += 1) {");
|
||||||
node_shader_write_frag(kong, "var tex_coord_inp2: float2 = gbuffer2[int2((sp.x + blur_direction.x * blur_step * float(i)) * constants.gbuffer_size.x, (sp.y + blur_direction.y * blur_step * float(i)) * constants.gbuffer_size.y)].ba;");
|
node_shader_write_frag(kong, "var tex_coord_inp2: float2 = gbuffer2[uint2((sp.x + blur_direction.x * blur_step * float(i)) * constants.gbuffer_size.x, (sp.y + blur_direction.y * blur_step * float(i)) * constants.gbuffer_size.y)].ba;");
|
||||||
node_shader_write_frag(kong, "var texpaint_sample: float4 = sample(texpaint_undo, texpaint_undo_sampler, tex_coord_inp2);");
|
node_shader_write_frag(kong, "var texpaint_sample: float4 = sample(texpaint_undo, texpaint_undo_sampler, tex_coord_inp2);");
|
||||||
node_shader_write_frag(kong, "opacity += texpaint_sample.a * blur_weight[i];");
|
node_shader_write_frag(kong, "opacity += texpaint_sample.a * blur_weight[i];");
|
||||||
node_shader_write_frag(kong, "basecol += texpaint_sample.rgb * blur_weight[i];");
|
node_shader_write_frag(kong, "basecol += texpaint_sample.rgb * blur_weight[i];");
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
function make_clone_run(kong: node_shader_t) {
|
function make_clone_run(kong: node_shader_t) {
|
||||||
node_shader_add_constant(kong, "clone_delta: float2", "_clone_delta");
|
node_shader_add_constant(kong, "clone_delta: float2", "_clone_delta");
|
||||||
node_shader_write_frag(kong, "var tex_coord_inp: float2 = gbuffer2[int2((sp.xy + constants.clone_delta) * gbuffer_size)].ba;");
|
node_shader_write_frag(kong, "var tex_coord_inp: float2 = gbuffer2[uint2((sp.xy + constants.clone_delta) * gbuffer_size)].ba;");
|
||||||
|
|
||||||
node_shader_write_frag(kong, "var texpaint_pack_sample: float3 = sample_lod(texpaint_pack_undo, texpaint_pack_undo_sampler, tex_coord_inp, 0.0).rgb;");
|
node_shader_write_frag(kong, "var texpaint_pack_sample: float3 = sample_lod(texpaint_pack_undo, texpaint_pack_undo_sampler, tex_coord_inp, 0.0).rgb;");
|
||||||
let base: string = "sample_lod(texpaint_undo, texpaint_undo_sampler, tex_coord_inp, 0.0).rgb";
|
let base: string = "sample_lod(texpaint_undo, texpaint_undo_sampler, tex_coord_inp, 0.0).rgb";
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ function make_colorid_picker_run(kong: node_shader_t) {
|
|||||||
node_shader_add_constant(kong, "gbuffer_size: float2", "_gbuffer_size");
|
node_shader_add_constant(kong, "gbuffer_size: float2", "_gbuffer_size");
|
||||||
node_shader_add_constant(kong, "inp: float4", "_input_brush");
|
node_shader_add_constant(kong, "inp: float4", "_input_brush");
|
||||||
|
|
||||||
node_shader_write_frag(kong, "var tex_coord_inp: float2 = gbuffer2[int2(constants.inp.x * constants.gbuffer_size.x, constants.inp.y * constants.gbuffer_size.y)].ba;");
|
node_shader_write_frag(kong, "var tex_coord_inp: float2 = gbuffer2[uint2(constants.inp.x * constants.gbuffer_size.x, constants.inp.y * constants.gbuffer_size.y)].ba;");
|
||||||
|
|
||||||
if (context_raw.tool == workspace_tool_t.COLORID) {
|
if (context_raw.tool == workspace_tool_t.COLORID) {
|
||||||
kong.frag_out = "float4";
|
kong.frag_out = "float4";
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
function make_discard_color_id(kong: node_shader_t) {
|
function make_discard_color_id(kong: node_shader_t) {
|
||||||
node_shader_add_texture(kong, "texpaint_colorid"); // 1x1 picker
|
node_shader_add_texture(kong, "texpaint_colorid"); // 1x1 picker
|
||||||
node_shader_add_texture(kong, "texcolorid", "_texcolorid"); // color map
|
node_shader_add_texture(kong, "texcolorid", "_texcolorid"); // color map
|
||||||
node_shader_write_frag(kong, "var colorid_c1: float3 = texpaint_colorid[int2(0, 0)].rgb;");
|
node_shader_write_frag(kong, "var colorid_c1: float3 = texpaint_colorid[uint2(0, 0)].rgb;");
|
||||||
node_shader_write_frag(kong, "var colorid_c2: float3 = sample_lod(texcolorid, texcolorid_sampler, tex_coord_pick, 0).rgb;");
|
node_shader_write_frag(kong, "var colorid_c2: float3 = sample_lod(texcolorid, texcolorid_sampler, tex_coord_pick, 0).rgb;");
|
||||||
// node_shader_write_frag(kong, "if (any(colorid_c1 != colorid_c2)) { discard };");
|
// node_shader_write_frag(kong, "if (any(colorid_c1 != colorid_c2)) { discard };");
|
||||||
node_shader_write_frag(kong, "if (colorid_c1 != colorid_c2) { discard; }");
|
node_shader_write_frag(kong, "if (colorid_c1 != colorid_c2) { discard; }");
|
||||||
@@ -13,8 +13,8 @@ function make_discard_face(kong: node_shader_t) {
|
|||||||
node_shader_add_texture(kong, "textrianglemap", "_textrianglemap");
|
node_shader_add_texture(kong, "textrianglemap", "_textrianglemap");
|
||||||
node_shader_add_constant(kong, "textrianglemap_size: float2", "_texpaint_size");
|
node_shader_add_constant(kong, "textrianglemap_size: float2", "_texpaint_size");
|
||||||
node_shader_add_constant(kong, "gbuffer_size: float2", "_gbuffer_size");
|
node_shader_add_constant(kong, "gbuffer_size: float2", "_gbuffer_size");
|
||||||
node_shader_write_frag(kong, "var tex_coord_inp: float2 = gbuffer2[int2(inp.x * constants.gbuffer_size.x, inp.y * constants.gbuffer_size.y)].ba;");
|
node_shader_write_frag(kong, "var tex_coord_inp: float2 = gbuffer2[uint2(inp.x * constants.gbuffer_size.x, inp.y * constants.gbuffer_size.y)].ba;");
|
||||||
node_shader_write_frag(kong, "var face_c1: float4 = textrianglemap[int2(tex_coord_inp * constants.textrianglemap_size)];");
|
node_shader_write_frag(kong, "var face_c1: float4 = textrianglemap[uint2(tex_coord_inp * constants.textrianglemap_size)];");
|
||||||
node_shader_write_frag(kong, "var face_c2: float4 = sample_lod(textrianglemap, textrianglemap_sampler, tex_coord_pick, 0.0);");
|
node_shader_write_frag(kong, "var face_c2: float4 = sample_lod(textrianglemap, textrianglemap_sampler, tex_coord_pick, 0.0);");
|
||||||
// node_shader_write_frag(kong, "if (any(face_c1 != face_c2)) { discard; }");
|
// node_shader_write_frag(kong, "if (any(face_c1 != face_c2)) { discard; }");
|
||||||
node_shader_write_frag(kong, "if (face_c1 != face_c2) { discard; }");
|
node_shader_write_frag(kong, "if (face_c1 != face_c2) { discard; }");
|
||||||
|
|||||||
@@ -370,8 +370,8 @@ function make_mesh_run(data: material_t, layer_pass: i32 = 0): node_shader_conte
|
|||||||
node_shader_write_frag(kong, "var f0: float3 = lerp3(float3(0.04, 0.04, 0.04), basecol, metallic);");
|
node_shader_write_frag(kong, "var f0: float3 = lerp3(float3(0.04, 0.04, 0.04), basecol, metallic);");
|
||||||
kong.frag_vvec = true;
|
kong.frag_vvec = true;
|
||||||
node_shader_write_frag(kong, "var dotnv: float = max(0.0, dot(n, vvec));");
|
node_shader_write_frag(kong, "var dotnv: float = max(0.0, dot(n, vvec));");
|
||||||
// node_shader_write_frag(kong, "var env_brdf: float2 = senvmap_brdf[int2(float2(roughness, 1.0 - dotnv) * 256.0)].xy;");
|
// node_shader_write_frag(kong, "var env_brdf: float2 = senvmap_brdf[uint2(float2(roughness, 1.0 - dotnv) * 256.0)].xy;");
|
||||||
node_shader_write_frag(kong, "var env_brdf: float4 = senvmap_brdf[int2(float2(roughness, 1.0 - dotnv) * 256.0)];");
|
node_shader_write_frag(kong, "var env_brdf: float4 = senvmap_brdf[uint2(float2(roughness, 1.0 - dotnv) * 256.0)];");
|
||||||
node_shader_add_constant(kong, "envmap_num_mipmaps: int", "_envmap_num_mipmaps");
|
node_shader_add_constant(kong, "envmap_num_mipmaps: int", "_envmap_num_mipmaps");
|
||||||
node_shader_add_constant(kong, "envmap_data: float4", "_envmap_data"); // angle, sin(angle), cos(angle), strength
|
node_shader_add_constant(kong, "envmap_data: float4", "_envmap_data"); // angle, sin(angle), cos(angle), strength
|
||||||
node_shader_write_frag(kong, "var wreflect: float3 = reflect(-vvec, n);");
|
node_shader_write_frag(kong, "var wreflect: float3 = reflect(-vvec, n);");
|
||||||
@@ -439,7 +439,7 @@ function make_mesh_run(data: material_t, layer_pass: i32 = 0): node_shader_conte
|
|||||||
let id: i32 = context_raw.layer.id;
|
let id: i32 = context_raw.layer.id;
|
||||||
node_shader_add_shared_sampler(kong, "texpaint_nor" + id);
|
node_shader_add_shared_sampler(kong, "texpaint_nor" + id);
|
||||||
node_shader_add_constant(kong, "texpaint_size: float2", "_texpaint_size");
|
node_shader_add_constant(kong, "texpaint_size: float2", "_texpaint_size");
|
||||||
node_shader_write_frag(kong, "var sample_matid: float = texpaint_nor" + id + "[int2(input.tex_coord * constants.texpaint_size)].a + 1.0 / 255.0;");
|
node_shader_write_frag(kong, "var sample_matid: float = texpaint_nor" + id + "[uint2(input.tex_coord * constants.texpaint_size)].a + 1.0 / 255.0;");
|
||||||
node_shader_write_frag(kong, "var matid_r: float = frac(sin(dot(float2(sample_matid, sample_matid * 20.0), float2(12.9898, 78.233))) * 43758.5453);");
|
node_shader_write_frag(kong, "var matid_r: float = frac(sin(dot(float2(sample_matid, sample_matid * 20.0), float2(12.9898, 78.233))) * 43758.5453);");
|
||||||
node_shader_write_frag(kong, "var matid_g: float = frac(sin(dot(float2(sample_matid * 20.0, sample_matid), float2(12.9898, 78.233))) * 43758.5453);");
|
node_shader_write_frag(kong, "var matid_g: float = frac(sin(dot(float2(sample_matid * 20.0, sample_matid), float2(12.9898, 78.233))) * 43758.5453);");
|
||||||
node_shader_write_frag(kong, "var matid_b: float = frac(sin(dot(float2(sample_matid, sample_matid * 40.0), float2(12.9898, 78.233))) * 43758.5453);");
|
node_shader_write_frag(kong, "var matid_b: float = frac(sin(dot(float2(sample_matid, sample_matid * 40.0), float2(12.9898, 78.233))) * 43758.5453);");
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ function make_brush_run(kong: node_shader_t) {
|
|||||||
|
|
||||||
node_shader_add_constant(kong, "texpaint_undo_size: float2", "_size(texpaint_undo)");
|
node_shader_add_constant(kong, "texpaint_undo_size: float2", "_size(texpaint_undo)");
|
||||||
|
|
||||||
node_shader_write_attrib_frag(kong, "var wposition: float3 = (constants.W * texpaint_undo[int2(tex_coord.x * constants.texpaint_undo_size.x, tex_coord.y * constants.texpaint_undo_size.y)]).xyz;");
|
node_shader_write_attrib_frag(kong, "var wposition: float3 = (constants.W * texpaint_undo[uint2(tex_coord.x * constants.texpaint_undo_size.x, tex_coord.y * constants.texpaint_undo_size.y)]).xyz;");
|
||||||
|
|
||||||
node_shader_write_frag(kong, "var depthlast: float = sample_lod(gbufferD, gbufferD_sampler, constants.inplast.xy, 0.0).r;");
|
node_shader_write_frag(kong, "var depthlast: float = sample_lod(gbufferD, gbufferD_sampler, constants.inplast.xy, 0.0).r;");
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ function make_mesh_run(data: material_t, layer_pass: i32 = 0): node_shader_conte
|
|||||||
let lid: i32 = project_layers[0].id;
|
let lid: i32 = project_layers[0].id;
|
||||||
node_shader_add_texture(kong, "texpaint_vert", "_texpaint_vert" + lid, true);
|
node_shader_add_texture(kong, "texpaint_vert", "_texpaint_vert" + lid, true);
|
||||||
node_shader_add_constant(kong, "texpaint_vert_size: float2", "_size(texpaint_vert" + lid + ")");
|
node_shader_add_constant(kong, "texpaint_vert_size: float2", "_size(texpaint_vert" + lid + ")");
|
||||||
node_shader_write_vert(kong, "var meshpos: float3 = sample_lod(texpaint_vert, texpaint_vert_sampler, int2(vertex_id() % constants.texpaint_vert_size.x, vertex_id() / constants.texpaint_vert_size.y), 0).xyz;");
|
node_shader_write_vert(kong, "var meshpos: float3 = sample_lod(texpaint_vert, texpaint_vert_sampler, uint2(vertex_id() % constants.texpaint_vert_size.x, vertex_id() / constants.texpaint_vert_size.y), 0).xyz;");
|
||||||
// + input.pos.xyz * 0.000001
|
// + input.pos.xyz * 0.000001
|
||||||
node_shader_write_vert(kong, "output.pos = constants.WVP * float4(meshpos.xyz, 1.0);");
|
node_shader_write_vert(kong, "output.pos = constants.WVP * float4(meshpos.xyz, 1.0);");
|
||||||
|
|
||||||
@@ -55,9 +55,9 @@ function make_mesh_run(data: material_t, layer_pass: i32 = 0): node_shader_conte
|
|||||||
node_shader_write_attrib_vert(kong, "var base_vertex0: int = vertex_id() - (vertex_id() % 3);");
|
node_shader_write_attrib_vert(kong, "var base_vertex0: int = vertex_id() - (vertex_id() % 3);");
|
||||||
node_shader_write_attrib_vert(kong, "var base_vertex1: int = base_vertex0 + 1;");
|
node_shader_write_attrib_vert(kong, "var base_vertex1: int = base_vertex0 + 1;");
|
||||||
node_shader_write_attrib_vert(kong, "var base_vertex2: int = base_vertex0 + 2;");
|
node_shader_write_attrib_vert(kong, "var base_vertex2: int = base_vertex0 + 2;");
|
||||||
node_shader_write_attrib_vert(kong, "var meshpos0: float3 = sample_lod(texpaint_vert, texpaint_vert_sampler, int2(base_vertex0 % constants.texpaint_vert_size.x, base_vertex0 / constants.texpaint_vert_size.y), 0).xyz;");
|
node_shader_write_attrib_vert(kong, "var meshpos0: float3 = sample_lod(texpaint_vert, texpaint_vert_sampler, uint2(base_vertex0 % constants.texpaint_vert_size.x, base_vertex0 / constants.texpaint_vert_size.y), 0).xyz;");
|
||||||
node_shader_write_attrib_vert(kong, "var meshpos1: float3 = sample_lod(texpaint_vert, texpaint_vert_sampler, int2(base_vertex1 % constants.texpaint_vert_size.x, base_vertex1 / constants.texpaint_vert_size.y), 0).xyz;");
|
node_shader_write_attrib_vert(kong, "var meshpos1: float3 = sample_lod(texpaint_vert, texpaint_vert_sampler, uint2(base_vertex1 % constants.texpaint_vert_size.x, base_vertex1 / constants.texpaint_vert_size.y), 0).xyz;");
|
||||||
node_shader_write_attrib_vert(kong, "var meshpos2: float3 = sample_lod(texpaint_vert, texpaint_vert_sampler, int2(base_vertex2 % constants.texpaint_vert_size.x, base_vertex2 / constants.texpaint_vert_size.y), 0).xyz;");
|
node_shader_write_attrib_vert(kong, "var meshpos2: float3 = sample_lod(texpaint_vert, texpaint_vert_sampler, uint2(base_vertex2 % constants.texpaint_vert_size.x, base_vertex2 / constants.texpaint_vert_size.y), 0).xyz;");
|
||||||
node_shader_write_attrib_vert(kong, "var meshnor: float3 = normalize(cross(meshpos2 - meshpos1, meshpos0 - meshpos1));");
|
node_shader_write_attrib_vert(kong, "var meshnor: float3 = normalize(cross(meshpos2 - meshpos1, meshpos0 - meshpos1));");
|
||||||
node_shader_write_attrib_vert(kong, "output.wnormal = constants.N * meshnor;");
|
node_shader_write_attrib_vert(kong, "output.wnormal = constants.N * meshnor;");
|
||||||
node_shader_write_attrib_frag(kong, "var n: float3 = normalize(input.wnormal);");
|
node_shader_write_attrib_frag(kong, "var n: float3 = normalize(input.wnormal);");
|
||||||
@@ -263,8 +263,8 @@ function make_mesh_run(data: material_t, layer_pass: i32 = 0): node_shader_conte
|
|||||||
node_shader_write_frag(kong, "var f0: float3 = lerp3(float3(0.04, 0.04, 0.04), basecol, metallic);");
|
node_shader_write_frag(kong, "var f0: float3 = lerp3(float3(0.04, 0.04, 0.04), basecol, metallic);");
|
||||||
kong.frag_vvec = true;
|
kong.frag_vvec = true;
|
||||||
node_shader_write_frag(kong, "var dotnv: float = max(0.0, dot(n, vvec));");
|
node_shader_write_frag(kong, "var dotnv: float = max(0.0, dot(n, vvec));");
|
||||||
// node_shader_write_frag(kong, "var env_brdf: float2 = senvmap_brdf[int2(float2(roughness, 1.0 - dotnv) * 256.0)].xy;");
|
// node_shader_write_frag(kong, "var env_brdf: float2 = senvmap_brdf[uint2(float2(roughness, 1.0 - dotnv) * 256.0)].xy;");
|
||||||
node_shader_write_frag(kong, "var env_brdf: float4 = senvmap_brdf[int2(float2(roughness, 1.0 - dotnv) * 256.0)];");
|
node_shader_write_frag(kong, "var env_brdf: float4 = senvmap_brdf[uint2(float2(roughness, 1.0 - dotnv) * 256.0)];");
|
||||||
node_shader_add_constant(kong, "envmap_num_mipmaps: int", "_envmap_num_mipmaps");
|
node_shader_add_constant(kong, "envmap_num_mipmaps: int", "_envmap_num_mipmaps");
|
||||||
node_shader_add_constant(kong, "envmap_data: float4", "_envmap_data"); // angle, sin(angle), cos(angle), strength
|
node_shader_add_constant(kong, "envmap_data: float4", "_envmap_data"); // angle, sin(angle), cos(angle), strength
|
||||||
node_shader_write_frag(kong, "var wreflect: float3 = reflect(-vvec, n);");
|
node_shader_write_frag(kong, "var wreflect: float3 = reflect(-vvec, n);");
|
||||||
|
|||||||
@@ -38,9 +38,9 @@ fun tonemap_filmic(color: float3): float3 {
|
|||||||
// Based on Filmic Tonemapping Operators http://filmicgames.com/archives/75
|
// Based on Filmic Tonemapping Operators http://filmicgames.com/archives/75
|
||||||
// var x: float3 = max(float3(0.0, 0.0, 0.0), color - 0.004);
|
// var x: float3 = max(float3(0.0, 0.0, 0.0), color - 0.004);
|
||||||
var x: float3;
|
var x: float3;
|
||||||
x.x = max(float3(0.0, 0.0, 0.0), color.x - 0.004);
|
x.x = max(0.0, color.x - 0.004);
|
||||||
x.y = max(float3(0.0, 0.0, 0.0), color.y - 0.004);
|
x.y = max(0.0, color.y - 0.004);
|
||||||
x.z = max(float3(0.0, 0.0, 0.0), color.z - 0.004);
|
x.z = max(0.0, color.z - 0.004);
|
||||||
return (x * (6.2 * x + 0.5)) / (x * (6.2 * x + 1.7) + 0.06);
|
return (x * (6.2 * x + 0.5)) / (x * (6.2 * x + 1.7) + 0.06);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user