3. 网点几何参数:直径、深度、间距、密度、排列方式

好,咱们进入正题。网点设计,说白了就是决定「光怎么从导光板里逃出来」。你想想看,一个网点就是一个小型的光学开关,它的尺寸、形状、位置,直接决定了亮度均匀性。

我刚开始做导光板那会儿,总觉得网点嘛,不就是印几个点上去?后来被客户退货三次,才明白这里面的门道有多深。今天咱们就把这几个参数掰开揉碎了讲清楚。

3.1 直径:光散射的「力度」

直径决定了网点能「抓」住多少光。直径越大,散射面积越大,出光效率越高。但有个问题——直径太大,网点本身会变成暗区,因为光被散射得太厉害,反而损失了。

经验法则:直径通常控制在 30μm ~ 120μm 之间。小于 30μm,加工精度跟不上;大于 120μm,网点肉眼可见,影响外观。

我记得有个项目,客户要求亮度做到 5000cd/m²,我一开始把直径拉到 150μm,结果亮度是上去了,但网点像麻子一样明显。后来改成 80μm 搭配高密度,效果就好多了。

直径范围 典型应用 注意事项
30~50μm 小尺寸、高分辨率屏 加工精度要求高
50~80μm 主流手机、平板 平衡亮度与外观
80~120μm 大尺寸、高亮度需求 注意网点可见性

3.2 深度:光陷阱的「深浅」

深度影响的是光被「困住」的程度。深度越深,网点对光的破坏性散射越强,出光效率反而下降。你可能会问:「那浅一点不就好了?」

嗯,这里要注意。太浅的网点,加工时容易磨损,寿命短。我见过一个案例,深度只做了 5μm,用了三个月网点就磨没了,亮度直接掉了一半。

避坑指南:我曾经在 UV 压印工艺中,把深度从 10μm 改到 8μm,想着能提高效率。结果亮度均匀性从 85% 掉到 72%。后来发现,深度太浅,网点对光的调制能力不足,靠近光源的区域过亮,远端过暗。

深度与直径的比值(深径比)是关键。一般建议深径比在 0.1~0.3 之间。举个例子,直径 80μm 的网点,深度 12μm 左右比较合适。

3.3 间距:网点之间的「呼吸」

间距决定了网点之间的光场如何叠加。间距太小,网点密集,局部出光过多,形成亮斑;间距太大,光从网点之间漏走,形成暗区。

我习惯用「渐变间距」来设计。靠近光源的地方间距大一些(比如 0.5mm),远离光源的地方间距小一些(比如 0.2mm)。这样能补偿光在传播过程中的衰减。

小技巧:间距的渐变可以用线性函数或指数函数。我个人偏好指数渐变,因为光在导光板中的衰减本身就是指数型的,匹配度更高。

3.4 密度:单位面积内的「火力」

密度就是单位面积内网点的数量,通常用 PPI(每英寸点数)或覆盖率(网点面积/总面积)来表示。密度越高,出光越均匀,但加工成本也越高。

覆盖率一般在 5%~20% 之间。低于 5%,光漏得太多;高于 20%,网点之间互相干扰,反而降低效率。

覆盖率 效果 典型场景
5%~10% 高亮度,均匀性一般 背光模组要求高亮度
10%~15% 亮度与均匀性平衡 主流消费电子
15%~20% 高均匀性,亮度略低 医疗、车载显示

3.5 排列方式:规则 vs 随机

这是最容易被忽视的参数。规则排列(比如矩形阵列)加工简单,但容易产生摩尔纹,尤其是与液晶面板的像素阵列叠加时。

随机排列能消除摩尔纹,但设计复杂,需要算法生成。我做过一个对比测试:规则排列的均匀度是 82%,随机排列能做到 90% 以上。

我的建议:如果产品对画质要求高(比如 4K 屏),一定要用随机排列。如果只是普通照明,规则排列就够了,成本低很多。

随机排列也不是完全随机,而是「伪随机」——要保证网点之间不重叠,且密度分布符合设计要求。常用的算法有 Poisson Disk Sampling 和 Lloyd's Relaxation。

// 伪随机网点生成示例(Poisson Disk)
function generatePoints(width, height, minDist) {
  let grid = [];
  let active = [];
  // 初始化第一个点
  let first = {x: Math.random() * width, y: Math.random() * height};
  grid.push(first);
  active.push(first);
  while (active.length > 0) {
    let idx = Math.floor(Math.random() * active.length);
    let point = active[idx];
    let found = false;
    for (let i = 0; i < 30; i++) {
      let angle = Math.random() * 2 * Math.PI;
      let radius = minDist + Math.random() * minDist;
      let newX = point.x + radius * Math.cos(angle);
      let newY = point.y + radius * Math.sin(angle);
      if (newX >= 0 && newX < width && newY >= 0 && newY < height) {
        // 检查与已有点的距离
        let valid = true;
        for (let p of grid) {
          let dx = newX - p.x;
          let dy = newY - p.y;
          if (Math.sqrt(dx*dx + dy*dy) < minDist) {
            valid = false;
            break;
          }
        }
        if (valid) {
          grid.push({x: newX, y: newY});
          active.push({x: newX, y: newY});
          found = true;
          break;
        }
      }
    }
    if (!found) {
      active.splice(idx, 1);
    }
  }
  return grid;
}

3.6 知识结构总览

下面这张图把五个参数的关系串起来了。你看,直径和深度是一对「兄弟」,间距和密度是另一对,排列方式则是全局变量。

网点几何参数知识结构图 网点几何参数 直径 深度 间距 密度 排列方式 核心关系 直径与深度决定单网点散射特性;间距与密度决定网点间光场叠加;排列方式影响整体均匀性与摩尔纹

3.7 参数之间的耦合关系

这五个参数不是独立的。你改一个,其他四个都得跟着调。我总结了一个简单的耦合矩阵:

参数 直径 深度 间距 密度 排列方式
直径 - 强耦合 中耦合 强耦合 弱耦合
深度 强耦合 - 弱耦合 中耦合 弱耦合
间距 中耦合 弱耦合 - 强耦合 强耦合
密度 强耦合 中耦合 强耦合 - 中耦合
排列方式 弱耦合 弱耦合 强耦合 中耦合 -

举个例子:你把直径从 60μm 改到 80μm,为了保持相同的覆盖率,间距就得相应增大。同时,深度可能也需要微调,否则深径比会变。

实战建议:设计时先定排列方式,再定直径和深度,最后调间距和密度。这个顺序能减少迭代次数。我一般用这个流程,从方案到打样,平均 3 轮就能搞定。