Commit Graph
7 Commits
Author SHA1 Message Date
西风逍遥游 9e9c6f9874 merge(dev): integrate WebGPU parity with latest rendering changes 2026-08-25 15:05:07 +08:00
西风逍遥游 bb89a79209 feat(webgpu): add volumetric effect pipelines 2026-08-25 07:20:32 +08:00
西风逍遥游 99b08f31a6 feat(graphics): add procedural bush fog volume example 2026-08-25 02:05:49 +08:00
西风逍遥游 85e1709d30 feat(graphics): composite froxel atmosphere volumes 2026-08-24 15:39:30 +08:00
sunxfancy b152da9a1c feat(graphics): add procedural volumetric cloud rendering 2026-08-23 16:33:32 +08:00
Cursor Agentand西风逍遥游 66ca9df282 fix(graphics): upright Vulkan Y mapping, honest ambient, scene tests
Flip GLM RH_ZO projection Y for Vulkan NDC so world +Y is screen-up
(models were rendered upside-down). Switch 3D mesh pipelines to Clockwise
front faces to match the flipped winding, and align AO/volumetric NDC
reconstruction plus screenToRay.

Remove the leftover shader ambient floor so Camera3D ambient is honored.
Bake Assimp node transforms in Graphics::newMeshFromAssimp(world) and use
it from ClassicScenes/model3d. Add RenderScenes regression coverage for
orientation, ambient, shadows, gbuffer, and node baking without effect
cross-talk.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
2026-08-12 13:48:03 +00:00
西风逍遥游andCursor Agent 8aa8e35d34 feat(graphics): 体积光 + Ray March + 体积雾 (#19)
* feat(graphics): 屏幕空间体积光(尘雾 God Rays)

在 graphics 模块增加 Volumetric API:径向模糊光柱 + 尘/雾,
质量档 low/medium/high;Drawable.castOcclusion 对齐阴影语义的遮挡绘制。

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* feat(graphics): 体积光 Ray March 二期 + 扩展测试

合并 main;新增 raymarch 模式(线性深度积分 + 屏空间遮挡近似 CSM),
补充 mode/质量/drawOccluders2D/ray march 等测试(11 用例)。

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* feat(graphics): 体积雾(高度/距离 Beer-Lambert)

新增 setMode("fog") / applyFog:线性深度上积分高度指数雾与距离 ramp,
输出非预乘 RGB+alpha 以适配 SrcAlpha 混合。合并 main(gpgpu ECS)后补齐
cmake 源扫描,并扩展 volumetric 单测(15/15)。

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(test): GraphicsSmoke missing-texture 不再竞态 setupWriteDirectory

Mac CI 并行跑 clearAndPresentWindow 时共用 Filesystem identity,
ThrowsOnMissing 里多余的 bootstrap 会失败。缺文件抛错只需 PhysFS open,
并给写目录 bootstrap 使用独立 identity。

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-10 23:15:51 +08:00