4. 网点设计原理:从密度到排布,把光“赶”出导光板
网点设计,说白了就是决定光从哪儿出去、出多少。我见过不少新手,一上来就猛调网点大小,结果均匀度一塌糊涂。其实,网点设计有四个核心维度:密度、大小、形状、排布方式。咱们一个一个拆开聊。
4.1 网点密度与光提取效率的关系
网点密度,就是单位面积内网点的数量。密度越高,光被“拦截”的概率越大,提取效率自然就高。但这里有个陷阱——密度不是越高越好。
我做过一个项目,客户要求亮度极高,我把网点密度加到了 60% 以上。结果呢?靠近 LED 入光侧的网点太密,光还没走到中间就被“抢”光了,远端一片漆黑。这就是典型的“密度失控”。
光在导光板内传播时,能量是逐渐衰减的。所以,合理的密度分布应该是:近端稀、远端密。这样才能补偿光强的自然衰减,让整个面板亮度均匀。
| 密度区域 | 光强状态 | 推荐密度范围 | 典型应用场景 |
|---|---|---|---|
| 近端(入光侧) | 强 | 5% - 15% | 侧入式 LED 导光板 |
| 中部 | 中等 | 15% - 35% | 常规照明面板 |
| 远端(出光侧) | 弱 | 35% - 60% | 大尺寸背光模组 |
4.2 网点大小与形状对均匀度的影响
网点大小直接影响散射强度。大网点散射强,但容易产生“亮斑”;小网点散射柔和,但提取效率低。这里需要找到一个平衡点。
我记得有一次,客户要求厚度只有 0.8mm 的超薄导光板。网点直径如果超过 0.3mm,从正面看就能看到一个个“光点”,均匀度完全没法看。最后我把网点直径控制在 0.1mm - 0.25mm 之间,配合密度渐变,才解决了问题。
至于形状,常见的就三种:
- 圆形:加工最简单,散射各向同性,适合通用照明。
- 方形/矩形:定向散射强,适合需要控制出光角度的场景。
- 六边形:填充率高,适合高密度排布,但加工成本高。
你想想看,如果网点形状和导光板的光学结构不匹配,光就会“乱跑”。比如,在棱镜结构导光板上用圆形网点,效果往往不如用方形网点好。
4.3 随机网点 vs 规则网点
这是个老生常谈的问题,但很多人理解有偏差。
规则网点,就是按固定间距、固定大小排布。优点是设计简单、加工方便。缺点是——容易产生干涉条纹和摩尔纹。尤其是当网点间距与 LED 间距成整数倍关系时,那画面简直没法看。
随机网点,不是完全乱排,而是用算法控制网点位置在一定范围内随机偏移。它能有效破坏周期性,消除摩尔纹。但随机度过大,又会导致局部密度不均,出现“斑块”。
| 对比项 | 规则网点 | 随机网点 |
|---|---|---|
| 设计复杂度 | 低 | 高 |
| 摩尔纹风险 | 高 | 低 |
| 均匀度控制 | 容易(但易出现条纹) | 较难(需算法优化) |
| 加工成本 | 低 | 中 |
| 适用场景 | 低端照明、对均匀度要求不高的场景 | 高端显示、医疗、车载背光 |
我个人习惯是:优先用随机网点。虽然设计麻烦点,但后期调试省心。规则网点我只有在客户明确要求低成本、且对均匀度容忍度较高时才会用。
4.4 网点排布算法基础
说到算法,很多人觉得高深。其实核心就几个套路。
4.4.1 均匀随机分布
最简单的方法。在指定区域内随机生成坐标点。但纯随机会导致局部聚集或稀疏,均匀度很差。我一般不用。
// 伪代码:均匀随机分布(不推荐单独使用)
for i = 1 to N:
x = random(0, width)
y = random(0, height)
place_dot(x, y, size)
4.4.2 泊松盘采样
这是目前最主流的方法。它保证任意两个网点之间的距离不小于一个最小值(半径 r)。这样既能随机,又能避免局部过密或过疏。
// 伪代码:泊松盘采样核心逻辑
r = min_distance // 最小间距
grid_size = r / sqrt(2)
active_list = [initial_point]
while active_list is not empty:
pick random point p from active_list
for k = 1 to K: // K 为尝试次数,通常 30
theta = random(0, 2π)
radius = random(r, 2r)
new_point = p + (radius * cos(theta), radius * sin(theta))
if new_point is valid (距离所有已有点 ≥ r):
add new_point to active_list and result
if no valid point found after K tries:
remove p from active_list
4.4.3 密度梯度控制
光靠泊松盘还不够,因为我们需要近端稀、远端密。所以要在算法里加入密度函数。
// 伪代码:密度梯度泊松盘
function density(x, y):
// 根据位置计算目标密度
distance_from_led = sqrt(x^2 + y^2)
return base_density + (distance_from_led / max_distance) * density_range
// 在泊松盘采样中,根据密度函数动态调整最小间距 r
r = sqrt(1 / density(x, y)) * scale_factor
这样生成的网点,近端间距大、远端间距小,自然就实现了密度渐变。我做过对比,用密度梯度算法后,均匀度从 65% 提升到了 88%。
4.4.4 抖动与优化
算法生成的网点,有时候还是会有微弱的周期性。这时候可以加一个“抖动”步骤:对每个网点的位置做微小随机偏移(偏移量不超过间距的 10%)。
嗯,这里要注意:抖动不能太大,否则会破坏密度梯度。我一般控制在 5% 以内。
最后总结一下:网点设计不是孤立的事。密度、大小、形状、排布算法,这四个要素要一起考虑。我见过太多人只盯着一个参数调,结果越调越乱。记住一句话:用算法控制密度梯度,用随机破坏周期性,用尺寸调节局部亮度。做到这三点,你的导光板均匀度不会差。