{"id":1455,"date":"2026-02-06T08:21:24","date_gmt":"2026-02-06T08:21:24","guid":{"rendered":"https:\/\/saiweiglass.com\/?page_id=1455"},"modified":"2026-02-06T08:35:46","modified_gmt":"2026-02-06T08:35:46","slug":"light-transmittance-reflectance-analyzer","status":"publish","type":"page","link":"https:\/\/saiweiglass.com\/es\/products\/ar-glass\/light-transmittance-reflectance-analyzer\/","title":{"rendered":"Analizador de reflectancia y transmitancia de luz"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-dd2d0fb\" data-block-id=\"dd2d0fb\"><style>.stk-dd2d0fb {margin-bottom:0px !important;}.stk-dd2d0fb-column{--stk-columns-spacing:var(--stk--preset--spacing--none, 0px) !important;}<\/style><div class=\"stk-row stk-inner-blocks has-text-align-center stk-block-content stk-content-align stk-dd2d0fb-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-f2cd714\" data-v=\"4\" data-block-id=\"f2cd714\"><style>.stk-f2cd714-container{margin-top:var(--stk--preset--spacing--60, 2.25rem) !important;margin-right:var(--stk--preset--spacing--60, 2.25rem) !important;margin-bottom:var(--stk--preset--spacing--60, 2.25rem) !important;margin-left:var(--stk--preset--spacing--60, 2.25rem) !important;padding-top:var(--stk--preset--spacing--none, 0px) !important;padding-right:var(--stk--preset--spacing--none, 0px) !important;padding-bottom:var(--stk--preset--spacing--none, 0px) !important;padding-left:var(--stk--preset--spacing--none, 0px) !important;}.stk-f2cd714 {align-self:flex-end !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-f2cd714-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-f2cd714-inner-blocks\"><div class=\"ct-breadcrumbs\" data-source=\"rankmath\" ><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Home<\/span><\/p><\/nav><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-8c03f97\" data-block-id=\"8c03f97\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-8c03f97-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-5012de4\" data-v=\"4\" data-block-id=\"5012de4\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-5012de4-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-5012de4-inner-blocks\">\n<!-- \n  SAIWEI GLASS - Light Transmittance & Reflectance Performance Tool\n  Standalone Custom HTML Module for WordPress Gutenberg\n  Compatible with Blocksy \/ Stackable \/ Astra \/ Elementor\n-->\n<section id=\"saiwei-transmittance-calc\">\n  <style>\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&family=Instrument+Serif:ital@0;1&display=swap');\n\n    #saiwei-transmittance-calc * {\n      margin: 0;\n      padding: 0;\n      box-sizing: border-box;\n    }\n\n    #saiwei-transmittance-calc {\n      font-family: 'DM Sans', sans-serif !important;\n      background: #f7f9fc;\n      padding: 40px 20px;\n      width: 100%;\n      color: #1a1f36 !important;\n      position: relative;\n    }\n\n    #saiwei-transmittance-calc .tc-inner {\n      max-width: 1100px;\n      margin: 0 auto;\n    }\n\n    #saiwei-transmittance-calc .tc-header {\n      text-align: center;\n      margin-bottom: 36px;\n    }\n\n    #saiwei-transmittance-calc .tc-eyebrow {\n      font-size: 11px !important;\n      font-weight: 600 !important;\n      letter-spacing: 2.5px;\n      text-transform: uppercase;\n      color: #1860A8 !important;\n      margin-bottom: 12px;\n      display: block;\n    }\n\n    #saiwei-transmittance-calc h2,\n    #saiwei-transmittance-calc h3 {\n      margin: 0 !important;\n      padding: 0 !important;\n      border: none !important;\n      font-style: normal !important;\n      text-transform: none !important;\n      letter-spacing: normal !important;\n      -webkit-text-stroke: 0 !important;\n      background: none !important;\n    }\n\n    #saiwei-transmittance-calc h2.tc-title {\n      font-family: 'Instrument Serif', serif !important;\n      font-size: 32px !important;\n      font-weight: 400 !important;\n      color: #1a1f36 !important;\n      line-height: 1.2 !important;\n      margin-bottom: 10px !important;\n    }\n\n    #saiwei-transmittance-calc .tc-subtitle {\n      font-size: 15px !important;\n      color: #5a6178 !important;\n      line-height: 1.6;\n      max-width: 640px;\n      margin: 0 auto;\n    }\n\n    \/* Layout *\/\n    #saiwei-transmittance-calc .tc-layout {\n      display: grid;\n      grid-template-columns: 340px 1fr;\n      gap: 24px;\n      align-items: start;\n    }\n\n    \/* Controls panel *\/\n    #saiwei-transmittance-calc .tc-controls {\n      background: #fff;\n      border-radius: 16px;\n      box-shadow: 0 1px 3px rgba(26,31,54,0.06), 0 8px 32px rgba(26,31,54,0.04);\n      padding: 28px;\n    }\n\n    #saiwei-transmittance-calc h3.tc-ctrl-title {\n      font-family: 'DM Sans', sans-serif !important;\n      font-size: 13px !important;\n      font-weight: 700 !important;\n      letter-spacing: 1.5px !important;\n      text-transform: uppercase !important;\n      color: #304890 !important;\n      margin-bottom: 20px !important;\n      display: flex;\n      align-items: center;\n      gap: 8px;\n    }\n\n    #saiwei-transmittance-calc h3.tc-ctrl-title svg {\n      width: 16px;\n      height: 16px;\n      stroke: #304890;\n      fill: none;\n      stroke-width: 2;\n    }\n\n    #saiwei-transmittance-calc .tc-field {\n      margin-bottom: 18px;\n    }\n\n    #saiwei-transmittance-calc .tc-label {\n      font-size: 13px !important;\n      font-weight: 600 !important;\n      color: #5a6178 !important;\n      margin-bottom: 8px;\n      display: block;\n    }\n\n    #saiwei-transmittance-calc .tc-select-wrap {\n      position: relative;\n    }\n\n    #saiwei-transmittance-calc .tc-select-wrap::after {\n      content: '';\n      position: absolute;\n      right: 14px;\n      top: 50%;\n      transform: translateY(-50%);\n      width: 0;\n      height: 0;\n      border-left: 5px solid transparent;\n      border-right: 5px solid transparent;\n      border-top: 5px solid #304890;\n      pointer-events: none;\n    }\n\n    #saiwei-transmittance-calc select {\n      font-family: 'DM Sans', sans-serif !important;\n      width: 100%;\n      height: 44px;\n      padding: 0 36px 0 14px;\n      font-size: 13.5px !important;\n      color: #1a1f36 !important;\n      background: #f4f5f9 !important;\n      border: 1px solid #e2e5ef;\n      border-radius: 10px;\n      appearance: none;\n      -webkit-appearance: none;\n      -moz-appearance: none;\n      outline: none;\n      cursor: pointer;\n      transition: border-color 0.2s ease;\n      line-height: 44px;\n    }\n\n    #saiwei-transmittance-calc select:focus {\n      border-color: #304890;\n    }\n\n    #saiwei-transmittance-calc select option {\n      background: #fff !important;\n      color: #1a1f36 !important;\n      padding: 8px;\n      font-size: 13.5px !important;\n    }\n\n    \/* Slider *\/\n    #saiwei-transmittance-calc .tc-slider-row {\n      display: flex;\n      align-items: center;\n      gap: 12px;\n    }\n\n    #saiwei-transmittance-calc input[type=\"range\"] {\n      flex: 1;\n      -webkit-appearance: none;\n      appearance: none;\n      height: 6px;\n      background: #e2e5ef;\n      border-radius: 3px;\n      outline: none;\n    }\n\n    #saiwei-transmittance-calc input[type=\"range\"]::-webkit-slider-thumb {\n      -webkit-appearance: none;\n      width: 20px;\n      height: 20px;\n      border-radius: 50%;\n      background: #304890;\n      cursor: pointer;\n      box-shadow: 0 2px 8px rgba(48,72,144,0.3);\n    }\n\n    #saiwei-transmittance-calc input[type=\"range\"]::-moz-range-thumb {\n      width: 20px;\n      height: 20px;\n      border-radius: 50%;\n      background: #304890;\n      cursor: pointer;\n      border: none;\n      box-shadow: 0 2px 8px rgba(48,72,144,0.3);\n    }\n\n    #saiwei-transmittance-calc .tc-slider-val {\n      min-width: 52px;\n      text-align: right;\n      font-size: 14px !important;\n      font-weight: 700 !important;\n      color: #304890 !important;\n    }\n\n    \/* Divider *\/\n    #saiwei-transmittance-calc .tc-divider {\n      height: 1px;\n      background: #eef0f5;\n      margin: 20px 0;\n    }\n\n    \/* Quick results *\/\n    #saiwei-transmittance-calc .tc-quick-results {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 10px;\n    }\n\n    #saiwei-transmittance-calc .tc-qr-item {\n      background: #f6f7fb;\n      border-radius: 10px;\n      padding: 14px;\n      text-align: center;\n    }\n\n    #saiwei-transmittance-calc .tc-qr-label {\n      font-size: 10px !important;\n      font-weight: 600 !important;\n      letter-spacing: 1px;\n      text-transform: uppercase;\n      color: #8b90a5 !important;\n      margin-bottom: 4px;\n    }\n\n    #saiwei-transmittance-calc .tc-qr-val {\n      font-size: 20px !important;\n      font-weight: 700 !important;\n      color: #304890 !important;\n    }\n\n    #saiwei-transmittance-calc .tc-qr-val.good {\n      color: #1a8a5e !important;\n    }\n\n    #saiwei-transmittance-calc .tc-qr-val.moderate {\n      color: #c0862e !important;\n    }\n\n    \/* Chart panel *\/\n    #saiwei-transmittance-calc .tc-chart-panel {\n      background: #fff;\n      border-radius: 16px;\n      box-shadow: 0 1px 3px rgba(26,31,54,0.06), 0 8px 32px rgba(26,31,54,0.04);\n      padding: 28px;\n    }\n\n    #saiwei-transmittance-calc .tc-chart-header {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      margin-bottom: 20px;\n      flex-wrap: wrap;\n      gap: 10px;\n    }\n\n    #saiwei-transmittance-calc h3.tc-chart-title {\n      font-family: 'DM Sans', sans-serif !important;\n      font-size: 16px !important;\n      font-weight: 600 !important;\n      color: #1a1f36 !important;\n    }\n\n    #saiwei-transmittance-calc .tc-chart-tabs {\n      display: flex;\n      gap: 4px;\n      background: #f4f5f9;\n      border-radius: 8px;\n      padding: 3px;\n    }\n\n    #saiwei-transmittance-calc .tc-tab {\n      font-family: 'DM Sans', sans-serif !important;\n      font-size: 12.5px !important;\n      font-weight: 600 !important;\n      padding: 7px 16px;\n      border: none;\n      border-radius: 6px;\n      background: transparent;\n      color: #6b7194 !important;\n      cursor: pointer;\n      transition: all 0.2s ease;\n    }\n\n    #saiwei-transmittance-calc .tc-tab.active {\n      background: #fff;\n      color: #304890 !important;\n      box-shadow: 0 1px 4px rgba(0,0,0,0.08);\n    }\n\n    #saiwei-transmittance-calc .tc-tab:hover:not(.active) {\n      color: #1a1f36 !important;\n    }\n\n    #saiwei-transmittance-calc .tc-chart-wrap {\n      position: relative;\n      height: 340px;\n      margin-bottom: 20px;\n    }\n\n    #saiwei-transmittance-calc .tc-chart-wrap canvas {\n      width: 100% !important;\n      height: 100% !important;\n    }\n\n    \/* Info cards below chart *\/\n    #saiwei-transmittance-calc .tc-info-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 12px;\n    }\n\n    #saiwei-transmittance-calc .tc-info-card {\n      border: 1px solid #e8eaf2;\n      border-radius: 10px;\n      padding: 16px;\n    }\n\n    #saiwei-transmittance-calc .tc-info-dot {\n      width: 10px;\n      height: 10px;\n      border-radius: 50%;\n      display: inline-block;\n      margin-right: 6px;\n    }\n\n    #saiwei-transmittance-calc .tc-info-name {\n      font-size: 13px !important;\n      font-weight: 600 !important;\n      color: #1a1f36 !important;\n      margin-bottom: 4px;\n    }\n\n    #saiwei-transmittance-calc .tc-info-desc {\n      font-size: 12px !important;\n      color: #6b7194 !important;\n      line-height: 1.5;\n    }\n\n    \/* Note *\/\n    #saiwei-transmittance-calc .tc-note {\n      margin-top: 20px;\n      padding: 14px 18px;\n      background: #f0f3fa;\n      border-left: 3px solid #304890;\n      border-radius: 0 8px 8px 0;\n      font-size: 12.5px !important;\n      color: #5a6178 !important;\n      line-height: 1.6;\n    }\n\n    \/* Responsive *\/\n    @media (max-width: 860px) {\n      #saiwei-transmittance-calc .tc-layout {\n        grid-template-columns: 1fr;\n      }\n      #saiwei-transmittance-calc .tc-info-grid {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    @media (max-width: 480px) {\n      #saiwei-transmittance-calc .tc-controls,\n      #saiwei-transmittance-calc .tc-chart-panel {\n        padding: 20px 16px;\n      }\n      #saiwei-transmittance-calc h2.tc-title {\n        font-size: 26px !important;\n      }\n      #saiwei-transmittance-calc .tc-chart-wrap {\n        height: 260px;\n      }\n      #saiwei-transmittance-calc .tc-quick-results {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    #saiwei-transmittance-calc .tc-quote-btn {\n      font-family: 'DM Sans', sans-serif !important;\n      width: 100%;\n      padding: 13px;\n      margin-top: 16px;\n      background: linear-gradient(135deg, #304890, #1860A8);\n      color: #fff !important;\n      font-size: 14px !important;\n      font-weight: 600 !important;\n      border: none;\n      border-radius: 10px;\n      cursor: pointer;\n      transition: all 0.25s ease;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      gap: 8px;\n      text-decoration: none !important;\n    }\n\n    #saiwei-transmittance-calc .tc-quote-btn:hover {\n      box-shadow: 0 6px 24px rgba(48,72,144,0.4);\n      transform: translateY(-1px);\n    }\n\n    #saiwei-transmittance-calc .tc-quote-btn svg {\n      width: 16px;\n      height: 16px;\n      stroke: currentColor;\n      fill: none;\n      stroke-width: 2;\n    }\n  <\/style>\n\n  <div class=\"tc-inner\">\n    <div class=\"tc-header\">\n      <span class=\"tc-eyebrow\">Technical Calculator<\/span>\n      <h2 class=\"tc-title\">Light Transmittance &amp; Reflectance Analyzer<\/h2>\n      <div class=\"tc-subtitle\">Visualize how different glass types and coating configurations affect optical performance across the visible light spectrum (380\u2013780 nm).<\/div>\n    <\/div>\n\n    <div class=\"tc-layout\">\n      <!-- Controls -->\n      <div class=\"tc-controls\">\n        <h3 class=\"tc-ctrl-title\">\n          <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 01-2.83 2.83l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.68a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06A1.65 1.65 0 0019.4 9a1.65 1.65 0 001.51 1H21a2 2 0 010 4h-.09a1.65 1.65 0 00-1.51 1z\"\/><\/svg>\n          Configuration\n        <\/h3>\n\n        <div class=\"tc-field\">\n          <span class=\"tc-label\">Glass Substrate<\/span>\n          <div class=\"tc-select-wrap\">\n            <select id=\"tcSubstrate\" onchange=\"tcRecalc()\">\n              <option value=\"soda_lime\">Soda-Lime Glass (n=1.52)<\/option>\n              <option value=\"borosilicate\">Borosilicate Glass (n=1.47)<\/option>\n              <option value=\"aluminosilicate\">Aluminosilicate Glass (n=1.51)<\/option>\n              <option value=\"quartz\">Quartz \/ Fused Silica (n=1.46)<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n\n        <div class=\"tc-field\">\n          <span class=\"tc-label\">Coating Configuration<\/span>\n          <div class=\"tc-select-wrap\">\n            <select id=\"tcCoating\" onchange=\"tcRecalc()\">\n              <option value=\"none\">No Coating (bare glass)<\/option>\n              <option value=\"ar_single\">Single-Layer AR Coating<\/option>\n              <option value=\"ar_multi\" selected>Multi-Layer AR Coating (BBAR)<\/option>\n              <option value=\"ar_multi_ds\">Multi-Layer AR \u2014 Double Side<\/option>\n              <option value=\"ag_low\">AG Coating \u2014 Low Haze (2\u20138%)<\/option>\n              <option value=\"ag_med\">AG Coating \u2014 Medium Haze (8\u201325%)<\/option>\n              <option value=\"ag_high\">AG Coating \u2014 High Haze (25\u201350%)<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n\n        <div class=\"tc-field\">\n          <span class=\"tc-label\">Glass Thickness: <strong id=\"tcThickVal\">3.0<\/strong> mm<\/span>\n          <div class=\"tc-slider-row\">\n            <input type=\"range\" id=\"tcThick\" min=\"0.5\" max=\"12\" step=\"0.5\" value=\"3\" oninput=\"tcRecalc()\">\n            <span class=\"tc-slider-val\" id=\"tcThickDisp\">3.0 mm<\/span>\n          <\/div>\n        <\/div>\n\n        <div class=\"tc-field\">\n          <span class=\"tc-label\">Number of AR Layers (if AR)<\/span>\n          <div class=\"tc-select-wrap\">\n            <select id=\"tcLayers\" onchange=\"tcRecalc()\">\n              <option value=\"1\">1 Layer (MgF\u2082)<\/option>\n              <option value=\"2\">2 Layers (MgF\u2082 + SiO\u2082)<\/option>\n              <option value=\"4\" selected>4 Layers (Standard BBAR)<\/option>\n              <option value=\"6\">6 Layers (High Performance)<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n\n        <div class=\"tc-divider\"><\/div>\n\n        <div class=\"tc-quick-results\">\n          <div class=\"tc-qr-item\">\n            <div class=\"tc-qr-label\">Transmittance<\/div>\n            <div class=\"tc-qr-val\" id=\"tcResT\">\u2014<\/div>\n          <\/div>\n          <div class=\"tc-qr-item\">\n            <div class=\"tc-qr-label\">Reflectance<\/div>\n            <div class=\"tc-qr-val\" id=\"tcResR\">\u2014<\/div>\n          <\/div>\n          <div class=\"tc-qr-item\">\n            <div class=\"tc-qr-label\">Absorption<\/div>\n            <div class=\"tc-qr-val\" id=\"tcResA\">\u2014<\/div>\n          <\/div>\n          <div class=\"tc-qr-item\">\n            <div class=\"tc-qr-label\">Haze<\/div>\n            <div class=\"tc-qr-val\" id=\"tcResH\">\u2014<\/div>\n          <\/div>\n        <\/div>\n\n        <a class=\"tc-quote-btn\" href=\"#ct-popup-787\" data-popup=\"ct-popup-787\" role=\"button\" aria-label=\"Get an instant quote for AR coated glass with custom transmittance specifications\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg>\n          Get Instant Quote\n        <\/a>\n      <\/div>\n\n      <!-- Chart -->\n      <div class=\"tc-chart-panel\">\n        <div class=\"tc-chart-header\">\n          <h3 class=\"tc-chart-title\">Spectral Response Curve<\/h3>\n          <div class=\"tc-chart-tabs\">\n            <button class=\"tc-tab active\" onclick=\"tcSwitchTab(this,'transmittance')\">Transmittance<\/button>\n            <button class=\"tc-tab\" onclick=\"tcSwitchTab(this,'reflectance')\">Reflectance<\/button>\n            <button class=\"tc-tab\" onclick=\"tcSwitchTab(this,'both')\">Both<\/button>\n          <\/div>\n        <\/div>\n\n        <div class=\"tc-chart-wrap\">\n          <canvas id=\"tcChart\"><\/canvas>\n        <\/div>\n\n        <div class=\"tc-info-grid\">\n          <div class=\"tc-info-card\">\n            <div class=\"tc-info-name\"><span class=\"tc-info-dot\" style=\"background:#304890;\"><\/span> Bare Glass<\/div>\n            <div class=\"tc-info-desc\">Uncoated soda-lime glass: ~91% transmittance, ~8% total reflection (both surfaces).<\/div>\n          <\/div>\n          <div class=\"tc-info-card\">\n            <div class=\"tc-info-name\"><span class=\"tc-info-dot\" style=\"background:#1878C0;\"><\/span> Your Config<\/div>\n            <div class=\"tc-info-desc\">Selected coating and substrate combination \u2014 performance varies by wavelength.<\/div>\n          <\/div>\n          <div class=\"tc-info-card\">\n            <div class=\"tc-info-name\"><span class=\"tc-info-dot\" style=\"background:#56c98e;\"><\/span> Ideal Target<\/div>\n            <div class=\"tc-info-desc\">Theoretical maximum: 100% transmittance, 0% reflectance (reference line).<\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"tc-note\">\n          <strong>Technical Note:<\/strong> Transmittance values are calculated using Fresnel equations for normal incidence, with absorption modeled via Beer-Lambert law. Multi-layer AR performance is based on standard broadband anti-reflection (BBAR) design with MgF\u2082\/ZrO\u2082\/Al\u2082O\u2083\/SiO\u2082 stacks. Values are theoretical approximations \u2014 actual performance may vary by \u00b11\u20132% depending on manufacturing tolerances. Contact our engineering team for measured spectral data.\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js\"><\/script>\n  <script>\n  (function(){\n    var chartInstance = null;\n    var currentMode = 'transmittance';\n\n    var substrates = {\n      soda_lime:       { n: 1.52, absorption_per_mm: 0.002 },\n      borosilicate:    { n: 1.47, absorption_per_mm: 0.001 },\n      aluminosilicate: { n: 1.51, absorption_per_mm: 0.0015 },\n      quartz:          { n: 1.46, absorption_per_mm: 0.0005 }\n    };\n\n    \/\/ Spectral data model: wavelength-dependent refractive index offset\n    function nDispersion(baseN, wl) {\n      \/\/ Cauchy approximation: n(\u03bb) \u2248 A + B\/\u03bb\u00b2 + C\/\u03bb\u2074\n      var B = 0.00420 * (baseN - 1.4);\n      var wlMicron = wl \/ 1000;\n      return baseN + B \/ (wlMicron * wlMicron);\n    }\n\n    \/\/ Fresnel reflectance at normal incidence (single surface)\n    function fresnelR(n1, n2) {\n      return Math.pow((n1 - n2) \/ (n1 + n2), 2);\n    }\n\n    \/\/ AR coating reflectance reduction factor\n    function arFactor(layers, wl) {\n      \/\/ Model BBAR coating performance vs wavelength\n      \/\/ Optimized at 550nm, degrades toward UV and IR\n      var center = 550;\n      var sigma;\n      if(layers === 1) sigma = 80;\n      else if(layers === 2) sigma = 120;\n      else if(layers === 4) sigma = 180;\n      else sigma = 220;\n\n      var dist = (wl - center);\n      var efficiency = Math.exp(-(dist * dist) \/ (2 * sigma * sigma));\n\n      var maxReduction;\n      if(layers === 1) maxReduction = 0.55;\n      else if(layers === 2) maxReduction = 0.75;\n      else if(layers === 4) maxReduction = 0.92;\n      else maxReduction = 0.97;\n\n      return 1 - maxReduction * efficiency;\n    }\n\n    function calcSpectralData() {\n      var sub = document.getElementById('tcSubstrate').value;\n      var coat = document.getElementById('tcCoating').value;\n      var thick = parseFloat(document.getElementById('tcThick').value);\n      var layers = parseInt(document.getElementById('tcLayers').value);\n\n      var baseN = substrates[sub].n;\n      var absPer = substrates[sub].absorption_per_mm;\n\n      var wavelengths = [];\n      var transmittanceCoated = [];\n      var reflectanceCoated = [];\n      var transmittanceBare = [];\n      var reflectanceBare = [];\n\n      for(var wl = 380; wl <= 780; wl += 5) {\n        wavelengths.push(wl);\n        var n = nDispersion(baseN, wl);\n\n        \/\/ Bare glass\n        var rSingle = fresnelR(1, n);\n        var rBare = rSingle + (1 - rSingle) * (1 - rSingle) * rSingle \/ (1 - rSingle * rSingle);\n        \/\/ Simplified two-surface reflectance\n        rBare = 2 * rSingle * (1 - rSingle) \/ (1 - rSingle * rSingle);\n        \/\/ Absorption\n        var absorbance = 1 - Math.exp(-absPer * thick);\n        \/\/ Wavelength-dependent absorption (higher in blue\/UV)\n        var wlFactor = 1 + 0.3 * Math.max(0, (500 - wl) \/ 500);\n        absorbance *= wlFactor;\n\n        var tBare = (1 - rBare) * (1 - absorbance);\n        transmittanceBare.push(tBare * 100);\n        reflectanceBare.push(rBare * 100);\n\n        \/\/ Coated glass\n        var tCoated, rCoated;\n\n        if(coat === 'none') {\n          tCoated = tBare;\n          rCoated = rBare;\n        } else if(coat.startsWith('ar_')) {\n          var doubleSide = coat === 'ar_multi_ds';\n          var isSingle = coat === 'ar_single';\n          var actualLayers = isSingle ? 1 : layers;\n\n          var factor = arFactor(actualLayers, wl);\n          if(doubleSide) {\n            rCoated = rBare * factor * factor;\n          } else {\n            \/\/ Front AR, back bare\n            var rFront = rSingle * factor;\n            rCoated = rFront + rSingle * (1 - rFront) * (1 - rSingle);\n          }\n          tCoated = (1 - rCoated) * (1 - absorbance);\n        } else {\n          \/\/ AG coating \u2014 scatters light, reduces specular reflectance but total doesn't change much\n          var hazeMin, hazeMax;\n          if(coat === 'ag_low') { hazeMin = 0.02; hazeMax = 0.08; }\n          else if(coat === 'ag_med') { hazeMin = 0.08; hazeMax = 0.25; }\n          else { hazeMin = 0.25; hazeMax = 0.50; }\n\n          var haze = (hazeMin + hazeMax) \/ 2;\n          \/\/ AG slightly reduces transmittance due to surface roughness\n          var agLoss = 0.02 + haze * 0.08;\n          tCoated = tBare * (1 - agLoss);\n          rCoated = rBare * (1 - haze * 0.15); \/\/ Specular reduced\n        }\n\n        transmittanceCoated.push(tCoated * 100);\n        reflectanceCoated.push(rCoated * 100);\n      }\n\n      \/\/ Update summary stats (average over visible range)\n      var avgT = transmittanceCoated.reduce(function(a,b){return a+b;}, 0) \/ transmittanceCoated.length;\n      var avgR = reflectanceCoated.reduce(function(a,b){return a+b;}, 0) \/ reflectanceCoated.length;\n      var avgA = 100 - avgT - avgR;\n\n      var tEl = document.getElementById('tcResT');\n      tEl.textContent = avgT.toFixed(1) + '%';\n      tEl.className = 'tc-qr-val' + (avgT > 96 ? ' good' : avgT > 90 ? '' : ' moderate');\n\n      var rEl = document.getElementById('tcResR');\n      rEl.textContent = avgR.toFixed(1) + '%';\n      rEl.className = 'tc-qr-val' + (avgR < 1 ? ' good' : avgR < 4 ? '' : ' moderate');\n\n      document.getElementById('tcResA').textContent = Math.max(0, avgA).toFixed(1) + '%';\n\n      \/\/ Haze\n      var hDisp = '< 0.3%';\n      if(coat === 'ag_low') hDisp = '2\u20138%';\n      else if(coat === 'ag_med') hDisp = '8\u201325%';\n      else if(coat === 'ag_high') hDisp = '25\u201350%';\n      else if(coat === 'none') hDisp = '< 0.5%';\n      document.getElementById('tcResH').textContent = hDisp;\n\n      \/\/ Thickness display\n      document.getElementById('tcThickVal').textContent = thick.toFixed(1);\n      document.getElementById('tcThickDisp').textContent = thick.toFixed(1) + ' mm';\n\n      return {\n        wavelengths: wavelengths,\n        tc: transmittanceCoated,\n        rc: reflectanceCoated,\n        tb: transmittanceBare,\n        rb: reflectanceBare\n      };\n    }\n\n    function renderChart(data) {\n      var ctx = document.getElementById('tcChart');\n      if(chartInstance) chartInstance.destroy();\n\n      var datasets = [];\n\n      if(currentMode === 'transmittance' || currentMode === 'both') {\n        datasets.push({\n          label: 'Your Configuration \u2014 Transmittance',\n          data: data.tc,\n          borderColor: '#1878C0',\n          backgroundColor: 'rgba(24,120,192,0.08)',\n          borderWidth: 2.5,\n          fill: true,\n          tension: 0.4,\n          pointRadius: 0,\n          pointHoverRadius: 4\n        });\n        datasets.push({\n          label: 'Bare Glass \u2014 Transmittance',\n          data: data.tb,\n          borderColor: '#304890',\n          borderWidth: 1.5,\n          borderDash: [6, 4],\n          fill: false,\n          tension: 0.4,\n          pointRadius: 0,\n          pointHoverRadius: 4\n        });\n      }\n\n      if(currentMode === 'reflectance' || currentMode === 'both') {\n        datasets.push({\n          label: 'Your Configuration \u2014 Reflectance',\n          data: data.rc,\n          borderColor: '#e05858',\n          backgroundColor: 'rgba(224,88,88,0.08)',\n          borderWidth: 2.5,\n          fill: currentMode === 'reflectance',\n          tension: 0.4,\n          pointRadius: 0,\n          pointHoverRadius: 4\n        });\n        datasets.push({\n          label: 'Bare Glass \u2014 Reflectance',\n          data: data.rb,\n          borderColor: '#c07840',\n          borderWidth: 1.5,\n          borderDash: [6, 4],\n          fill: false,\n          tension: 0.4,\n          pointRadius: 0,\n          pointHoverRadius: 4\n        });\n      }\n\n      chartInstance = new Chart(ctx, {\n        type: 'line',\n        data: {\n          labels: data.wavelengths,\n          datasets: datasets\n        },\n        options: {\n          responsive: true,\n          maintainAspectRatio: false,\n          interaction: {\n            intersect: false,\n            mode: 'index'\n          },\n          plugins: {\n            legend: {\n              position: 'bottom',\n              labels: {\n                font: { family: 'DM Sans', size: 11, weight: '500' },\n                padding: 16,\n                usePointStyle: true,\n                pointStyleWidth: 10\n              }\n            },\n            tooltip: {\n              backgroundColor: '#1a1f36',\n              titleFont: { family: 'DM Sans', size: 12 },\n              bodyFont: { family: 'DM Sans', size: 12 },\n              padding: 12,\n              cornerRadius: 8,\n              callbacks: {\n                title: function(items) {\n                  return items[0].label + ' nm';\n                },\n                label: function(item) {\n                  return ' ' + item.dataset.label + ': ' + item.formattedValue + '%';\n                }\n              }\n            }\n          },\n          scales: {\n            x: {\n              title: {\n                display: true,\n                text: 'Wavelength (nm)',\n                font: { family: 'DM Sans', size: 12, weight: '600' },\n                color: '#6b7194'\n              },\n              ticks: {\n                font: { family: 'DM Sans', size: 11 },\n                color: '#8b90a5',\n                maxTicksLimit: 10,\n                callback: function(v,i) { return this.getLabelForValue(v); }\n              },\n              grid: { color: 'rgba(0,0,0,0.04)' }\n            },\n            y: {\n              title: {\n                display: true,\n                text: currentMode === 'reflectance' ? 'Reflectance (%)' : 'Percentage (%)',\n                font: { family: 'DM Sans', size: 12, weight: '600' },\n                color: '#6b7194'\n              },\n              min: currentMode === 'reflectance' ? 0 : (currentMode === 'both' ? 0 : 80),\n              max: 100,\n              ticks: {\n                font: { family: 'DM Sans', size: 11 },\n                color: '#8b90a5',\n                callback: function(v) { return v + '%'; }\n              },\n              grid: { color: 'rgba(0,0,0,0.04)' }\n            }\n          }\n        }\n      });\n    }\n\n    window.tcRecalc = function() {\n      var data = calcSpectralData();\n      renderChart(data);\n    };\n\n    window.tcSwitchTab = function(btn, mode) {\n      var tabs = document.querySelectorAll('#saiwei-transmittance-calc .tc-tab');\n      for(var i = 0; i < tabs.length; i++) tabs[i].classList.remove('active');\n      btn.classList.add('active');\n      currentMode = mode;\n      tcRecalc();\n    };\n\n    \/\/ Wait for Chart.js to load\n    function initWhenReady() {\n      if(typeof Chart !== 'undefined') {\n        tcRecalc();\n      } else {\n        setTimeout(initWhenReady, 100);\n      }\n    }\n    initWhenReady();\n  })();\n  <\/script>\n<\/section>\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Technical Calculator Light Transmittance &amp; Reflectance Analyzer Visualize how different glass types and coating configurations affect optical performance across the visible light spectrum (380\u2013780 nm). Configuration Glass Substrate Soda-Lime Glass (n=1.52)Borosilicate Glass (n=1.47)Aluminosilicate Glass (n=1.51)Quartz \/ Fused Silica (n=1.46) Coating Configuration No Coating (bare glass)Single-Layer AR CoatingMulti-Layer AR Coating (BBAR)Multi-Layer AR \u2014 Double SideAG Coating [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":931,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-1455","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/1455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/comments?post=1455"}],"version-history":[{"count":0,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/1455\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/931"}],"wp:attachment":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/media?parent=1455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}