diff --git a/armorforge/Assets/Scene.arm b/armorforge/Assets/Scene.arm index 04306fd7..41508497 100644 Binary files a/armorforge/Assets/Scene.arm and b/armorforge/Assets/Scene.arm differ diff --git a/armorlab/Assets/Scene.arm b/armorlab/Assets/Scene.arm index c691b38f..45938328 100644 Binary files a/armorlab/Assets/Scene.arm and b/armorlab/Assets/Scene.arm differ diff --git a/armorlab/Sources/MakeMesh.ts b/armorlab/Sources/MakeMesh.ts index c7bcf14d..21b030be 100644 --- a/armorlab/Sources/MakeMesh.ts +++ b/armorlab/Sources/MakeMesh.ts @@ -21,8 +21,8 @@ class MakeMesh { NodeShader.add_out(vert, 'vec2 texCoord'); frag.wvpposition = true; NodeShader.add_out(vert, 'vec4 prevwvpposition'); - NodeShader.add_uniform(vert, 'mat4 VP', '_viewProjectionMatrix'); - NodeShader.add_uniform(vert, 'mat4 prevWVP', '_prevWorldViewProjectionMatrix'); + NodeShader.add_uniform(vert, 'mat4 VP', '_view_proj_matrix'); + NodeShader.add_uniform(vert, 'mat4 prevWVP', '_prev_world_view_proj_matrix'); vert.wposition = true; let textureCount = 0; @@ -36,10 +36,10 @@ class MakeMesh { NodeShader.write(vert, 'gl_Position = mul(vec4(wposition.xyz, 1.0), VP);'); let brushScale = Context.raw.brushScale; - NodeShader.add_uniform(vert, 'float texScale', '_texUnpack'); + NodeShader.add_uniform(vert, 'float texScale', '_tex_unpack'); NodeShader.write(vert, `texCoord = tex * ${brushScale} * texScale;`); if (MakeMaterial.heightUsed && displaceStrength > 0) { - NodeShader.add_uniform(vert, 'mat4 invW', '_inverseWorldMatrix'); + NodeShader.add_uniform(vert, 'mat4 invW', '_inv_world_matrix'); NodeShader.write(vert, 'prevwvpposition = mul(mul(vec4(wposition, 1.0), invW), prevWVP);'); } else { @@ -75,7 +75,7 @@ class MakeMesh { if (Context.raw.viewportMode == ViewportMode.ViewLit && Context.raw.renderMode == RenderMode.RenderForward) { NodeShader.add_uniform(frag, 'sampler2D senvmapBrdf', "$brdf.k"); - NodeShader.add_uniform(frag, 'sampler2D senvmapRadiance', '_envmapRadiance'); + NodeShader.add_uniform(frag, 'sampler2D senvmapRadiance', '_envmap_radiance'); NodeShader.add_uniform(frag, 'sampler2D sltcMat', '_ltcMat'); NodeShader.add_uniform(frag, 'sampler2D sltcMag', '_ltcMag'); } @@ -151,19 +151,19 @@ class MakeMesh { frag.vVec = true; NodeShader.write(frag, 'float dotNV = max(0.0, dot(n, vVec));'); NodeShader.write(frag, 'vec2 envBRDF = texelFetch(senvmapBrdf, ivec2(vec2(roughness, 1.0 - dotNV) * 256.0), 0).xy;'); - NodeShader.add_uniform(frag, 'int envmapNumMipmaps', '_envmapNumMipmaps'); + NodeShader.add_uniform(frag, 'int envmapNumMipmaps', '_envmap_num_mipmaps'); NodeShader.add_uniform(frag, 'vec4 envmapData', '_envmapData'); // angle, sin(angle), cos(angle), strength NodeShader.write(frag, 'vec3 wreflect = reflect(-vVec, n);'); NodeShader.write(frag, 'float envlod = roughness * float(envmapNumMipmaps);'); NodeShader.add_function(frag, ShaderFunctions.str_envMapEquirect); NodeShader.write(frag, 'vec3 prefilteredColor = textureLod(senvmapRadiance, envMapEquirect(wreflect, envmapData.x), envlod).rgb;'); - NodeShader.add_uniform(frag, 'vec3 lightArea0', '_lightArea0'); - NodeShader.add_uniform(frag, 'vec3 lightArea1', '_lightArea1'); - NodeShader.add_uniform(frag, 'vec3 lightArea2', '_lightArea2'); - NodeShader.add_uniform(frag, 'vec3 lightArea3', '_lightArea3'); + NodeShader.add_uniform(frag, 'vec3 lightArea0', '_light_area0'); + NodeShader.add_uniform(frag, 'vec3 lightArea1', '_light_area1'); + NodeShader.add_uniform(frag, 'vec3 lightArea2', '_light_area2'); + NodeShader.add_uniform(frag, 'vec3 lightArea3', '_light_area3'); NodeShader.add_function(frag, ShaderFunctions.str_ltcEvaluate); - NodeShader.add_uniform(frag, 'vec3 lightPos', '_pointPosition'); - NodeShader.add_uniform(frag, 'vec3 lightColor', '_pointColor'); + NodeShader.add_uniform(frag, 'vec3 lightPos', '_point_pos'); + NodeShader.add_uniform(frag, 'vec3 lightColor', '_point_color'); NodeShader.write(frag, 'float ldist = distance(wposition, lightPos);'); NodeShader.write(frag, 'const float LUT_SIZE = 64.0;'); NodeShader.write(frag, 'const float LUT_SCALE = (LUT_SIZE - 1.0) / LUT_SIZE;'); @@ -180,7 +180,7 @@ class MakeMesh { NodeShader.write(frag, 'vec3 direct = albedo * ltcdiff + ltcspec * 0.05;'); NodeShader.write(frag, 'direct *= lightColor * (1.0 / (ldist * ldist));'); - NodeShader.add_uniform(frag, 'vec4 shirr[7]', '_envmapIrradiance'); + NodeShader.add_uniform(frag, 'vec4 shirr[7]', '_envmap_irradiance'); NodeShader.add_function(frag, ShaderFunctions.str_shIrradiance); NodeShader.write(frag, 'vec3 indirect = albedo * (shIrradiance(vec3(n.x * envmapData.z - n.y * envmapData.y, n.x * envmapData.y + n.y * envmapData.z, n.z), shirr) / 3.14159265);'); NodeShader.write(frag, 'indirect += prefilteredColor * (f0 * envBRDF.x + envBRDF.y) * 1.5;'); diff --git a/armorlab/Sources/MakePaint.ts b/armorlab/Sources/MakePaint.ts index 16a9d34a..75ff80b6 100644 --- a/armorlab/Sources/MakePaint.ts +++ b/armorlab/Sources/MakePaint.ts @@ -61,7 +61,7 @@ class MakePaint { NodeShader.write(vert, 'gl_Position = vec4(tpos, 0.0, 1.0);'); - NodeShader.add_uniform(vert, 'mat4 WVP', '_worldViewProjectionMatrix'); + NodeShader.add_uniform(vert, 'mat4 WVP', '_world_view_proj_matrix'); NodeShader.add_out(vert, 'vec4 ndc'); NodeShader.write_attrib(vert, 'ndc = mul(vec4(pos.xyz, 1.0), WVP);'); @@ -72,7 +72,7 @@ class MakePaint { NodeShader.add_uniform(frag, 'vec4 inp', '_inputBrush'); NodeShader.add_uniform(frag, 'vec4 inplast', '_inputBrushLast'); - NodeShader.add_uniform(frag, 'float aspectRatio', '_aspectRatioWindowF'); + NodeShader.add_uniform(frag, 'float aspectRatio', '_aspect_ratio_window'); NodeShader.write(frag, 'vec2 bsp = sp.xy * 2.0 - 1.0;'); NodeShader.write(frag, 'bsp.x *= aspectRatio;'); NodeShader.write(frag, 'bsp = bsp * 0.5 + 0.5;'); @@ -98,7 +98,7 @@ class MakePaint { NodeShader.write(frag, 'float depth = textureLod(gbufferD, vec2(inp.x, 1.0 - inp.y), 0.0).r;'); ///end - NodeShader.add_uniform(frag, 'mat4 invVP', '_inverseViewProjectionMatrix'); + NodeShader.add_uniform(frag, 'mat4 invVP', '_inv_view_proj_matrix'); NodeShader.write(frag, 'vec4 winp = vec4(vec2(inp.x, 1.0 - inp.y) * 2.0 - 1.0, depth * 2.0 - 1.0, 1.0);'); NodeShader.write(frag, 'winp = mul(winp, invVP);'); NodeShader.write(frag, 'winp.xyz /= winp.w;'); @@ -125,7 +125,7 @@ class MakePaint { } // NodeShader.add_uniform(vert, 'float brushScale', '_brushScale'); - // NodeShader.add_uniform(vert, 'float texScale', '_texUnpack'); + // NodeShader.add_uniform(vert, 'float texScale', '_tex_unpack'); // NodeShader.add_out(vert, 'vec2 texCoord'); // NodeShader.write(vert, 'texCoord = tex * brushScale * texScale;'); diff --git a/armorpaint/Assets/Scene.arm b/armorpaint/Assets/Scene.arm index 405b03b1..5f39bce0 100644 Binary files a/armorpaint/Assets/Scene.arm and b/armorpaint/Assets/Scene.arm differ diff --git a/armorpaint/Assets/plugins/viewport_celshade.js b/armorpaint/Assets/plugins/viewport_celshade.js index e8acff1c..eb00a743 100644 --- a/armorpaint/Assets/plugins/viewport_celshade.js +++ b/armorpaint/Assets/plugins/viewport_celshade.js @@ -3,7 +3,7 @@ let plugin = Plugin.create(); // Register custom viewport shader ContextBase.setViewportShader(function(shader) { - shader.add_uniform('vec3 lightDir', '_lightDirection'); + shader.add_uniform('vec3 lightDir', '_light_dir'); shader.write(` float dotNL = max(dot(n, lightDir), 0.0); vec3 outputColor = basecol * step(0.5, dotNL) + basecol; diff --git a/armorpaint/Sources/MakeBake.ts b/armorpaint/Sources/MakeBake.ts index 71562c12..ab1a712d 100644 --- a/armorpaint/Sources/MakeBake.ts +++ b/armorpaint/Sources/MakeBake.ts @@ -126,7 +126,7 @@ class MakeBake { static positionAndNormal = (vert: NodeShaderRaw, frag: NodeShaderRaw) => { NodeShader.add_out(vert, 'vec3 position'); NodeShader.add_out(vert, 'vec3 normal'); - NodeShader.add_uniform(vert, 'mat4 W', '_worldMatrix'); + NodeShader.add_uniform(vert, 'mat4 W', '_world_matrix'); NodeShader.write(vert, 'position = vec4(mul(vec4(pos.xyz, 1.0), W)).xyz;'); NodeShader.write(vert, 'normal = vec3(nor.xy, pos.w);'); NodeShader.write(vert, 'vec2 tpos = vec2(tex.x * 2.0 - 1.0, (1.0 - tex.y) * 2.0 - 1.0);'); diff --git a/armorpaint/Sources/MakeBrush.ts b/armorpaint/Sources/MakeBrush.ts index 4994de1b..d4f21bf1 100644 --- a/armorpaint/Sources/MakeBrush.ts +++ b/armorpaint/Sources/MakeBrush.ts @@ -18,7 +18,7 @@ class MakeBrush { NodeShader.write(frag, 'float depth = textureLod(gbufferD, vec2(inp.x, 1.0 - inp.y), 0.0).r;'); ///end - NodeShader.add_uniform(frag, 'mat4 invVP', '_inverseViewProjectionMatrix'); + NodeShader.add_uniform(frag, 'mat4 invVP', '_inv_view_proj_matrix'); NodeShader.write(frag, 'vec4 winp = vec4(vec2(inp.x, 1.0 - inp.y) * 2.0 - 1.0, depth * 2.0 - 1.0, 1.0);'); NodeShader.write(frag, 'winp = mul(winp, invVP);'); NodeShader.write(frag, 'winp.xyz /= winp.w;'); diff --git a/armorpaint/Sources/MakeColorIdPicker.ts b/armorpaint/Sources/MakeColorIdPicker.ts index 0502a20d..d0dfc245 100644 --- a/armorpaint/Sources/MakeColorIdPicker.ts +++ b/armorpaint/Sources/MakeColorIdPicker.ts @@ -25,7 +25,7 @@ class MakeColorIdPicker { if (Context.raw.pickPosNorTex) { NodeShader.add_out(frag, 'vec4 fragColor[2]'); NodeShader.add_uniform(frag, 'sampler2D gbufferD'); - NodeShader.add_uniform(frag, 'mat4 invVP', '_inverseViewProjectionMatrix'); + NodeShader.add_uniform(frag, 'mat4 invVP', '_inv_view_proj_matrix'); NodeShader.add_function(frag, ShaderFunctions.str_get_pos_from_depth); NodeShader.add_function(frag, ShaderFunctions.str_get_nor_from_depth); NodeShader.write(frag, 'fragColor[0] = vec4(get_pos_from_depth(vec2(inp.x, 1.0 - inp.y), invVP, texturePass(gbufferD)), texCoordInp.x);'); diff --git a/armorpaint/Sources/MakeMesh.ts b/armorpaint/Sources/MakeMesh.ts index d7c73c3b..60e99324 100644 --- a/armorpaint/Sources/MakeMesh.ts +++ b/armorpaint/Sources/MakeMesh.ts @@ -22,8 +22,8 @@ class MakeMesh { NodeShader.add_out(vert, 'vec2 texCoord'); frag.wvpposition = true; NodeShader.add_out(vert, 'vec4 prevwvpposition'); - NodeShader.add_uniform(vert, 'mat4 VP', '_viewProjectionMatrix'); - NodeShader.add_uniform(vert, 'mat4 prevWVP', '_prevWorldViewProjectionMatrix'); + NodeShader.add_uniform(vert, 'mat4 VP', '_view_proj_matrix'); + NodeShader.add_uniform(vert, 'mat4 prevWVP', '_prev_world_view_proj_matrix'); vert.wposition = true; let textureCount = 0; @@ -55,7 +55,7 @@ class MakeMesh { NodeShader.write(vert, 'gl_Position = mul(vec4(wposition.xyz, 1.0), VP);'); NodeShader.write(vert, 'texCoord = tex;'); if (MakeMaterial.heightUsed && displaceStrength > 0) { - NodeShader.add_uniform(vert, 'mat4 invW', '_inverseWorldMatrix'); + NodeShader.add_uniform(vert, 'mat4 invW', '_inv_world_matrix'); NodeShader.write(vert, 'prevwvpposition = mul(mul(vec4(wposition, 1.0), invW), prevWVP);'); } else { @@ -134,7 +134,7 @@ class MakeMesh { if (Context.raw.viewportMode == ViewportMode.ViewLit && Context.raw.renderMode == RenderMode.RenderForward) { textureCount += 4; NodeShader.add_uniform(frag, 'sampler2D senvmapBrdf', "$brdf.k"); - NodeShader.add_uniform(frag, 'sampler2D senvmapRadiance', '_envmapRadiance'); + NodeShader.add_uniform(frag, 'sampler2D senvmapRadiance', '_envmap_radiance'); NodeShader.add_uniform(frag, 'sampler2D sltcMat', '_ltcMat'); NodeShader.add_uniform(frag, 'sampler2D sltcMag', '_ltcMag'); } @@ -344,19 +344,19 @@ class MakeMesh { frag.vVec = true; NodeShader.write(frag, 'float dotNV = max(0.0, dot(n, vVec));'); NodeShader.write(frag, 'vec2 envBRDF = texelFetch(senvmapBrdf, ivec2(vec2(roughness, 1.0 - dotNV) * 256.0), 0).xy;'); - NodeShader.add_uniform(frag, 'int envmapNumMipmaps', '_envmapNumMipmaps'); + NodeShader.add_uniform(frag, 'int envmapNumMipmaps', '_envmap_num_mipmaps'); NodeShader.add_uniform(frag, 'vec4 envmapData', '_envmapData'); // angle, sin(angle), cos(angle), strength NodeShader.write(frag, 'vec3 wreflect = reflect(-vVec, n);'); NodeShader.write(frag, 'float envlod = roughness * float(envmapNumMipmaps);'); NodeShader.add_function(frag, ShaderFunctions.str_envMapEquirect); NodeShader.write(frag, 'vec3 prefilteredColor = textureLod(senvmapRadiance, envMapEquirect(wreflect, envmapData.x), envlod).rgb;'); - NodeShader.add_uniform(frag, 'vec3 lightArea0', '_lightArea0'); - NodeShader.add_uniform(frag, 'vec3 lightArea1', '_lightArea1'); - NodeShader.add_uniform(frag, 'vec3 lightArea2', '_lightArea2'); - NodeShader.add_uniform(frag, 'vec3 lightArea3', '_lightArea3'); + NodeShader.add_uniform(frag, 'vec3 lightArea0', '_light_area0'); + NodeShader.add_uniform(frag, 'vec3 lightArea1', '_light_area1'); + NodeShader.add_uniform(frag, 'vec3 lightArea2', '_light_area2'); + NodeShader.add_uniform(frag, 'vec3 lightArea3', '_light_area3'); NodeShader.add_function(frag, ShaderFunctions.str_ltcEvaluate); - NodeShader.add_uniform(frag, 'vec3 lightPos', '_pointPosition'); - NodeShader.add_uniform(frag, 'vec3 lightColor', '_pointColor'); + NodeShader.add_uniform(frag, 'vec3 lightPos', '_point_pos'); + NodeShader.add_uniform(frag, 'vec3 lightColor', '_point_color'); // NodeShader.write(frag, 'float dotNL = max(dot(n, normalize(lightPos - wposition)), 0.0);'); // NodeShader.write(frag, 'vec3 direct = albedo * dotNL;'); NodeShader.write(frag, 'float ldist = distance(wposition, lightPos);'); @@ -375,7 +375,7 @@ class MakeMesh { NodeShader.write(frag, 'vec3 direct = albedo * ltcdiff + ltcspec * 0.05;'); NodeShader.write(frag, 'direct *= lightColor * (1.0 / (ldist * ldist));'); - NodeShader.add_uniform(frag, 'vec4 shirr[7]', '_envmapIrradiance'); + NodeShader.add_uniform(frag, 'vec4 shirr[7]', '_envmap_irradiance'); NodeShader.add_function(frag, ShaderFunctions.str_shIrradiance); NodeShader.write(frag, 'vec3 indirect = albedo * (shIrradiance(vec3(n.x * envmapData.z - n.y * envmapData.y, n.x * envmapData.y + n.y * envmapData.z, n.z), shirr) / 3.14159265);'); NodeShader.write(frag, 'indirect += prefilteredColor * (f0 * envBRDF.x + envBRDF.y) * 1.5;'); diff --git a/armorpaint/Sources/MakeMeshPreview.ts b/armorpaint/Sources/MakeMeshPreview.ts index 727521e9..03e23a72 100644 --- a/armorpaint/Sources/MakeMeshPreview.ts +++ b/armorpaint/Sources/MakeMeshPreview.ts @@ -27,8 +27,8 @@ class MakeMeshPreview { NodeShaderContext.add_elem(con_mesh, "bone", 'short4norm'); NodeShaderContext.add_elem(con_mesh, "weight", 'short4norm'); NodeShader.add_function(vert, ShaderFunctions.str_getSkinningDualQuat); - NodeShader.add_uniform(vert, 'vec4 skinBones[128 * 2]', '_skinBones'); - NodeShader.add_uniform(vert, 'float posUnpack', '_posUnpack'); + NodeShader.add_uniform(vert, 'vec4 skinBones[128 * 2]', '_skin_bones'); + NodeShader.add_uniform(vert, 'float posUnpack', '_pos_unpack'); NodeShader.write_attrib(vert, 'vec4 skinA;'); NodeShader.write_attrib(vert, 'vec4 skinB;'); NodeShader.write_attrib(vert, 'getSkinningDualQuat(ivec4(bone * 32767), weight, skinA, skinB);'); @@ -40,7 +40,7 @@ class MakeMeshPreview { } ///end - NodeShader.add_uniform(vert, 'mat4 WVP', '_worldViewProjectionMatrix'); + NodeShader.add_uniform(vert, 'mat4 WVP', '_world_view_proj_matrix'); NodeShader.write_attrib(vert, `gl_Position = mul(vec4(${pos}.xyz, 1.0), WVP);`); let brushScale = (Context.raw.brushScale * Context.raw.brushNodesScale) + ""; diff --git a/armorpaint/Sources/MakePaint.ts b/armorpaint/Sources/MakePaint.ts index e3c55a5d..fbbe3677 100644 --- a/armorpaint/Sources/MakePaint.ts +++ b/armorpaint/Sources/MakePaint.ts @@ -79,7 +79,7 @@ class MakePaint { NodeShader.add_uniform(vert, 'mat4 WVP', '_decalLayerMatrix'); } else { - NodeShader.add_uniform(vert, 'mat4 WVP', '_worldViewProjectionMatrix'); + NodeShader.add_uniform(vert, 'mat4 WVP', '_world_view_proj_matrix'); } NodeShader.add_out(vert, 'vec4 ndc'); @@ -94,7 +94,7 @@ class MakePaint { NodeShader.add_uniform(frag, 'vec4 inp', '_inputBrush'); NodeShader.add_uniform(frag, 'vec4 inplast', '_inputBrushLast'); - NodeShader.add_uniform(frag, 'float aspectRatio', '_aspectRatioWindowF'); + NodeShader.add_uniform(frag, 'float aspectRatio', '_aspect_ratio_window'); NodeShader.write(frag, 'vec2 bsp = sp.xy * 2.0 - 1.0;'); NodeShader.write(frag, 'bsp.x *= aspectRatio;'); NodeShader.write(frag, 'bsp = bsp * 0.5 + 0.5;'); @@ -304,7 +304,7 @@ class MakePaint { } NodeShader.write(frag, 'pa_mask /= brushRadius;'); if (Config.raw.brush_3d) { - NodeShader.add_uniform(frag, 'vec3 eye', '_cameraPosition'); + NodeShader.add_uniform(frag, 'vec3 eye', '_camera_pos'); NodeShader.write(frag, 'pa_mask *= distance(eye, winp.xyz) / 1.5;'); } NodeShader.write(frag, 'pa_mask = pa_mask.xy * 0.5 + 0.5;'); diff --git a/armorpaint/Sources/MakeParticle.ts b/armorpaint/Sources/MakeParticle.ts index 7343a374..51325517 100644 --- a/armorpaint/Sources/MakeParticle.ts +++ b/armorpaint/Sources/MakeParticle.ts @@ -23,7 +23,7 @@ class MakeParticle { NodeShader.write_attrib(vert, 'emitFrom = emitFrom * brushRadius - brushRadius / 2.0;'); NodeShader.write_attrib(vert, 'spos.xyz += emitFrom * vec3(256.0, 256.0, 256.0);'); - NodeShader.add_uniform(vert, 'mat4 pd', '_particleData'); + NodeShader.add_uniform(vert, 'mat4 pd', '_particle_data'); let str_tex_hash = "float fhash(int n) { return fract(sin(float(n)) * 43758.5453); }\n"; NodeShader.add_function(vert, str_tex_hash); @@ -56,7 +56,7 @@ class MakeParticle { NodeShader.write(vert, 'spos.xyz += p_location;'); NodeShader.write(vert, 'spos.xyz *= vec3(0.01, 0.01, 0.01);'); - NodeShader.add_uniform(vert, 'mat4 WVP', '_worldViewProjectionMatrix'); + NodeShader.add_uniform(vert, 'mat4 WVP', '_world_view_proj_matrix'); NodeShader.write(vert, 'gl_Position = mul(spos, WVP);'); NodeShader.add_uniform(vert, 'vec4 inp', '_inputBrush'); @@ -89,7 +89,7 @@ class MakeParticle { ///if arm_physics if (Context.raw.particlePhysics) { NodeShader.add_out(vert, 'vec4 wpos'); - NodeShader.add_uniform(vert, 'mat4 W', '_worldMatrix'); + NodeShader.add_uniform(vert, 'mat4 W', '_world_matrix'); NodeShader.write_attrib(vert, 'wpos = mul(vec4(pos.xyz, 1.0), W);'); NodeShader.add_uniform(frag, 'vec3 particleHit', '_particleHit'); NodeShader.add_uniform(frag, 'vec3 particleHitLast', '_particleHitLast'); diff --git a/armorsculpt/Assets/Scene.arm b/armorsculpt/Assets/Scene.arm index 6b8565c9..95b306b8 100644 Binary files a/armorsculpt/Assets/Scene.arm and b/armorsculpt/Assets/Scene.arm differ diff --git a/armorsculpt/Sources/MakeBrush.ts b/armorsculpt/Sources/MakeBrush.ts index d1dc345e..d5759a68 100644 --- a/armorsculpt/Sources/MakeBrush.ts +++ b/armorsculpt/Sources/MakeBrush.ts @@ -12,12 +12,12 @@ class MakeBrush { NodeShader.write(frag, 'float depth = textureLod(gbufferD, vec2(inp.x, 1.0 - inp.y), 0.0).r;'); ///end - NodeShader.add_uniform(frag, 'mat4 invVP', '_inverseViewProjectionMatrix'); + NodeShader.add_uniform(frag, 'mat4 invVP', '_inv_view_proj_matrix'); NodeShader.write(frag, 'vec4 winp = vec4(vec2(inp.x, 1.0 - inp.y) * 2.0 - 1.0, depth * 2.0 - 1.0, 1.0);'); NodeShader.write(frag, 'winp = mul(winp, invVP);'); NodeShader.write(frag, 'winp.xyz /= winp.w;'); - NodeShader.add_uniform(frag, 'mat4 W', '_worldMatrix'); + NodeShader.add_uniform(frag, 'mat4 W', '_world_matrix'); NodeShader.write_attrib(frag, 'vec3 wposition = mul(texelFetch(texpaint_undo, ivec2(texCoord.x * textureSize(texpaint_undo, 0).x, texCoord.y * textureSize(texpaint_undo, 0).y), 0), W).xyz;'); diff --git a/armorsculpt/Sources/MakeMesh.ts b/armorsculpt/Sources/MakeMesh.ts index 94416a5f..f39ce303 100644 --- a/armorsculpt/Sources/MakeMesh.ts +++ b/armorsculpt/Sources/MakeMesh.ts @@ -22,13 +22,13 @@ class MakeMesh { NodeShader.add_out(vert, 'vec2 texCoord'); frag.wvpposition = true; NodeShader.add_out(vert, 'vec4 prevwvpposition'); - NodeShader.add_uniform(vert, 'mat4 VP', '_viewProjectionMatrix'); - NodeShader.add_uniform(vert, 'mat4 prevWVP', '_prevWorldViewProjectionMatrix'); + NodeShader.add_uniform(vert, 'mat4 VP', '_view_proj_matrix'); + NodeShader.add_uniform(vert, 'mat4 prevWVP', '_prev_world_view_proj_matrix'); vert.wposition = true; let textureCount = 0; - NodeShader.add_uniform(vert, 'mat4 WVP', '_worldViewProjectionMatrix'); + NodeShader.add_uniform(vert, 'mat4 WVP', '_world_view_proj_matrix'); NodeShader.add_uniform(vert, 'sampler2D texpaint_vert', '_texpaint_vert' + Project.layers[0].id); NodeShader.write(vert, 'vec3 meshpos = texelFetch(texpaint_vert, ivec2(gl_VertexID % textureSize(texpaint_vert, 0).x, gl_VertexID / textureSize(texpaint_vert, 0).y), 0).xyz;'); // + pos.xyz * 0.000001 @@ -40,7 +40,7 @@ class MakeMesh { NodeShader.add_out(frag, 'vec4 fragColor[3]'); - NodeShader.add_uniform(vert, "mat3 N", "_normalMatrix"); + NodeShader.add_uniform(vert, "mat3 N", "_normal_matrix"); NodeShader.add_out(vert, "vec3 wnormal"); NodeShader.write_attrib(vert, 'int baseVertex0 = gl_VertexID - (gl_VertexID % 3);'); @@ -106,7 +106,7 @@ class MakeMesh { if (Context.raw.viewportMode == ViewportMode.ViewLit && Context.raw.renderMode == RenderMode.RenderForward) { textureCount += 4; NodeShader.add_uniform(frag, 'sampler2D senvmapBrdf', "$brdf.k"); - NodeShader.add_uniform(frag, 'sampler2D senvmapRadiance', '_envmapRadiance'); + NodeShader.add_uniform(frag, 'sampler2D senvmapRadiance', '_envmap_radiance'); NodeShader.add_uniform(frag, 'sampler2D sltcMat', '_ltcMat'); NodeShader.add_uniform(frag, 'sampler2D sltcMag', '_ltcMag'); } @@ -251,19 +251,19 @@ class MakeMesh { frag.vVec = true; NodeShader.write(frag, 'float dotNV = max(0.0, dot(n, vVec));'); NodeShader.write(frag, 'vec2 envBRDF = texelFetch(senvmapBrdf, ivec2(vec2(roughness, 1.0 - dotNV) * 256.0), 0).xy;'); - NodeShader.add_uniform(frag, 'int envmapNumMipmaps', '_envmapNumMipmaps'); + NodeShader.add_uniform(frag, 'int envmapNumMipmaps', '_envmap_num_mipmaps'); NodeShader.add_uniform(frag, 'vec4 envmapData', '_envmapData'); // angle, sin(angle), cos(angle), strength NodeShader.write(frag, 'vec3 wreflect = reflect(-vVec, n);'); NodeShader.write(frag, 'float envlod = roughness * float(envmapNumMipmaps);'); NodeShader.add_function(frag, ShaderFunctions.str_envMapEquirect); NodeShader.write(frag, 'vec3 prefilteredColor = textureLod(senvmapRadiance, envMapEquirect(wreflect, envmapData.x), envlod).rgb;'); - NodeShader.add_uniform(frag, 'vec3 lightArea0', '_lightArea0'); - NodeShader.add_uniform(frag, 'vec3 lightArea1', '_lightArea1'); - NodeShader.add_uniform(frag, 'vec3 lightArea2', '_lightArea2'); - NodeShader.add_uniform(frag, 'vec3 lightArea3', '_lightArea3'); + NodeShader.add_uniform(frag, 'vec3 lightArea0', '_light_area0'); + NodeShader.add_uniform(frag, 'vec3 lightArea1', '_light_area1'); + NodeShader.add_uniform(frag, 'vec3 lightArea2', '_light_area2'); + NodeShader.add_uniform(frag, 'vec3 lightArea3', '_light_area3'); NodeShader.add_function(frag, ShaderFunctions.str_ltcEvaluate); - NodeShader.add_uniform(frag, 'vec3 lightPos', '_pointPosition'); - NodeShader.add_uniform(frag, 'vec3 lightColor', '_pointColor'); + NodeShader.add_uniform(frag, 'vec3 lightPos', '_point_pos'); + NodeShader.add_uniform(frag, 'vec3 lightColor', '_point_color'); NodeShader.write(frag, 'float ldist = distance(wposition, lightPos);'); NodeShader.write(frag, 'const float LUT_SIZE = 64.0;'); NodeShader.write(frag, 'const float LUT_SCALE = (LUT_SIZE - 1.0) / LUT_SIZE;'); @@ -280,7 +280,7 @@ class MakeMesh { NodeShader.write(frag, 'vec3 direct = albedo * ltcdiff + ltcspec * 0.05;'); NodeShader.write(frag, 'direct *= lightColor * (1.0 / (ldist * ldist));'); - NodeShader.add_uniform(frag, 'vec4 shirr[7]', '_envmapIrradiance'); + NodeShader.add_uniform(frag, 'vec4 shirr[7]', '_envmap_irradiance'); NodeShader.add_function(frag, ShaderFunctions.str_shIrradiance); NodeShader.write(frag, 'vec3 indirect = albedo * (shIrradiance(vec3(n.x * envmapData.z - n.y * envmapData.y, n.x * envmapData.y + n.y * envmapData.z, n.z), shirr) / 3.14159265);'); NodeShader.write(frag, 'indirect += prefilteredColor * (f0 * envBRDF.x + envBRDF.y) * 1.5;'); diff --git a/armorsculpt/Sources/MakeMeshPreview.ts b/armorsculpt/Sources/MakeMeshPreview.ts index 7411cadb..9a0d6d3f 100644 --- a/armorsculpt/Sources/MakeMeshPreview.ts +++ b/armorsculpt/Sources/MakeMeshPreview.ts @@ -27,8 +27,8 @@ class MakeMeshPreview { NodeShaderContext.add_elem(con_mesh, "bone", 'short4norm'); NodeShaderContext.add_elem(con_mesh, "weight", 'short4norm'); NodeShader.add_function(vert, ShaderFunctions.str_getSkinningDualQuat); - NodeShader.add_uniform(vert, 'vec4 skinBones[128 * 2]', '_skinBones'); - NodeShader.add_uniform(vert, 'float posUnpack', '_posUnpack'); + NodeShader.add_uniform(vert, 'vec4 skinBones[128 * 2]', '_skin_bones'); + NodeShader.add_uniform(vert, 'float posUnpack', '_pos_unpack'); NodeShader.write_attrib(vert, 'vec4 skinA;'); NodeShader.write_attrib(vert, 'vec4 skinB;'); NodeShader.write_attrib(vert, 'getSkinningDualQuat(ivec4(bone * 32767), weight, skinA, skinB);'); @@ -40,7 +40,7 @@ class MakeMeshPreview { } ///end - NodeShader.add_uniform(vert, 'mat4 WVP', '_worldViewProjectionMatrix'); + NodeShader.add_uniform(vert, 'mat4 WVP', '_world_view_proj_matrix'); NodeShader.write_attrib(vert, `gl_Position = mul(vec4(${pos}.xyz, 1.0), WVP);`); let brushScale = (Context.raw.brushScale * Context.raw.brushNodesScale) + ""; diff --git a/base/Assets/shader_datas.arm b/base/Assets/shader_datas.arm index 766fa113..ffea9010 100644 Binary files a/base/Assets/shader_datas.arm and b/base/Assets/shader_datas.arm differ diff --git a/base/Sources/MakeVoxel.ts b/base/Sources/MakeVoxel.ts index 64420697..991cf9d8 100644 --- a/base/Sources/MakeVoxel.ts +++ b/base/Sources/MakeVoxel.ts @@ -27,7 +27,7 @@ class MakeVoxel { pipeState.vertex_shader = g4_shader_from_source(MakeVoxel.voxelSource(), shader_type_t.VERTEX); g4_pipeline_compile(pipeState); - data.constants = [{ name: "W", type: "mat4", link: "_worldMatrix" }, { name: "N", type: "mat3", link: "_normalMatrix" }]; + data.constants = [{ name: "W", type: "mat4", link: "_world_matrix" }, { name: "N", type: "mat3", link: "_normal_matrix" }]; data._constants = [g4_pipeline_get_const_loc(pipeState, "W"), g4_pipeline_get_const_loc(pipeState, "N")]; data.texture_units = [{ name: "texpaint_pack" }, { name: "voxels", is_image: true }]; data._tex_units = [g4_pipeline_get_tex_unit(pipeState, "texpaint_pack"), g4_pipeline_get_tex_unit(pipeState, "voxels")]; diff --git a/base/Sources/ParserMaterial.ts b/base/Sources/ParserMaterial.ts index e766d1fa..0a0d5d25 100644 --- a/base/Sources/ParserMaterial.ts +++ b/base/Sources/ParserMaterial.ts @@ -175,21 +175,21 @@ class ParserMaterial { else { NodeShader.add_out(vert, "vec3 bposition"); NodeShader.add_uniform(vert, "vec3 dim", "_dim"); - NodeShader.add_uniform(vert, "vec3 hdim", "_halfDim"); + NodeShader.add_uniform(vert, "vec3 hdim", "_half_dim"); NodeShader.write_attrib(vert, `bposition = (pos.xyz + hdim) / dim;`); } } if (frag.wposition) { - NodeShader.add_uniform(vert, "mat4 W", "_worldMatrix"); + NodeShader.add_uniform(vert, "mat4 W", "_world_matrix"); NodeShader.add_out(vert, "vec3 wposition"); NodeShader.write_attrib(vert, `wposition = vec4(mul(vec4(pos.xyz, 1.0), W)).xyz;`); } else if (vert.wposition) { - NodeShader.add_uniform(vert, "mat4 W", "_worldMatrix"); + NodeShader.add_uniform(vert, "mat4 W", "_world_matrix"); NodeShader.write_attrib(vert, `vec3 wposition = vec4(mul(vec4(pos.xyz, 1.0), W)).xyz;`); } if (frag.vposition) { - NodeShader.add_uniform(vert, "mat4 WV", "_worldViewMatrix"); + NodeShader.add_uniform(vert, "mat4 WV", "_world_view_matrix"); NodeShader.add_out(vert, "vec3 vposition"); NodeShader.write_attrib(vert, `vposition = vec4(mul(vec4(pos.xyz, 1.0), WV)).xyz;`); } @@ -204,31 +204,31 @@ class ParserMaterial { } if (frag.wtangent) { // NodeShaderContext.add_elem(con, "tang", "short4norm"); - // NodeShader.add_uniform(vert, "mat3 N", "_normalMatrix"); + // NodeShader.add_uniform(vert, "mat3 N", "_normal_matrix"); NodeShader.add_out(vert, "vec3 wtangent"); // NodeShader.write_attrib(vert, `wtangent = normalize(mul(tang.xyz, N));`); NodeShader.write_attrib(vert, `wtangent = vec3(0.0, 0.0, 0.0);`); } if (frag.vVecCam) { - NodeShader.add_uniform(vert, "mat4 WV", "_worldViewMatrix"); + NodeShader.add_uniform(vert, "mat4 WV", "_world_view_matrix"); NodeShader.add_out(vert, "vec3 eyeDirCam"); NodeShader.write_attrib(vert, `eyeDirCam = vec4(mul(vec4(pos.xyz, 1.0), WV)).xyz; eyeDirCam.z *= -1.0;`); NodeShader.write_attrib(frag, `vec3 vVecCam = normalize(eyeDirCam);`); } if (frag.vVec) { - NodeShader.add_uniform(vert, "vec3 eye", "_cameraPosition"); + NodeShader.add_uniform(vert, "vec3 eye", "_camera_pos"); NodeShader.add_out(vert, "vec3 eyeDir"); NodeShader.write_attrib(vert, `eyeDir = eye - wposition;`); NodeShader.write_attrib(frag, `vec3 vVec = normalize(eyeDir);`); } if (frag.n) { - NodeShader.add_uniform(vert, "mat3 N", "_normalMatrix"); + NodeShader.add_uniform(vert, "mat3 N", "_normal_matrix"); NodeShader.add_out(vert, "vec3 wnormal"); NodeShader.write_attrib(vert, `wnormal = mul(vec3(nor.xy, pos.w), N);`); NodeShader.write_attrib(frag, `vec3 n = normalize(wnormal);`); } else if (vert.n) { - NodeShader.add_uniform(vert, "mat3 N", "_normalMatrix"); + NodeShader.add_uniform(vert, "mat3 N", "_normal_matrix"); NodeShader.write_attrib(vert, `vec3 wnormal = normalize(mul(vec3(nor.xy, pos.w), N));`); } if (frag.nAttr) { @@ -1153,7 +1153,7 @@ class ParserMaterial { } else if (node.type == "CAMERA") { if (socket == node.outputs[1]) { // View Z Depth - NodeShader.add_uniform(ParserMaterial.curshader, "vec2 cameraProj", "_cameraPlaneProj"); + NodeShader.add_uniform(ParserMaterial.curshader, "vec2 cameraProj", "_camera_plane_proj"); ///if (krom_direct3d11 || krom_direct3d12 || krom_metal || krom_vulkan) ParserMaterial.curshader.wvpposition = true; return "(cameraProj.y / ((wvpposition.z / wvpposition.w) - cameraProj.x))"; @@ -1162,7 +1162,7 @@ class ParserMaterial { ///end } else { // View Distance - NodeShader.add_uniform(ParserMaterial.curshader, "vec3 eye", "_cameraPosition"); + NodeShader.add_uniform(ParserMaterial.curshader, "vec3 eye", "_camera_pos"); ParserMaterial.curshader.wposition = true; return "distance(eye, wposition)"; } @@ -1295,15 +1295,15 @@ class ParserMaterial { } else if (node.type == "OBJECT_INFO") { if (socket == node.outputs[1]) { // Object Index - NodeShader.add_uniform(ParserMaterial.curshader, "float objectInfoIndex", "_objectInfoIndex"); + NodeShader.add_uniform(ParserMaterial.curshader, "float objectInfoIndex", "_object_info_index"); return "objectInfoIndex"; } else if (socket == node.outputs[2]) { // Material Index - NodeShader.add_uniform(ParserMaterial.curshader, "float objectInfoMaterialIndex", "_objectInfoMaterialIndex"); + NodeShader.add_uniform(ParserMaterial.curshader, "float objectInfoMaterialIndex", "_object_info_material_index"); return "objectInfoMaterialIndex"; } else if (socket == node.outputs[3]) { // Random - NodeShader.add_uniform(ParserMaterial.curshader, "float objectInfoRandom", "_objectInfoRandom"); + NodeShader.add_uniform(ParserMaterial.curshader, "float objectInfoRandom", "_object_info_random"); return "objectInfoRandom"; } } diff --git a/base/Sources/PhysicsBody.ts b/base/Sources/PhysicsBody.ts index 52742a78..2b5b8745 100644 --- a/base/Sources/PhysicsBody.ts +++ b/base/Sources/PhysicsBody.ts @@ -88,10 +88,14 @@ class PhysicsBody { static init = (pb: PhysicsBodyRaw, o: object_t) => { pb.object = o; - if (pb.ready) return; + if (pb.ready) { + return; + } pb.ready = true; - if (pb.object.ext.constructor != mesh_object_t) return; // No mesh data + if (pb.object.ext_type != "mesh_object_t") { + return; // No mesh data + } let transform = o.transform; let physics = PhysicsWorld.active; @@ -185,7 +189,9 @@ class PhysicsBody { PhysicsBody.vec1.setZ(0); let inertia = PhysicsBody.vec1; - if (pb.mass > 0) pb.btshape.calculateLocalInertia(pb.mass, inertia); + if (pb.mass > 0) { + pb.btshape.calculateLocalInertia(pb.mass, inertia); + } let bodyCI = new Ammo.btRigidBodyConstructionInfo(pb.mass, pb.motionState, pb.btshape, inertia); pb.body = new Ammo.btRigidBody(bodyCI); @@ -199,9 +205,15 @@ class PhysicsBody { pb.body.setDamping(pb.linearDamping, pb.angularDamping); PhysicsBody.setLinearFactor(pb, pb.linearFactors[0], pb.linearFactors[1], pb.linearFactors[2]); PhysicsBody.setAngularFactor(pb, pb.angularFactors[0], pb.angularFactors[1], pb.angularFactors[2]); - if (pb.trigger) pb.body.setCollisionFlags(pb.body.getCollisionFlags() | CollisionFlags.CF_NO_CONTACT_RESPONSE); - if (pb.mass == 0.0) pb.body.setCollisionFlags(pb.body.getCollisionFlags() | CollisionFlags.CF_STATIC_OBJECT); - if (pb.ccd) PhysicsBody.setCcd(pb, transform.radius); + if (pb.trigger) { + pb.body.setCollisionFlags(pb.body.getCollisionFlags() | CollisionFlags.CF_NO_CONTACT_RESPONSE); + } + if (pb.mass == 0.0) { + pb.body.setCollisionFlags(pb.body.getCollisionFlags() | CollisionFlags.CF_STATIC_OBJECT); + } + if (pb.ccd) { + PhysicsBody.setCcd(pb, transform.radius); + } pb.bodyScaleX = pb.currentScaleX = transform.scale.x; pb.bodyScaleY = pb.currentScaleY = transform.scale.y; @@ -218,7 +230,9 @@ class PhysicsBody { } static physicsUpdate = (pb: PhysicsBodyRaw) => { - if (!pb.ready) return; + if (!pb.ready) { + return; + } let trans = pb.body.getWorldTransform(); let p = trans.getOrigin(); @@ -343,7 +357,9 @@ class PhysicsBody { PhysicsBody.quat1.setValue(PhysicsBody.quat.x, PhysicsBody.quat.y, PhysicsBody.quat.z, PhysicsBody.quat.w); PhysicsBody.trans1.setRotation(PhysicsBody.quat1); pb.body.setWorldTransform(PhysicsBody.trans1); - if (pb.currentScaleX != t.scale.x || pb.currentScaleY != t.scale.y || pb.currentScaleZ != t.scale.z) PhysicsBody.setScale(pb, t.scale); + if (pb.currentScaleX != t.scale.x || pb.currentScaleY != t.scale.y || pb.currentScaleZ != t.scale.z) { + PhysicsBody.setScale(pb, t.scale); + } PhysicsBody.activate(pb); }