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 轮就能搞定。