完成主要交互、高性能组件、国际化和A型传感器数据包接收
This commit is contained in:
@@ -117,19 +117,31 @@ void main() {
|
||||
float value01 = clamp((vValue - uMinV) / max(1e-6, (uMaxV - uMinV)), 0.0, 1.0);
|
||||
vec3 dataCol = dataColorRamp(value01);
|
||||
|
||||
bool hasData = (uHasData != 0);
|
||||
vec3 baseColor = hasData ? dataCol : metalBase;
|
||||
// bool hasData = (uHasData != 0);
|
||||
// vec3 baseColor = hasData ? dataCol : metalBase;
|
||||
vec3 baseColor = metalBase;
|
||||
|
||||
// dataViz: flat/unlit, no lighting modulation (keep pure baseColor)
|
||||
if (uRenderMode == 1) {
|
||||
FragColor = vec4(clamp(baseColor, 0.0, 1.0), 1.0);
|
||||
return;
|
||||
}
|
||||
|
||||
// Mostly flat, with a slight bevel near the edge to catch highlights.
|
||||
float slope = mix(0.06, 0.28, smoothstep(0.55, 1.0, r01));
|
||||
vec3 N = normalize(vec3(p.x * slope, 1.0, p.y * slope));
|
||||
// Face the camera: dots live on the panel front face (XY plane), so the base normal points -Z.
|
||||
// vec3 N = normalize(vec3(p.x * slope, p.y * slope, -1.0));
|
||||
vec3 N = normalize(vec3(0.0, 0.15, -1.0));
|
||||
vec3 V = normalize(uCameraPos - vWorldPos);
|
||||
|
||||
float metallic = hasData ? 0.0 : 0.90;
|
||||
float roughness = hasData ? 0.78 : ((uRenderMode == 1) ? 0.70 : 0.55);
|
||||
// float metallic = hasData ? 0.0 : 0.90;
|
||||
// float roughness = hasData ? 0.78 : ((uRenderMode == 1) ? 0.70 : 0.55);
|
||||
float metallic = 0.90;
|
||||
float roughness = 0.55;
|
||||
|
||||
vec3 keyL = normalize(vec3(0.55, 1.00, 0.25));
|
||||
vec3 fillL = normalize(vec3(-0.30, 0.70, -0.80));
|
||||
// "Front light": make the light come from the camera direction (like a headlight/flashlight).
|
||||
vec3 keyL = V;
|
||||
vec3 fillL = V;
|
||||
vec3 keyC = vec3(1.00, 0.98, 0.95) * 1.8;
|
||||
vec3 fillC = vec3(0.85, 0.90, 1.00) * 0.9;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user