From 72219a28cf6066fe0e3f0fe1b1935490dbc165a7 Mon Sep 17 00:00:00 2001 From: jk20012001 Date: Thu, 22 Sep 2022 10:27:51 +0800 Subject: [PATCH] [code] move decode32 to unpack.chunk (#12823) --- .../functionalities/morph-animation.chunk | 2 +- .../assets/chunks/common/common-define.chunk | 18 ++++-------------- editor/assets/chunks/common/data/unpack.chunk | 12 ++++++++++++ editor/assets/chunks/legacy/skinning.chunk | 3 ++- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/editor/assets/chunks/builtin/functionalities/morph-animation.chunk b/editor/assets/chunks/builtin/functionalities/morph-animation.chunk index 9d69842a1f5..7bd5d8fb13d 100644 --- a/editor/assets/chunks/builtin/functionalities/morph-animation.chunk +++ b/editor/assets/chunks/builtin/functionalities/morph-animation.chunk @@ -1,4 +1,4 @@ -#include // decode32 +#include // decode32 #include /** diff --git a/editor/assets/chunks/common/common-define.chunk b/editor/assets/chunks/common/common-define.chunk index 4f9a0195a41..4d4acc656b7 100644 --- a/editor/assets/chunks/common/common-define.chunk +++ b/editor/assets/chunks/common/common-define.chunk @@ -43,17 +43,7 @@ #pragma define CC_HANDLE_RT_SAMPLE_FLIP(uv) uv = cc_cameraPos.w > 1.0 ? vec2(uv.x, 1.0 - uv.y) : uv #pragma define CC_HANDLE_GET_CLIP_FLIP(uv) uv = cc_cameraPos.w == 0.0 ? vec2(uv.x, -uv.y) : uv -#pragma define STEP_FINT_128(v) (step(128.0, (v) + 0.5)) -#pragma define MOD_FINT_128(v) (mod(float(int((v) + 0.5)), 128.0)) - -highp float decode32 (highp vec4 rgba) { - rgba = rgba * 255.0; - highp float Sign = 1.0 - STEP_FINT_128(rgba[3]) * 2.0; - highp float Exponent = 2.0 * MOD_FINT_128(rgba[3]) + STEP_FINT_128(rgba[2]) - 127.0; - highp float Mantissa = MOD_FINT_128(rgba[2]) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0; - return Sign * exp2(Exponent - 23.0) * Mantissa; -} - -float isNan(float val) { - return (val <= 0.0 || 0.0 <= val) ? 0.0 : 1.0; -} +// CC_USE_LIGHTMAP Values +#define CC_LIGHTMAP_DISABLED 0 +#define CC_LIGHTMAP_ALL_IN_ONE 1 +#define CC_LIGHTMAP_CC_LIGHTMAP_INDIRECT_OCCLUSION 2 diff --git a/editor/assets/chunks/common/data/unpack.chunk b/editor/assets/chunks/common/data/unpack.chunk index 0af8a618fa5..c765bca2f70 100644 --- a/editor/assets/chunks/common/data/unpack.chunk +++ b/editor/assets/chunks/common/data/unpack.chunk @@ -1,5 +1,17 @@ // Copyright (c) 2017-2020 Xiamen Yaji Software Co., Ltd. +#pragma define STEP_FINT_128(v) (step(128.0, (v) + 0.5)) +#pragma define MOD_FINT_128(v) (mod(float(int((v) + 0.5)), 128.0)) + +highp float decode32 (highp vec4 rgba) { + rgba = rgba * 255.0; + highp float Sign = 1.0 - STEP_FINT_128(rgba[3]) * 2.0; + highp float Exponent = 2.0 * MOD_FINT_128(rgba[3]) + STEP_FINT_128(rgba[2]) - 127.0; + highp float Mantissa = MOD_FINT_128(rgba[2]) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0; + return Sign * exp2(Exponent - 23.0) * Mantissa; +} + + vec4 packRGBE (vec3 rgb) { highp float maxComp = max(max(rgb.r, rgb.g), rgb.b); highp float e = 128.0; diff --git a/editor/assets/chunks/legacy/skinning.chunk b/editor/assets/chunks/legacy/skinning.chunk index 9ecae15a4c0..80cd123b962 100644 --- a/editor/assets/chunks/legacy/skinning.chunk +++ b/editor/assets/chunks/legacy/skinning.chunk @@ -1,4 +1,5 @@ #include +#include //decode32 #include #include -//#include \ No newline at end of file +//#include