<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Point Light on JRQZ</title>
    <link>https://jrqz-wu.com/zh/tags/point-light/</link>
    <description>Recent content in Point Light on JRQZ</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <lastBuildDate>Mon, 27 Apr 2026 17:30:00 +0800</lastBuildDate>
    <atom:link href="https://jrqz-wu.com/zh/tags/point-light/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>KisekiEngine 点光源阴影排查：从单张透视 Shadow Map 到 6 面 Shadow Map Array</title>
      <link>https://jrqz-wu.com/zh/post/kisekiengine-point-light-shadow-array/</link>
      <pubDate>Mon, 27 Apr 2026 17:30:00 +0800</pubDate>
      <guid>https://jrqz-wu.com/zh/post/kisekiengine-point-light-shadow-array/</guid>
      <description>开源项目地址：https://github.com/sznswjr/kiseki_engine&#xA;相关提交：6b97d64 Refactor point light shadow mapping&#xA;背景 KisekiEngine 的 garden scene 里有房子、树、围栏、长椅、邮箱和地面。前一轮已经实现了基础 Blinn-Phong 光照、纹理、OBJ 加载和一张 2D shadow map。最初看起来阴影已经出现了，但继续观察就会发现两个问题：&#xA;围栏、立柱这类细长物体在地面上的阴影缺失或不完整。 改成点光源 cubemap 思路后，地面阴影又出现过位置错乱。 这两个现象很容易被误判成 bias、PCF 或 shadow map 分辨率问题。实际根因更底层：光源类型、shadow map 投影模型和 cubemap face 坐标约定没有匹配好。&#xA;这篇文章记录这次排查和重构过程。&#xA;问题一：围栏阴影为什么会缺失 最早的实现方式是：把 shadow camera 放在点光源位置，然后使用一张 2D 透视 shadow map。&#xA;这听起来合理，因为点光源确实有一个位置。但透视 shadow map 表达的是一个视锥，它天然适合 Spot Light，不适合完整的 Point Light。&#xA;点光源向所有方向发光。单张 2D shadow map 最多只能覆盖一个方向的锥形区域。为了让它“尽量覆盖当前场景所有物体”，只能不断扩大 FOV。&#xA;在这个场景里，点光源位于：&#xA;scene.light.position = {3.0f, 8.0f, 4.0f}; 围栏位于地面南侧：&#xA;addOBJObject(scene, fenceMesh, modelTexture, (simd_float3){i * 2.</description>
    </item>
  </channel>
</rss>
